What is the agile model?
- Extreme programming (XP) is a type of Agile software development methodology that promotes adaptability and high customer involvement
Steps in the model
- Identify user stories and requirements
- Work closely with stakeholders to gather functional and non-functional requirements
- Plan the sprint (Sprint Planning)
- Break down requirements into tasks
- Choose a set of tasks (features) for the current sprint (a short time-boxed development period, usually 1–4 weeks)
- Design the solution
- Decide how the selected features will be built
- Develop the features
- Write code for the selected tasks in the sprint
- Developers often work in pairs or small teams (e.g. pair programming)
- Test continuously
- Perform unit testing, integration testing, and acceptance testing during the sprint
- Testing is ongoing, not saved for the end
- Review progress (Sprint Review)
- Demo the working software to stakeholders
- Collect feedback and identify changes or improvements
- Reflect on process (Sprint Retrospective)
- The team reflects on what went well and what needs improving in the next sprint
- Focus is on team performance and process optimisation
- Release (may happen after every sprint or set of sprints)
- Deploy working software to users or staging environment
- Repeat
- Move to the next sprint with updated priorities and feedback
The Extreme Programming (Agile) Model
Benefits
- Highly adaptable: Can quickly respond to changes in requirements, even late in development
- Frequent communication: Encourages constant communication between team members and stakeholders
- Quality focus: Emphasises technical excellence and good design, with continuous testing throughout the development cycle
- Customer collaboration: Encourages working closely with customers to ensure the developed product meets their needs
Drawbacks
- Requires experienced team members: Can be challenging to implement without knowledgeable and skilled developers
- Intensive collaboration can lead to burnout: The constant communication and collaboration can be tiring for team members
- May lack documentation: The focus on adaptability and immediate coding may result in insufficient documentation
- Scope creep: The flexible nature may lead to uncontrolled changes in requirements
Suitability
- Extreme Programming is most suitable for small to medium-sized projects where requirements can change and customer involvement is high
Summary
- Focus is on good quality code.
- It is an agile paradigm.
- It is designed to allow development to respond to changing user requirements.
- Involves paired programming.
- Program is regularly reviewed/iterative process.