Prior to 2000, the traditional model of software development was followed by the majority. However, the traditional model of development is a documentation driven, heavy weight software development process. Change management and the speed of implementing changes was very poor in the traditional model, The need for an alternative model is desperately felt.
In the Spring of 2000 a get together of Extreme Programming proponents, and a few others was organized at Rogue River, Oregon. In that meeting was conducted attendees voiced support for a variety of “Light” methodologies, but nothing formal occurred. During 2000, a number of articles were written that referenced the category of “Light” or “Lightweight” processes. A number these articles referred to “Light methodologies, such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM”.
Following up on the meeting at Rogue River, In February 2001, 17 members ( all proponents of Lightweight processes) met in Utah. They discussed on various issues related to their work and development processes for two days. What emerged at the end of those 2 days was the AGILE ‘Software Development’ Manifesto.
AGILE ‘Software Development’ Manifesto
It is a formal document that contains the things related to software development, that all the 17 members of the Utah meeting agreed upon and signed.
The Agile Manifesto contains 4 Core Agile Values & 12 principles.
Manifesto for Agile Software Development
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Principles behind the Agile Manifesto
All the principles are self-explanatory. Below are the 12 principles
- Our highest priority is to 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, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- 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.