What is it?
- Perform task in small increments in iterations, over a short time frame (typically last from 1 - 4 weeks).
- Each iterations is worked by a team through the full software development life cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.
To have an available release at the end of each iterations, with new requested features added to each iterations.
- emphasize face-to-face communication over written documents.
- Team size is typically small (5-9 people) to help make team communication and team collaboration easier
- Agile team will contain a customer representative. This person is appointed by stakeholders to act on their behalf and makes a personal commitment to being available for developers to answer mid-iteration problem-domain questions.
- Customer satisfaction by rapid, continuous delivery of useful software.
- Most agile methods share other iterative and incremental development methods' emphasis on building releasable software in short time periods (weeks rather than months).
- Working software is delivered frequently.
- Minimise overall project risk
- Allow project to adapt to changes more quickly
- Documentations is produced as required by stakeholders
- Minimal bugs
- Agile methods usually produce less written documentation than other methods. In an agile project, documentation and other project artifacts all rank equally with working product