manifesto for agile software development

Manifesto for Agile Software Development: Values, Principles, and Practices

A Manifesto for Agile Software Development

Software development is full of uncertainty. Requirements change, new information emerges, and the needs of customers and organizations evolve. Agile software development offers a way to work with that uncertainty: build in small increments, learn from feedback, and adapt as the work progresses.

At the heart of this approach is the Manifesto for Agile Software Development, published in 2001 by a group of software practitioners. It expresses four core values and twelve principles that continue to influence how teams build and deliver software.

The Four Values

The Agile Manifesto states that its authors value the following:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

The wording matters: the items on the right still have value. Agile does not mean abandoning tools, documentation, agreements, or planning. It means giving greater priority to people, useful results, collaboration, and the ability to respond when circumstances change.

Individuals and interactions over processes and tools

Good tools and clear processes can help a team work effectively, but they cannot replace communication and sound judgment. Agile teams make space for people to share information, resolve questions, and work together toward a common goal.

Working software over comprehensive documentation

Documentation can be essential, especially for complex, regulated, or long-lived systems. Agile emphasizes delivering software that works because it gives customers something concrete to evaluate. Teams create documentation that supports understanding and maintenance without letting paperwork become a substitute for usable results.

Customer collaboration over contract negotiation

Agile encourages ongoing conversation with customers and stakeholders. Rather than relying only on assumptions recorded at the start of a project, teams seek feedback throughout development and use it to improve what they deliver.

Responding to change over following a plan

A plan helps guide the work, but it is not a promise that nothing will change. Agile teams plan in manageable increments and revise their direction when new evidence, priorities, or constraints appear.

The Twelve Agile Principles

The Manifesto also describes twelve principles that explain how its values can shape day-to-day work:

  1. Satisfy customers through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development, when change can improve the product.
  3. Deliver working software frequently, favoring shorter delivery cycles.
  4. Have business stakeholders and developers work together regularly throughout the project.
  5. Build projects around motivated people, give them the support they need, and trust them to do the work.
  6. Favor direct conversation as an effective way to share information within a development team.
  7. Measure progress primarily by working software.
  8. Promote a sustainable pace that can be maintained over time.
  9. Pay continuous attention to technical excellence and good design.
  10. Value simplicity—the art of maximizing the amount of work not done.
  11. Let effective architectures, requirements, and designs emerge from self-organizing teams.
  12. Regularly reflect on how to become more effective, then adjust how the team works.

What the Manifesto Means in Practice

The manifesto is a set of guiding values and principles, not a step-by-step project plan. It does not require a particular framework, meeting schedule, job title, or software tool. Approaches such as Scrum, Extreme Programming, and Kanban can support Agile ways of working, but using one of them does not automatically make a team agile.

In practice, an agile team might break a large project into smaller pieces, deliver a usable improvement, gather feedback, and decide what to do next. The team may revisit priorities as it learns more. Regular reflection helps identify bottlenecks and improve the process, while attention to testing and design helps keep the software maintainable.

Agile is also not an excuse for having no plan, skipping quality checks, or changing direction without considering the impact. Effective adaptation depends on clear goals, frequent communication, technical discipline, and an understanding of tradeoffs. Teams still need appropriate documentation, coordination, and governance; they aim to use these in ways that support delivery rather than obstruct it.

Why the Agile Manifesto Still Matters

Technology and business needs continue to change, making it difficult to define every detail of a software product in advance. The Agile Manifesto remains relevant because it encourages teams to learn early, deliver value regularly, and treat change as something to manage constructively.

Ultimately, agility is not a label or a collection of rituals. It is the ability to work collaboratively, produce useful software, respond thoughtfully to new information, and improve over time. When teams apply the manifesto’s values with care, they are better positioned to build products that meet real needs and adapt as those needs evolve.

 

6 Key Principles for Embracing Agile Software Development

  1. Value individuals and interactions over processes and tools.
  2. Prioritize working software over extensive documentation.
  3. Collaborate with customers throughout development.
  4. Respond to change instead of rigidly following a plan.
  5. Deliver useful software in small, frequent increments.
  6. Use the values as guidance, not a checklist.

Value individuals and interactions over processes and tools.

The Agile Manifesto values individuals and interactions over processes and tools because successful software development depends on people communicating, collaborating, and solving problems together. Processes and tools can provide useful structure, but they should support the team—not replace clear conversations, shared understanding, or human judgment. By encouraging open communication and strong working relationships, teams can address challenges sooner, adapt more effectively, and build software that better meets users’ needs.

Prioritize working software over extensive documentation.

Prioritize working software over extensive documentation by focusing first on delivering a useful product that customers can try and evaluate. Keep documentation clear and practical, providing the information needed to use, maintain, and improve the software without letting paperwork slow progress or replace real results.

Collaborate with customers throughout development.

Collaborate with customers throughout development to make sure the software solves real problems and continues to meet changing needs. Invite customers to share feedback early and often, review working features together, and clarify priorities as new information emerges. This ongoing partnership helps teams catch misunderstandings sooner, make better decisions, and deliver a product that provides meaningful value.

Respond to change instead of rigidly following a plan.

Agile teams use plans to provide direction, not to lock themselves into assumptions that may no longer fit. As customer needs, technology, or project priorities change, teams reassess their approach and adjust their work accordingly. By welcoming useful change and responding with intention, they can focus on delivering the most valuable software rather than following an outdated plan.

Deliver useful software in small, frequent increments.

Delivering useful software in small, frequent increments helps teams gather feedback early and make improvements before problems become costly. Instead of waiting until an entire project is finished, release manageable pieces of working software that provide real value to users. Each release gives the team a chance to learn what works, adjust priorities, and respond to changing needs while steadily moving toward the larger goal.

Use the values as guidance, not a checklist.

Use the Agile Manifesto’s values as guidance for making thoughtful decisions, not as a checklist to complete or rigid rules to follow. Every project has different needs, constraints, and risks, so the right balance may vary. For example, documentation and planning still matter when they help teams communicate, meet requirements, or deliver reliable software. The key is to keep the values in view, understand why a practice is being used, and choose the approach that best supports collaboration, customer value, and adaptability.