Agile - Manifesto

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 SatisfactionHighest priority is given to satisfy the requirements of customers through early and continuous delivery of valuable software.

      Welcome ChangeChanges 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 SoftwareDeliver a working software frequently, ranging from a few weeks to a few months, considering shorter time-scale.

      CollaborationBusiness people and developers must work together during the entire life of a project.

      MotivationProjects 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 ConversationFace-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 SoftwareWorking software is the key and it should be the primary measure of progress.

      Maintain Constant PaceAgile processes aim towards sustainable development. The business, the developers, and the users should be able to maintain a constant pace with the project.

      MonitoringPay regular attention to technical excellence and good design to enhance agility.

      SimplicityKeep things simple and use simple terms to measure the work that is not completed.

      Self-organized TeamsAn 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 RegularlyReview the work done at regular intervals so that the team can reflect on how to become more effective and adjust its behavior accordingly.