In this new agile software development tutorial from SearchSoftwareQuality.com, you'll learn all about agile development...
methodologies, from the basics to the nitty-gritty. This guide to agile will show you how to get started on your transition to agile development, with tips on how to move your team from waterfall to agile, insights into the benefits of agile as well as problems and issues you may experience. We'll also cover agile project management, agile development tools, requirements in agile and agile testing methods.
TABLE OF CONTENTS
- Getting started: How to transition to agile
- Benefits of agile development
- Problems with agile development
- Agile project management methodologies
- Choosing tools for agile development
- Agile development requirements gathering
- Testing in an agile environment
- More agile issues, considerations
Getting started: How to transition to agile
If you haven't already moved your team to the agile methodology, now is the time to start thinking about it. We're still in the thick of the recession, and lean economic times call for lean, agile software development. If you are exploring the adoption of agile software development practices and you're prepared to rise to the occasion, this recession and the resulting belt-tightening give you the opportunity to rally your company around a vision that will not just cut costs, but improve morale and help you grow your business in the next economic spring. Agile practices enable teams to build less, but return the same value by focusing on early delivery of the features that have the highest business value and not wasting money on the features that don't.
Interest in agile is high, but our 2009 Agile Trends survey found that many organizations still follow traditional development practices. When asked which development processes their organizations employed, the number of respondents for agile had increased over the previous year, with 56% reporting they used Agile. More and more teams are switching to agile development -- it's no longer just for innovators and early adopters, nor is it just for small projects. In fact, according to Damon Poole, founder and chief technology officer (CTO) of AccuRev Inc. in Lexington, Mass., asking if agile can scale is the wrong question.
"The question to ask is, 'How does software development scale in general?' Traditional development doesn't scale very well anyway; you hear all the time of large projects that were cancelled or delayed. Scaling is independent of methodology," he said. Suggestions for scaling agile include upfront, lightweight modeling and extra coordination. At the project level, Scrum masters have to interact and make sure sub-teams are going in the same direction, and product owners of each team have to negotiate priorities to make sure teams are working in the right order," said IBM's Scott Ambler, a practice leader in agile development.
So how do teams transition to agile development methodologies? While the whys of transitioning to an agile methodology are often the same (slipped release dates, scope creep, time to market), the hows of moving to agile can vary among development organizations. Providing agile training is usually the first step. Another consideration is where in a software development cycle to transition to agile practices. Vignette Corp., for example, decided to roll out agile as each team started a new project, phasing agile in over the course of a year rather than doing a full switchover all at once.
In addition, teams employ a variety of agile techniques. Our 2008 survey showed that Scrum was the most popular (41%), followed by Extreme Programming (XP) at 15%. Others used a hybrid of Scrum/XP (14%), and 13% used a custom or other type of hybrid agile methodology. The Crystal and Dynamic Systems Development Method (DSMD) both had a following of 3%. Organizations also need to determine the size and makeup of their agile teams. Another goal of transitioning to agile development is to empower teams with a sense of ownership.
Before you switch your team to agile, it's a good idea to start by reading the manifesto and principles behind the agile movement, SearchSoftwareQuality.com expert David Christiansen said. They're easy to miss, and you'll struggle to make agile successful if you don't first embrace and apply the principles. Christiansen also recommends reading Lean Software Development by Mary Poppendieck. This book will help you develop an in-depth understanding of the agile approach.
Now that you know your agile basics, brush up on best practices for moving testers from waterfall to agile development. First of all, there's no room for cowboy coding practices in either agile or waterfall methodologies. Testers must buy into and be involved in project collaboration with the rest of the agile team, according to Ronald McCarty, a freelance writer and consultant. Secondly, you need to include testers in development -- as well as customers. Ask yourself, does the tester have the same access to team activities, portals and documentation as other team members? Does the customer have the same access to testing results as other teammates? Finally, make sure you follow the "less is more" rule when it comes to documentation -- watch out for one-time documents and large manual testing sets.
For more guidance on making the transition to agile development, check out some of our case studies. Learn how IBM Software Group moved to agile, how Covad Communications Group made the switch to a distributed agile development process, how Blueprint Systems' CTO made agile believers of the entire organization, and how managed hosting company Rackspace uses agile to meet its goal of better development through process innovation.
Continue to the next section: Pros and cons of agile development.