Back in 2001, when those software rebels gathered at the mountain retreat, they were each representing development frameworks that were providing an alternative to the classical heavyweight processes of those times. Some of them were proponents of Scrum, others of Xtreme Programming, Crystal, DSDM, or others. The main objective of their meeting was to find the common ground in their approaches and to propose to the world a better way of writing software.
The output of their ski trip remained in history as the “Manifesto for Agile Software Development” and it contains 4 foundational values. But what are those values and what do they mean?
People and interactions over processes and tools
Back in the day, software projects were driven by heavy and rigid processes such as waterfall or RUP (Rational Unified Process), and a lot of energy was being invested in following the process. Also, the best tools can be worthless in the hands of the wrong people. Agile suggests that while having a process and the right tools is still important, the people using them are more important. Having the right group of professionals is crucial for the project’s success. Even more important is how those individuals interact with each other. Agile promotes face-to-face interactions which boost collaboration and fast decision making.
Working solution over comprehensive documentation
Previously, people working on the project would spend a lot of time creating documentation, sometimes even before writing a line of code. But even though, having a nice user manual is a good thing, there comes a time when product teams should focus on providing their customers with working products. Agile places delivering the working product early and often is one of the highest priorities because this, in turn, can provide valuable feedback for the future.
Customer collaboration over contract negotiation
In the traditional way of working, contracts were king. Everything was scoped from the beginning and then set in stone and signed with blood. But much too often, there was a discrepancy between what the customer wanted, what the contract specified, and what the product did, leading to disillusioned clients. Agile encourages teams to create a strong feedback loop with their stakeholders so that they are building what the customers actually need, thus creating a long-term relationship.
Responding to change over following a plan
Agile promotes that by introducing an iterative and incremental approach to product development, which helps teams to embrace the changes instead of being averse to them.
Even though the Agile Manifesto was conceived by a bunch of software rebels, the 4 values can be adapted and embraced by people and organizations alike, from all sorts of backgrounds, because for many, they just seem to be common sense.