Agile Programming (OCR A Level Computer Science) : Revision Note

Callum Davies

Written by: Callum Davies

Reviewed by: James Woodhouse

Updated on

Agile (extreme programming)

  • In A Level Computer Science, 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

    1. Work closely with stakeholders to gather functional and non-functional requirements

    2. Requirements are often written as user stories (e.g. As a user, I want to...)

  2. Plan the sprint (Sprint Planning)

    1. Break down requirements into tasks

    2. Choose a set of tasks (features) for the current sprint (a short time-boxed development period, usually 1–4 weeks)

    3. Define the sprint goal

  3. Design the solution

    1. Decide how the selected features will be built

    2. Focus is on simple and adaptable design, not heavy upfront documentation

  4. Develop the features

    1. Write code for the selected tasks in the sprint

    2. Developers often work in pairs or small teams (e.g. pair programming)

  5. Test continuously

    1. Perform unit testing, integration testing, and acceptance testing during the sprint

    2. Testing is ongoing, not saved for the end

  6. Review progress (Sprint Review)

    1. Demo the working software to stakeholders

    2. Collect feedback and identify changes or improvements

  7. Reflect on process (Sprint Retrospective)

    1. The team reflects on what went well and what needs improving in the next sprint

    2. Focus is on team performance and process optimisation

  8. Release (may happen after every sprint or set of sprints)

    1. Deploy working software to users or staging environment

  9. Repeat

    1. 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: Emphasizes 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

👀 You've read 1 of your 5 free revision notes this week
An illustration of students holding their exam resultsUnlock more revision notes. It's free!

By signing up you agree to our Terms and Privacy Policy.

Already have an account? Log in

Did this page help you?

Callum Davies

Author: Callum Davies

Expertise: Computer Science Content Creator

Callum is an experienced teacher of GCSE and A-Level Computer Science. He has 4 years of teaching experience and has detailed knowledge of how to achieve exam success, having marked for OCR A-Level. Callum is now a software engineer and regularly mentors new engineers.

James Woodhouse

Reviewer: James Woodhouse

Expertise: Computer Science Lead

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.

Download notes on Agile Programming