20 Years Agile Manifesto – An Overview of the Values & Principles
In February 2001, 17 software developers met in the American Rocky Mountains to exchange ideas about patterns and practices of effective software development. This meeting is considered to be the birth of the principle of agility – the participants not only coined the term “agile”, with the Agile Manifesto (originally “Manifesto for Agile Software Development” or “Agile Manifesto”) they also defined new framework conditions for project organizations in software development. Today, the Agile Manifesto is considered the founding document of the agile movement, which originated in software development but has spread far beyond this field. Today, it forms the basis for the activities of many companies in all industries worldwide. Today, agile is a mantra and the Agile Manifesto is a key milestone of the agile movement. (Qytera 2021; Press Box 2021)
On the occasion of the 20th anniversary of the Agile Manifesto, I would like to take another look at the central concepts of the document. Because even after this long time, the values and principles contained represent the basic tenets of the agile working method and can be found in many different agile methods, such as Scrum, Kanban or SAFe.
The Agile Manifesto – Four Values for Agile Teams
The foundation of the Agile Manifesto is formed by four guiding principles that reflect the values underlying the movement. Figure 1 contrasts the “old” values with the agile values and illustrates the key differences in the approaches. These two sets of values are noted as pairs of opposites, meaning that both are important, but the agile values should be prioritized:
The agile values form the basis for the work of agile teams. In the following, we briefly present the central guiding values based on Diehl (2020):
1. Individuals and Interactions Over Processes and Tools
Team members or people involved in the development process and cooperation between them are more important than formalisms. This means that information can be conveyed more effectively and unambiguously in a personal exchange than through well-documented processes and tools. If we think about our everyday office life, most of us can certainly confirm this – if we can talk to colleagues in person and, if necessary, also ask questions about the information we have received, open points are clarified more quickly and often more comprehensibly than if we had to go to great lengths to gather the information and interpret it ourselves. In practice, this agile value is implemented by minimizing the physical distance in teams. Agile teams often sit together in an office and increase their points of interaction through meeting structures, such as daily exchanges.
2. Working Software Over Comprehensive Documentation
The focus of the agile way of working is a functioning end product that fulfills the requirements defined at the beginning of product development. Agile teams are highly focused on value and results – they put the completion of a task first. Consequently, available time is invested in completing the task rather than in creating comprehensive documentation. On the other hand, this does not mean that agile teams do not document anything at all. Rather, it means that documentation that is not absolutely necessary is dispensed with and documentation takes place in a leaner framework. In practice, it is often the case that agile teams document the requirements for a product; however, within the creation process, they refrain from meticulously documenting all work steps.
3. Customer Collaboration Over Contract Negotiation
The customer is at the center of software development. This means not only that the customer’s needs and requirements are the starting point of the development process, but also that the product is periodically tested by potential customers during development to ensure that the end result meets their requirements. Again, personal interaction with the customer is a priority. In practice, there are often meetings with customers to show them product enhancements from the last iteration and get their feedback. This makes it possible to check directly in small increments whether the customer’s requirements have been implemented correctly.
4. Responding to Change Over Following a Plan
The agile way of working is based on the understanding that the environment and the company are subject to constant change. Therefore, agile teams must have a high level of adaptability in order to perceive, classify and react appropriately to changes. This means that agile teams plan, but with a degree of flexibility, and adjust their plan when changes require them to do so.
Twelve Agile Principles for the Application of the Agile Manifesto
The four guiding values represent the ideals of the Agile Manifesto, but they are not sufficient to describe the concrete way in which agile teams work in day-to-day operations. Therefore, twelve principles were formulated on the basis of the values, which elaborate on them. Together with the values, they form the framework for action for agile teams. (Eckstein 2021; Agile Manifesto 2001; Diehl 2020):
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software – As described in value 3, the customer is at the center of the development process. A product is only successful if it meets the customer’s requirements. To ensure that this is the case, partial results are demonstrated to the customer as early as possible and at regular intervals in order to collect his feedback and incorporate it into the further development of the product. In this way, errors can be quickly identified and corrected before they jeopardize the success of the project.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage – New and comprehensible requirements are seen as an opportunity for a better end result and thus the basis for a potential competitive advantage – even if these occur on short notice.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale – This principle ties in with the 4th value of the Manifesto (responding to change is more important than following a plan). In a continuously changing world, customer requirements can change within a matter of weeks. Companies should therefore follow an incremental approach to product and service development to account for these potential changes.
- Business people and developers must work together daily throughout the project – Business experts and IT developers must work together on a solution. This ensures that the requirements of the business side are fully taken into account and that the IT side can implement these requirements with precision. To ensure optimal collaboration between the two sides, in practice value is placed on the physical proximity of both parties or meeting structures are introduced that enable their effective and efficient collaboration.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done – Agile teams embrace the view that people do not have to be motivated from the outside to do good work, but that this work is a result of suitable environmental conditions that allow team members to develop their potential. Management must create the conditions for this, through trust and by establishing room for maneuver. Central to this is a management style that is based accordingly on the agile values and principles.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation – This is closely linked to value 1 (individuals and interactions are more important than processes and tools) which is based on the view that personal interactions convey information much more effectively and clearly than written down processes or tools. Therefore, a meeting structure should be created for the team to exchange information directly and in person.
- Working software is the primary measure of progress – Agilely developed software, products or services must meet the highest requirements – from both a technical and a business perspective. Accordingly, development progress is also measured on the basis of concrete parameters, such as customer feedback, sales, and functioning software.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely – This principle is aimed at sustainability, as the agile way of working believes that it makes sense for the development of a product to proceed at an even pace and that consistent quality can be achieved by avoiding bottlenecks. For this, all participants must be continuously involved in the development. However, the aspect of sustainability can also be transferred to the learning of agile working methods, which should take place continuously and under experienced guidance and give the team room to experiment with different techniques.
- Continuous attention to technical excellence and good design enhances agility – A design is good if it is simple and unambiguous and has no complex dependencies on other interfaces, products, etc. Technical excellence means that the technical design of the development must meet the highest quality standards so that the team does not have to spend time later on eliminating errors that could have been avoided.
- Simplicity – the art of maximizing the amount of work not done – is essential – For agile teams, the only thing that counts is the result, i.e., meeting customer needs, not the number of hours invested. The path to achieving the goal is to be “simple”. This means that the team focuses on the tasks that are essential for achieving the goal and makes them as efficient and focused as possible.
- The best architectures, requirements, and designs emerge from self-organizing teams – Agile teams organize themselves and work independently to develop solutions. Conversely, this means that managers must give their employees a great deal of freedom and trust and support the team.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly – An important aspect of agile software development is to reflect on oneself and on the team at regular intervals. In so-called retrospectives, agile teams discuss how their collaboration worked – what went well and what can be improved next time. It is important that this exchange takes place at regular intervals.
The Agile Manifesto is to be understood as a framework for agile working. It provides a code of conduct against which actions can be reflected and realigned on the basis of agile values. Frameworks such as Scrum provide teams with the necessary techniques for implementing these values. Despite its 20-year existence, the Agile Manifesto is still the fundamental document of the agile way of working. While various other manifestos have emerged in recent years that define domains outside of software development, such as the Agile Marketing Manifesto, Agile HR Manifesto, or Modern Agile, all new manifestos represent merely an extension of the original Agile Manifesto, but in no way replace it. (Eckstein 2021)
Agile Manifesto. 2001. Prinzipien hinter dem Agilen Manifest. Prinzipien hinter dem Agilen Manifest (agilemanifesto.org)
Diehl, Andreas. 2020. Das Agile manifest – Leitsätze und Werte agiler Teams. Das Agile Manifest – Leitsätze und Werte agiler Teams (digitaleneuordnung.de)
Eckstein, Jutta. 2021. 20 Jahre Agiles Manifest – definitiv den Kinderschuhen entwachsen. 20 Jahre Agiles Manifest – definitiv den Kinderschuhen entwachsen | heise online
Pressebox, 2021. iX-Magazin: 20 Jahre agiles Manifest. Veränderung und Anpassung. iX-Magazin: 20 Jahre agiles Manifest, Heise Gruppe GmbH & Co KG, Pressemitteilung – PresseBox
Qytera 2021. 20 Jahre agiles Manifest – Ein Rückblick und Ausblick. 20 Jahre agiles Manifest – Ein Rückblick und Ausblick (qytera.de)