Agile software development methods emerged as an alternative to traditional software development in 2001 by a group of practitioners to address the shortcoming of traditional software development methods.
Unlike traditional process driven methods, Agile emphasises on team relationship and role of people over institutionalised processes, contracts and detailed documentation encapsulated in Agile Manifesto:
- Individuals and interactions over processes and tools
- Customer collaboration over contract negotiation
- Responding to change over following a plan
- Working software over comprehensive documentation
The primary objective of agile methods is to deliver a working software that delights the customer using a just enough documentation and just enough planning approach to continuously deliver working software to production.
The introduction of the extreme programming method (XP) is attributed to starting point for the various agile software development approaches. The top five agile methods includes:
Project level Agile Methods:
- Extreme Programming (Kent Beck )
- Scrum (Jeff Sutherland and Ken Schwaber)
- Feature-Driven Development (Palmer and Felsing)
- Dynamic Systems Development Method (Arie van Bennekum)
- Adaptive Software Development (Jim Highsmith)
- Rational Unified Process (Rational Software- IBM)
Enterprise Agile Frameworks:
- Scaled Agile Framework (SAFe)
- Large Scale Scrum (LeSS)
- Declined Agile Delivery (DaD)
Table 1 Comparison of agile Methods
|Practices||Iteration Period||Team Size|
|XP||User stories, Test driven development, pair programing and refactoring and Iterative, incremental delivery.
Phases: Concept, Initiate, Deliver Deploy. Adopted by Agile Academy
|1-6 weeks||Small team less than 20|
|Scrum||Each sprint starts with sprint planning, daily scrum, sprint review and sprint retrospective. In each sprint, the team creates finished portions of product using approved backlog. At the end of a Sprint, a Sprint Review meeting conducted by the Scrum Master.||2-4 weeks||No hard limit but single scrum team should be preferably less than 9 people|
|FDD||FDD’s focus is on design and build phases (primarily) using prototyping, feasibility study, and Iterative delivery.
Phases include Develop model, Build feature list, Plan by feature, Design by feature and Build by feature. Recommended for complex projects.
|All sizes independent teams|
|DSDM||Iterative delivery through Feasibility study, development and implementation||2 days to 2 weeks||Many members and more than one team|
|ASD||ASD phases include, Speculation, Iterative development, Collaboration and Learning||4-8 weeks||Small team of 5-9|
|RUP||RUP phases includes Inception, Elaboration, Construction, and Transitions. Each iteration covers business modelling, requirements analysis, design, development, testing and deployment. Works better for large size projects.||2 weeks to six month||Large development team|
|SAFe||SAFe provide a comprehensive framework for an agile delivery in an enterprise and is growing in popularity.
SAFe structured approach allows large enterprises to transition to agile following a highly structured and well documented roll out plan.
|Two weeks||Many Scrum teams. Enterprise Agile|
|LeSS||LeSS Scales up Scrum activities such as Sprint planning, and retrospective with participants from a number of scrum teams to coordinate program deliveries.||Two weeks||Two to Eight Scrum teams|