”;
In February 2001, at the Snowbird resort in Utah, 17 software developers met to discuss lightweight development methods. The outcome of their meeting was the following Agile Manifesto for 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.
Twelve Principles of Agile Manifesto
-
Customer Satisfaction − Highest priority is given to satisfy the requirements of customers through early and continuous delivery of valuable software.
-
Welcome Change − Changes are inevitable during software development. Ever-changing requirements should be welcome, even late in the development phase. Agile processes should work to increase customers” competitive advantage.
-
Deliver a Working Software − Deliver a working software frequently, ranging from a few weeks to a few months, considering shorter time-scale.
-
Collaboration − Business people and developers must work together during the entire life of a project.
-
Motivation − Projects should be built around motivated individuals. Provide an environment to support individual team members and trust them so as to make them feel responsible to get the job done.
-
Face-to-face Conversation − Face-to-face conversation is the most efficient and effective method of conveying information to and within a development team.
-
Measure the Progress as per the Working Software − Working software is the key and it should be the primary measure of progress.
-
Maintain Constant Pace − Agile processes aim towards sustainable development. The business, the developers, and the users should be able to maintain a constant pace with the project.
-
Monitoring − Pay regular attention to technical excellence and good design to enhance agility.
-
Simplicity − Keep things simple and use simple terms to measure the work that is not completed.
-
Self-organized Teams − An agile team should be self-organized and should not depend heavily on other teams because the best architectures, requirements, and designs emerge from self-organized teams.
-
Review the Work Regularly − Review the work done at regular intervals so that the team can reflect on how to become more effective and adjust its behavior accordingly.
”;