The Philosophical Underpinnings of Agile
The popularity of Scrum, Extreme Programming, and Kanban has led many people to view Agile as a software development methodology. However, Agile started as a philosophy and organizations need to understand and adopt its philosophical underpinnings in order to achieve the full benefits of its use.
28 February 2024
In recent years, software development models like Scrum, Kanban, and Extreme Programming have become very popular, so much so that these methodologies are now the primary face of the Agile movement. This has resulted in many people viewing Agile as primarily a software development methodology. However, Agile did not start out as a methodology. It started as a philosophy, and organizations that fail to understand the philosophical underpinnings of Agile run the risk of not achieving the full benefits of its use.
The best way to understand the philosophical underpinnings of Agile is to examine its founding document, the Agile Manifesto. Starting in the 1990s, a few isolated developers started looking for new ways to create software. A group of these software developers met at the Snowbird ski resort in Utah in February 2001 to discuss their work and hopefully find commonalities between their new approaches. The output from this meeting was the Agile Manifesto.
The Agile Manifesto is the defining document of the Agile movement. All current Agile software development processes and methodologies can be traced back to this document. However, for all its importance, the Agile Manifesto is a surprisingly short and simple document. Perhaps even more surprisingly, it does not prescribe any specific method for how software should be developed. Instead, it simply states four philosophical principles that all of its authors agree are important for software development efforts.
The Agile Manifesto is provided in its entirety below.
The Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Since the creation of the Agile Manifesto in 2001, numerous Agile software development methodologies have become prominent. These methodologies include Scrum, Kanban, Extreme Programming, Lean Software Development, Feature-Driven Development, Dynamic Systems Development Method, Crystal, Adaptive Software Development, Large Scale Scrum, Scaled Agile Framework, and Disciplined Agile Delivery. What all these methodologies have in common is their alliance with the philosophical values outlined in the Agile Manifesto.
An organization can implement any of the numerous Agile software development models listed above without accepting the philosophical values of Agile as outlined in the Agile Manifesto. However, organizations that do so will not achieve all the benefits Agile has to offer, because the benefits of Agile come from adherence to the values of Agile, not adherence to any specific methodology. The role of Agile methodologies is simply to make it easier for an organization to develop software in accordance with Agile values, but organizational acceptance of the values must come first.
While Agile is currently most often thought of as a software development methodology, it is actually a philosophy about the principles that are most important to the successful creation of software. Moreover, it is adherence to the philosophical principles of Agile that reaps organizations benefits, not adherence to any specific Agile development methodology.