The term ‘agile’ is very broad and is viewed in many different ways throughout the agile community. There is a set of well-known frameworks referred to as ‘agile methods’ and there are also well-known behaviours, concepts and techniques that are recognized as characterizing the agile way of working. But there is no single definition of agile that accurately encapsulates them all, although the Agile Manifesto (see Figure 2.1) comes the closest to achieving this.
2.1.1 Some history
The term ‘agile’ was created in 2001 (www.agilemanifesto.org) when a group of ‘independent thinkers around software development’ came together to talk about an alternative to the heavyweight, document-driven processes that existed at the time. Known as the ‘Waterfall method’ (see Figure 2.2), these old-fashioned processes comprised a sequence of technical phases that were slow and struggled to respond to changing requirements, particularly when they were mired in too much detail from the start.
The group was already working in ways that later become described as agile; an output from this meeting was the Manifesto for Agile Software Development, or the ‘Agile Manifesto’ as it is more commonly known, and its impact and success have been quite dramatic. The Agile Manifesto is summarized in Figure 2.1; it also contains 12 principles which are listed in Appendix E.1. It is important to appreciate the intent of the final two lines of the Agile Manifesto: it is a case of relative importance of the values, and not a case of ‘good’ or ‘bad’.
The reason for agile becoming so popular was that it helped to address the new demands being placed on how software was delivered. Software needed to be produced more frequently while at the same time being of the appropriate level of quality to meet the demands of new technologies, the Internet and the digital era. In contrast to the Waterfall way of working, agile phases are smaller and more iterative and incremental (see Figure 2.2).
By definition, the Agile Manifesto only applies to developing software, and most of its underlying principles appear to suggest that this is in the context of the continual timeboxed development of a software product. Although it was created as a way to develop software, it has since been recognized as a successful approach beyond software development, and many people use the Agile Manifesto, replacing the word ‘software’ with ‘products’ or ‘solutions’.
2.1.2 Agile today
Agile has come a long way since 2001 and is no longer just ‘an IT thing’. It now includes situations that are large scale, complex in nature and happening in a wide array of contexts far beyond software development.
Nowadays, most if not all organizations are aware of the term agile, and every organization should have a strategy in place to adopt it to some degree. For many years it was seen as a niche area; it is now mainstream and is used by organizations that are large and small, old and new, public sector and private sector.