Despite the domination of the plan-driven, industrial views, an evolutionary approach to software development is not new. Craig Larman has extensively described the historical predecessors of Agile in his book ‘Agile & Iterative Development, A Manager’s Guide’ (Larman, 2004).
But the official label ‘Agile’ dates from early 2001, when 17 software development leaders gathered at the Snowbird ski resort in Utah. They discussed their views on software development in times when the failing waterfall approaches were replaced by heavy-weight RUP implementations, which did not in fact lead to better results than the traditional processes. These development leaders were following different paths and methods, each being a distinct implementation of the new paradigm; Scrum, eXtreme Programming, Adaptive Software Development, Crystal, Feature Driven Development, DSDM, etc.
The gathering resulted in assigning the label ‘Agile’ to the common principles, beliefs and thinking of these leaders and their methods. They were published as the ‘Manifesto for Agile Software Development’ (Beck, et.al., 2001). (See figure 1.3).
Figure 1.3 The text of the Manifesto for Agile Software Development
I often overhear the desire “to do Agile”. And all too often it is the desire for a magical solution, another silver bullet process that solves all problems. It makes me state that “Agile does not exist”. Agile is not one fixed process, method or practice. Agile is the collection of principles that the methods for Agile software development have in common. Agile refers to the mindset, the convictions and the preferences expressed in the Manifesto for Agile Software Development.
The manifesto does help to grasp the ideas underpinning Agile. If you use it as a source to gain a deeper understanding of Agile, then I strongly advise looking at the 12 principles, see: http://agilemanifesto.org/principles.html