Agile development is a phrase used to describe methodologies for incremental software development. It is an alternative to traditional project management where emphasis is placed on empowering people to collaborate and make team decisions in addition to continuous planning, continuous testing and continuous integration.
The Agile Manifesto
Agile development is used to describe any development process that is aligned with the concepts of the Agile Manifesto. This well-known documentation was developed by leaders in the software industry and is based on experience with what works and what doesn’t in software development.
The Manifesto for Agile Software Development says:
“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
Agile development uses 12 guiding principles that are designed to satisfy the customer through early and continuous delivery of valuable software. Principles include :
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Working software is the primary measure of progress.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- 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.