Agile manifesto, Agile manifesto values, history of the manifesto for Agile software development, the four agile values
Manifesto for Agile Software Development
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.
Uncovering better ways of developing software
Agile Manifesto promotes testing assumptions and learning. Finding better ways for software development is achieved by failing fast: creating small increments of software, putting them in the hands of the customer, getting feedback and adapting.
Agile Manifesto values
Individuals and interactions over processes and tools
The individuals are the ones responding to business needs and driving the development process, rather than being led by processes and tools, thus being more responsive to change and more likely to meet customer needs. Interactions are fluid and occur when need arises, instead of being scheduled and requiring a specific content. Agile manifesto values people and interactions between people developing software, between team members, between multiple teams developing the same software and between the team and business people, stakeholders and clients.
Working software over comprehensive documentation
Up-front comprehensive documentation requires a lot of time and approvals at the beginning of a project and changes are less likely to be applied when needed. Slim documentation which captures just the essential and that is evolving throughout the project gives the developers exactly what is needed to build working software early and with a sustainable pace. Agile manifesto focuses on building working software in small batches with limited documentation.
Customer collaboration over contract negotiation
Collaboration brings engagement and better understanding of the requirements because it involves the customer during the development process, while negotiation is having the customer involved at the beginning and at the end, with very few fixed points along the way. Agile manifesto promotes constant collaboration with customers for achieving customer satisfaction through incremental product discovery and a flexible way of creating the actual contracts, because requirements are hard to predict from the beginning.
Responding to change over following a plan
In traditional software development change was regarded as an expense, therefore detailed and elaborate plans and dependencies were developed in order to avoid it. Agile manifesto empowers shifting priorities faster by using short iterative development time intervals and brings added value by embracing changes in priorities or the addition of new features along the way. Although planning is constantly happening in agile, the need to respond to change when creating complex software is the one that triggers small re-planning sessions, enabling faster response to changes, as they happen.
History of the Agile Manifesto
On February 11th 2001 at the Snowbird lodge in the Wasatch Mountains in Utah, 17 software developers came together to discuss an alternative to the waterfall way of software development. They agreed that companies were too focused on excessively planning and documenting software development cycles and that they lost sight of what mattered the most, pleasing the customer.
During two days they came up with a document of 68 words, which is now called the Agile Manifesto, that described their philosophy and that went on to change the software development industry. The document is still present on the original website – agilemanifesto.org
The four agile values are explained in greater detail by the twelve Agile principles.