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

  1. Identify user stories and requirements
    • Work closely with stakeholders to gather functional and non-functional requirements
  2. 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)
  3. Design the solution
    • Decide how the selected features will be built
  4. Develop the features
    • Write code for the selected tasks in the sprint
    • Developers often work in pairs or small teams (e.g. pair programming)
  5. Test continuously
    • Perform unit testing, integration testing, and acceptance testing during the sprint
    • Testing is ongoing, not saved for the end
  6. Review progress (Sprint Review)
    • Demo the working software to stakeholders
    • Collect feedback and identify changes or improvements
  7. 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
  8. Release (may happen after every sprint or set of sprints)
    • Deploy working software to users or staging environment
  9. Repeat
    • Move to the next sprint with updated priorities and feedback

The Extreme Programming (Agile) Model 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.