The Agile Manifesto is a set of guiding values and principles for agile software development that prioritize flexibility, collaboration, and customer satisfaction. It was created by a group of software developers in 2001 who were seeking alternative approaches to traditional, rigid project management methodologies. The Agile Manifesto consists of four key values and twelve principles.
Four Agile Manifesto Values:
- Individuals and interactions over processes and tools: Emphasizes the importance of people and their communication within a development team. While tools and processes are necessary, the manifesto highlights the value of human collaboration.
- Working software over comprehensive documentation: Prioritizes the delivery of functional software over extensive documentation. While documentation is still important, the emphasis is on delivering tangible results to the customer.
- Customer collaboration over contract negotiation: Encourages ongoing collaboration with the customer throughout the development process, adapting to changing requirements rather than strictly adhering to initial contract negotiations.
- Responding to change over following a plan: Acknowledges the dynamic nature of software development and encourages teams to be responsive to changes in requirements, technology, and priorities.
Twelve Agile Manifesto Principles:
- Satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, with a preference for shorter timescales.
- Collaborate with customers and stakeholders throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- Use face-to-face communication as much as possible.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity—the art of maximizing the amount of work not done—is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
These values and principles form the foundation of the agile approach, encouraging adaptability, collaboration, and a focus on delivering value to the customer throughout the development process. Agile methodologies, such as Scrum and Kanban, have since been developed to implement these principles in a practical and systematic way.