What is the Agile Manifesto?
Smartpedia: The Agile Manifesto defines a foundation of values and principles for agile software development and for the development of products.
Agile Manifesto – the foundation of agile values
The agile software development with its prominent representatives like Scrum or Extreme Programming is based on a foundation of values, which were published in 2001 as “Manifesto for Agile Software Development” – short: Agile Manifesto. The Agile Manifesto was written by experts in software development¹ with the following claim:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value.”
The following four values are defined by the Agile Manifesto²:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
In the practice of agile software development there are always discussions about these values. Although the authors explained when publishing the Agile Manifesto that they find the values on the right important, they rate the values on the left (the bold values) higher. However, you are not saying that there should be no documentation in agile software development, but only that functioning software is more important.
The values of the Agile Manifesto in detail
Let’s take a look at the four values:
Individuals and interactions over processes and tools
Individuals and interactions are more important than processes and tools, as it emphasises the importance of people and communication in achieving business goals. The value suggests that companies should focus, for example, on fostering a positive and productive work environment where individuals can collaborate and communicate effectively, rather than placing too much emphasis on rigid processes and tools.
This approach can lead to more innovative and adaptable organisations that can respond quickly to changing market conditions. It can also help reduce bureaucracy and increase employee satisfaction, which in turn leads to better performance and retention.
Working software over comprehensive documentation
Developing working software is considered more important than comprehensive documentation for several reasons:
- Business value: functioning software can be used by customers and generates revenue, while documentation does not have the same immediate value to the company.
- Time to market: If a company focuses on developing working software, it can get its product to market faster, which can give it a competitive advantage.
- Feedback: Working software allows for early user feedback and testing that can inform future development and improve the final product.
- Flexibility: Functional software can be easily changed and improved over time, while comprehensive documentation can quickly become outdated.
- Prioritisation: It can be more efficient to prioritise work on the software over documentation, as this allows teams to focus on the most important tasks and provide added value to the customer.
However, comprehensive documentation is still important, but it should be seen as a means to an end and not an end in itself. It should ideally be produced in such a way that the information needed to support the development and maintenance of the software is conveyed in a minimal, timely and effective manner.
Customer collaboration over contract negotiation
Collaboration with customers is considered more important than contract negotiation for several reasons:
- Better understanding of customer needs: Working with customers enables a company to gain a deeper understanding of their needs, which can lead to the development of more effective products and services.
- Building trust: Working with customers can help build trust and establish a positive relationship that can lead to repeat business and customer loyalty.
- Early feedback: Working with customers enables early feedback on products and services that can inform future development and improve the final product.
- Adaptability: Working with customers enables a company to better adapt and respond to changing market conditions.
- Innovation: Collaboration with customers can foster innovation as it allows companies to gather new ideas and perspectives from a variety of stakeholders.
This is not to say that contract negotiations are not important; they are important for the legal and financial aspects of the business. However, working closely with clients can often lead to mutually beneficial agreements and help avoid disputes down the line.
Responding to change over following a plan
Responding to change is considered more important than following a plan for several reasons:
- Unpredictability in the real world: the real world is unpredictable, and plans made at the beginning of a project may not take into account changes in the market, technology or other external factors that may affect the project.
- Flexibility: Responding to change allows a company or team to be more flexible and adapt to new information or unexpected events, which can lead to better decision making and problem solving.
- Learning opportunities: Responding to change provides learning opportunities as it allows teams to gather new information and adapt their approach accordingly.
- Innovation: responding to change can foster innovation as it allows teams to explore new ideas and possibilities that may not have been considered in the original plan.
- Continuous improvement: responding to change allows teams to continuously improve their product or service based on customer feedback, market trends and other factors.
Nevertheless, a plan is important as it provides direction and a framework for the project, but it should be seen as a living document and be flexible enough to adapt to change. A balance between following a plan and responding to change is important as it allows teams to make informed decisions and take advantage of new opportunities while maintaining a sense of direction and progress.
The principles in the Agile Manifesto
Besides the values the manifesto names 12 principles of agile software development:
- The highest priority is to satisfy customers through early and continuous delivery of valuable software.
- Changes in requirements – even late in development – are welcome. Agile processes use changes to the competitive advantage of the customer.
- The delivery of functioning software should take place in regular, ideally short periods of a few weeks or months.
- Technical experts and developers must work together continuously, i.e. on a daily basis.
- Motivated individuals must be trusted. They should be supported by an environment that they need for their projects.
- If possible, communication from outside and within the development team should take place face to face. This is the most efficient and effective method.
- The most important measure of progress is the functionality of the software.
- A steady pace that clients, developers and users can maintain over an unlimited period of time promotes sustainable development.
- The focus should always be on technical excellence and good design.
- Simplicity is essential. (Elsewhere – not in the Agile Manifesto – this is also referred to as the KISS principle).
- The self-organisation of the teams in planning and implementation leads to the best requirements, designs and architectures.
- At regular intervals, the team reflects on how it can become more effective and adapts its behaviour.
These 12 principles complement the four values of the Agile Manifesto; together they form the basis for a number of methods and practices that apply in agile software development (e.g. at the Daily Scrum, at the Sprint Review or at the Retrospective) and also in product development.
By the way, the current version of the Scrum Guide explicitly states that the Agile Manifesto is not only suitable for software development but also for product development in general.
Impuls zum Diskutieren:
Although the manifesto is simple and clearly formulated, there are always discussions about individual aspects. Why is that?
 The Agile Manifesto was signed by 17 people who are still very much respected in the agile community today. Namely in alphabetical order:
- Kent Beck,
- Mike Beedle,
- Arie van Bennekum,
- Alistair Cockburn,
- Ward Cunningham,
- Martin Fowler,
- James Grenning,
- Jim Highsmith,
- Andrew Hunt,
- Ron Jeffries,
- Jon Kern,
- Brian Marick,
- Robert C. Martin,
- Steve Mellor,
- Ken Schwaber,
- Jeff Sutherland und
- Dave Thomas.
 In 2008, Robert C. Martin propagated a 5th value at a conference: We value craftsmanship over crap. Martin had observed that both Extreme Programming and Scrum would not eliminate central problems of development and called on those present at the conference to write clean code from now on and not to bow to time pressure or claim that they did not have time for it or were not allowed to do so.
And here you will find additional information from our t2informatik Blog: