What is the Agile Manifesto?
Before we dive straight into Agile Values and Principles, it’s first important to understand Agile. Agile is an umbrella term which encompasses several frameworks and approaches to value delivery in complex environments. More specifically, Agile is a project management methodology that uses short development cycles called “Sprints” that focus on value creation, with continuous improvement in developing a product.
Agile is a term that has grown in popularity over the past 20 years since the creation of the Agile Manifesto in 2001. This was when a group of software practitioners developed a concept to help add a more structured, human approach to complex work. The term is widely used to refer to Agile Frameworks which includes Scrum.
Understanding the Agile Manifesto helps us to recognise the base on which Scrum was founded. Agile includes two main concepts;
- Four Agile Values, and;
- 12 Agile Principles
Each describes a better way to approach complex work. Let’s take a look at these concepts, how they differ, and how they are used together.
What are the Agile Values?
The Agile Manifesto consists of four core values:
- We value individuals and interactions over processes and tools.
- We value working software over comprehensive documentation.
- We value customer collaboration over contract negotiation.
- We value responding to change over following a plan.
Let’s take a look at each value in more detail:
Value 1: Individuals and interactions over processes and tools.
This principle recognises that while effective processes and tools are important, it is even more important to prioritise the people behind them. Having the right group of individuals on any software team is vital to success. Possibly even more important still, is how these individuals interact and collaborate.
2. Welcome changing requirements
The second of the 12 Agile Principles focuses on welcoming change. Delivering value in smaller, usable increments makes this notion possible. Teams learn from the customer after each delivery, and thanks to small increments of work, it is possible to introduce new requirements. In complex environments, this is beneficial to help deliver an effective product.
3. Deliver working software frequently
All Agile frameworks rely upon the principle of delivering software frequently. But not just this, teams must deliver working software.
In Scrum, teams determine the frequency of value delivery by the length of the Sprint. Each Sprint should deliver a usable increment of work which falls under the definition of “Done”. The Sprint length should be long enough to allow the Development Team to deliver an increment, but no longer than that, with a preference towards the shorter timescale.
4. Business works with developers daily
5. Build projects around motivated individuals
Leaders working within an Agile environment focus on making sure teams have the support (tools, access, resources) and environment (people, culture, processes) they need, and then trust in them to get the job done. The focus should remain on outcome.
6. Face-to-face conversation is best
This Agile Principle positions face-to-face conversations as the best way to convey information. This could include those who deliver the work speaking directly to those using the work. In addition, it could include the team collaborating in real-time amongst themselves to solve problems.
7. Working software matters
Success is measured by the product which has been delivered and whether it is in a satisfactory and usable state. This means that while progress reports have their place, they are not an end in themselves. The working product is ultimately what matters the most.
8. Constant pace
This principle explains how Agile teams can establish a constant pace. The team tests the work as they go and has a series of clear steps which must be taken to achieve the end goal. Because they are delivering value incrementally, each piece is usable and is a step in the direction of the goal. Gathered constant stakeholder feedback is about value.
9. High quality code is faster
Teams should focus on ensuring they deliver high-quality products and good design to enhance agility. This should include addressing any existing technical debt and preventing its accumulation. Agile teams might work with the Product Owner to include items that increase product quality in the Product Backlog to help achieve this.
10. Maximise work not done
Instead of asking stakeholders about all of their requirements, Agile Teams should focus on what the most valuable thing to do next is. This is made possible by the smaller, more frequent deliveries that the team work on. Focusing on what comes next, rather than the whole picture can significantly reduce waste. The team can build trust through these frequent deliveries of working software.
11. Self-organising teams deliver quality
This principle focuses on the idea that self-organised teams are likely to be closest to the work at hand and the best placed for figuring out how to do it. Adhering to this principle means that the team doesn’t disappear for months while they plan a long-term approach to completing the work. But instead, they figure out how best to build the product while they build the product.
12. Feedback loops used to improve
Finally, the last of the 12 Agile Principles focuses on how the team reflects on how to become more effective at regular intervals, and then adjusts their behaviour accordingly. The team should ask themselves how it is going and what changes they should make. Then they can make such changes and repeat the process regularly.
This principle has a notable impact on the efficiency and morale of an Agile Team in the long term.
Summary of Agile
Revisiting the Manifesto including Agile Values and the 12 Agile Principles regularly is a useful exercise for teams. The Sprint Retrospective meeting is a good opportunity to discuss and embody this into each Sprint and day-to-day work. Learn more about the Sprint Retrospective meeting right here: