Agile development has made its way into the software mainstream in the past few years. As business cycles continue to accelerate and competitive pressures increase, many software development organizations have turned to agile development methods as a way to accelerate delivery schedules, adapt to changing business demands, align business and technology goals, and generate competitive advantage.
As with any significant industry shift, a tremendous amount of fear, uncertainty, and doubt generally accompany the transition. As more organizations turn to agile development, the reality of what agile really is often gets obscured. Drawing from our experience with hundreds of teams around the world, including many of the Fortune 100, I want to dispel several common myths and help clarify what agile development is, what it is not, and what to believe if you are considering the transition to agile development within your organization.
Myth #1: Agile Development is Undisciplined
Some have referred to agile development as hacking, others as “code-and-fix.” Anyone who has seen an experienced agile development team in action would likely reconsider. Continuous integration, test-driven development, refactoring, and even the controversial pair programming are not practices for the undisciplined. Even more indicative of the discipline required, the continuous delivery of running, tested software every few weeks could be characterized as the ultimate software industry discipline.
Many of the practices associated with agile development are not only demanding of the individual, but typically require a significant shared commitment to the success of the entire team. Within agile development, teams are constantly delivering benefit to the organization and demonstrating their value — not once a year, but every month, every week, and in some organizations, every day. While some software development teams many never achieve this level of delivery frequency, almost all can benefit from the practices that automate and facilitate this type of delivery discipline.
Interestingly, most of the practices associated with agile development have been around for decades. It is only more recently that the practices have been packaged together as collections of interdependent practices. These practices, whether incorporated within Extreme Programming, Scrum, Feature-Driven Development, or any other agile methodology, really help define the innovation which has taken place. Since their inception, a high degree of developer, team, and management discipline has not only been promoted, but demanded by all of the various agile methodologies. The more agile a team, the more discipline they typically exhibit.
Tomorrow’s post: Myth #2 – Agile Teams Do Not Plan
If you’d like to download this blog series in document (PDF) format, get the Five Myths of Agile Development white paper.