What is agile? Agile is an iterative approach to deliver a product (often software) incrementally instead of trying to deliver it all at once. It breaks projects into manageable bits of user functionality called user stories, prioritizes them, and then deliver them in short cycles called sprints (or iteration, usually running 1-4 weeks). The list of the outstanding user stories to be developed is called a backlog. Agile is different from the regular lengthy waterfall approach projects that try to get all the requirements upfront and complete the project at once.
Agile values the following concepts:
- Customer collaboration over negotiations
- Individuals and interactions over tools and processes
- Functioning software over detailed documentation
- Responding to change over adhering to a plan
Agile principles include:
- Develop small, incremental releases and iterate
- The team empowered to make decisions
- Active user involvement and collaborative approach between stakeholders
- Requirements evolve while the time is fixed
- Apply the 80/20 rule and capture requirements at a high level (use visuals)
- Focus on frequent delivery of products and complete each feature before moving to the next
- Testing is done throughout the project – test often and early