Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organising cross-functional teams.
Agile methodology is a practice that promotes continuous iteration of development and testing throughout the software development life cycle of the project.
The Agile software development life cycle is based upon the iterative and incremental process models, and focuses upon adaptability to changing product requirements and enhancing customer satisfaction through rapid delivery of working product features and client participation.
An Agile software life cycle is much different as compared to traditional software development frameworks like Waterfall. In Agile, more emphasis is given to sustained and quick development of product features rather than spending more time during the initial project planning, and analysing the actual requirements.
Customers finalize requirements before development begins and then a lengthy development process occurs, with the project manager tracking every movement of the project through each handoff and finally on to delivery.
Manifesto for Agile Software Development
The Agile Manifesto, also called the Manifesto for Agile Software Development, is a formal proclamation of four key values and 12 principles to guide an iterative and people-centric approach to software development.
4 key values of Agile Manifesto
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
12 principle of Agile Manifesto
- Satisfying customers through early and continuous delivery of valuable work.
- Breaking big work down into smaller components that can be completed quickly.
- Recognizing that the best work emerges from self-organizing teams.
- Providing motivated individuals with the environment and support they need and trust them to get the job done.
- Creating processes that promote sustainable efforts.
- Maintaining a constant pace for completed work.
- Welcoming changing requirements, even late in a project.
- Assembling the project team and business owners on a daily basis throughout the project.
- At regular intervals, having the team reflect upon how to become more effective, then tuning and adjusting behavior accordingly.
- Measuring progress by the amount of completed work.
- Continually seeking excellence.
- Harnessing change for competitive advantage.