What is the Agile Manifesto?
The Agile Manifesto is a document that identifies four key values and 12 principles that its authors believe software developers should use to guide their work. Formally called the Manifesto for Agile Software Development, it was produced by 17 developers during an outing on Feb. 11-13, 2001, at The Lodge at Snowbird ski resort in Utah.
The developers called themselves the Agile Alliance. They were seeking an alternative to the existing software development processes that they saw as complicated, unresponsive and too focused on documentation requirements. Among the developers were Kent Beck, Arie van Bennekum, Alistair Cockburn, Andrew Hunt and Jeff Sutherland. Members of the initial alliance were experienced in software development and business entrepreneurship.
According to agilemanisfesto.org, the online home of the document, the developers' stated goal was not antimethodology, but rather "to restore credibility to the word methodology."
Furthermore, the developers sought to find a balance between the existing ways of development and the new alternatives. They admitted to accepting modeling and documentation, but only when it had a clear, beneficial use.
The developers also explained that while planning is important, it's necessary to accept that plans change and flexibility is needed for these modifications. Overall, the manifesto focuses on valuing individuals and interactions over processes and tools.
Agile project management brings together Agile teams of programmers, stakeholders and users to support Agile principles. Team members conduct face-to-face conversations, both in person and remotely, and they communicate regularly as part of the primary measure of progress. This approach supports the key aspect of the Agile process -- developing software in increments with user input along the way, as opposed to a final product with minimal user interaction.
Development of the Agile Manifesto
The commitment to creating software incrementally, with regular increases and stages, is what defines the Agile approach to software development. The approach offers users new versions, or releases, of software following brief periods of work, often called sprints.
This Agile process contrasts with the traditional waterfall approach to software development. With that approach, developers compile the needs and requirements of the users and then build the software all at once. The completed project is released at the end of the project cycle. This is similar to the software development lifecycle, which includes evaluating the existing software, planning the new software requirements, designing the proposed software, developing the new software, testing it, putting it into use and monitoring it.
The Agile Alliance said it was seeking an alternative to the waterfall model's "documentation-driven, heavyweight software development processes."
The Agile Manifesto's purpose
Proponents of Agile methodologies say the four values of the Agile Manifesto promote a software development process that focuses on quality by creating products that meet consumers' needs and expectations.
The 12 principles are intended to create and support a work environment that's focused on the customer and customer satisfaction, aligns to business objectives, and responds and pivots quickly as user needs and market forces change.
4 values of Agile
The four core values of Agile software development as stated in the Agile Manifesto are as follows:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a project plan.
The 12 principles
The Agile Manifesto goes beyond scoping out a software project and then developing and releasing it. Perhaps the most important aspect of the manifesto is the close coordination and regular interactions with those who will be using the new or updated software.
The following are the 12 principles of the Agile Manifesto:
- Meeting end users' needs with early and continuous delivery of work.
- Being open to changes in requirements even late in the project.
- Delivering completed work at regular intervals, preferably short ones.
- Working with the project team and business owners daily.
- Assembling a motivated team, providing them with the right environment and support, and trusting them.
- Communicating face-to-face regularly.
- Using completed work to measure progress.
- Creating processes that promote sustainable efforts and a constant pace of work.
- Requiring continuous attention to excellence through good design.
- Encouraging simplicity.
- Recognizing that the best work emerges from self-organized teams that deliver the best architectures and designs.
- Reflecting regularly on how the team can be more effective and fine-tuning and adjusting the approach.
Agile vs. Scrum and other methodologies
Agile, as outlined in the Agile Manifesto, is considered a philosophy. Other methodologies and frameworks formalize many or all of the ideas in the manifesto.
One example is Scrum, a framework for managing and controlling iterative projects. The product owner in a Scrum process works with cross-functional teams to create a list of tasks to be done. This list is known as the product backlog.
Agile has been broadly adopted by software development teams throughout the technology industry, as well as in enterprise IT departments. Moreover, Agile is credited with making the software development process faster, more responsive and better able to meet user, customer and business needs than traditional waterfall methodologies.
However, some critics say Agile is overhyped and doesn't work in all situations. The methods, terminology and culture associated with Agile also don't work well within the cultures of some organizations and projects.
Some development teams claim to have an Agile mentality, when in fact, they've simply abandoned some of traditional development approaches without embracing Agile values and principles.
Relevance of Agile today
With the emergence of many new development tools since the manifesto appeared in 2001, software development is much easier today. More software than ever has been developed and raises the question: Is Agile development still relevant? Tools to create apps can be downloaded on a smartphone, developers exchange ideas using social media and cloud technology is available for all kinds of development activity.
The personal touch the Agile Manifesto espouses is still relevant, but using communications and flexibility versus a formal plan can present challenges for development teams. This is especially true for teams working on large projects with geographically dispersed employees. Comments via social media can be useful but frustrating. Nonetheless, the value of working closely with users is as important today as it was in 2001.
Find out the difference between being Agile and actually doing the Agile methodology.