7 Key Factors for Successful Agile Development
Expert Lisa Crispin offers her top tips for successful agile development and testing.
To succeed in Agile software development, you need to stop thinking of "developers" and "testers" as separate teams performing entirely separate functions, and stop thinking of testing as a phase of the development cycle.
Instead, the entire development team should be responsible for testing and quality assurance, and testing should be a part of the entire continuous development process, said Agile testing expert Lisa Crispin in a recent ADTmag.com "Supercast" webinar titled "Agile Testing: Tips and Best Practices."
"It really takes a village to deliver high-quality software," said Crispin, an Agile tester since 2000 and co-author (with Janet Gregory) of Agile Testing – A Practical Guide for Testers and Agile Teams (Addison-Wesley Professional, 2009).
Crispin said she and Gregory conducted a survey among the Agile community to determine the most important factors in successful Agile development and came up with seven main factors. "The very top of the list -- pretty much the top on everyone's list -- was the idea, the Agile idea, that the whole team is responsible for quality and testing," she said.
Each team member -- be it programmer, tester, business analyst, DBA, system administrator, user experience expert, visual designer or whatever -- "needs to be committed to delivering the highest possible quality, while of course, keeping in mind the business needs and business values," Crispin said.
Bringing a bunch of teams together for successful Agile development requires a "learning culture," she said. The biggest factor in successful software development is not the tools or the methodology you use, it's getting the best people and letting them do their best work, she said. "So we need an organizational culture that allows people to feel like they can learn, they can innovate, they can experiment, they can try, and if it doesn't work out, they can learn something and move on."
To illustrate this point, Crispin drew upon her own experience with a Scrum/XP team at ePlan Services Inc., where she has worked since 2003. Along with every team member being committed to testing, they should also be able to pick up any task, she said. "For example, on my team, we have a task board that has programming tasks, testing tasks, database tasks, all kinds of different tasks on the board. And if we get behind on testing, because I work on a financial services application that tends to be very testing intensive … the programmers will pick up those testing tasks, because we want to make sure we get everything finished. No story is done until the testing is complete. And this also provides opportunities for knowledge and skill transfer."
Another key to success is automated regression testing. Her current team used to conduct two-week iterations with no automated regression testing. So at the end of every iteration, the team had to spend two days on manual regression testing, which she said was tedious and provided motivation to develop a "more testable architecture and testable design" such that all regression testing is automated, letting testers do more important exploratory testing. "So that was a whole team solution to a problem. We all suffered the pain, and we all found a solution around that pain, vital to the success of our project."
Along with the whole team approach and automated regression testing, the five remaining factors for Agile success listed by Crispin are:
- Adopt an Agile test mind set
- Provide and obtain feedback
- Build a foundation of core Agile practices
- Collaborate with customers
- Look at the big picture
For more about these best practices, and specific tips Crispin provided in response to questions from audience members, view the ADTmag.com Agile Testing Supercast here (registration required). The Supercast also includes a presentation by Tieren Zhou, founder, CEO and chief software architect at TechExcel, titled "Quality Management and the Agile Tester," and a presentation by Anders Wallgren, chief technical officer at Electric Cloud, titled "Three Reasons Your Automated Test Isn't Automatic -- And How to Fix It."
David Ramel is editor in chief of Visual Studio Magazine and Application Development Trends Magazine.