What is Extreme Programming (XP)
4 phases of Extreme Programming (XP)

What is Extreme Programming (XP)

Prev : What is Agile Software Development Next : Scrum Process Model

This article is written for Managament Students who want to make a career 
in the IT Industry and do not have background on Agile software development 
process.

Extreme Programming (XP) is one of the Agile Development Process and is made of four major phases

  1. XP Planning Phase
  2. XP Design Phase
  3. XP Coding Phase
  4. XP Testing Phase

XP Planning phase

  • Listen to create "user stories" that describe required output, features and functionality. Customer assigns priority to each story.
  • Agile team assesses each story and assigns a cost (in weeks). If cost is more than 3 weeks the story can be further sub-divided into multiple stories
  • All members work together and group stories for a Deliverable increment next release
  • A delivery commitment is made based on one of the 3 factors
  1. All stories to be delivered in a few weeks
  2. High priority stories delivered first
  3. The riskiest story to be delivered first
  • After first increment "Project Velocity" is calculated. Number of stories that can be delivered in each increment is known and help define subsequent delivery dates for other increment. Customers can add stories, delete existing stories, split stories as development work proceeds.

XP Design Phase (Refactoring is encouraged)

  • Follows KIS principle (Keep It Simple). Nothing more nothing less than the story.
  • XP uses CRC Cards (Class-Responsibilities-Collaborator) They identify and organize the classes that are relevant to the current software increment
  • When stuck in difficult design problems XP suggests creation of "Spike solutions". Spike solution is design prototype for that portion, is implemented and evaluated. It can be dropped and new solution searched.
  • XP design encourages "Refactoring" . Refactoring is an iterative refinement of the Internal Program Design. It does not impact external behaviour, it improves the internal structure. It makes code easy to read, efficient and with less bugs.

XP Coding Phase

  • XP coding recommends construction of a unit test for a story even before coding starts. This approach has changed testing and programming practice drastically. The gains from this approach were high and it made XP popular. Implementer can focus on what must be implemented to pass the test.


  • XP coding encourages "Pair Programming". This was a revolutionary concept and became very popular among programmers and QA. Two people work together at one workstation, interchanging their roles. Real time problem solving, real time review for Quality Assurance.
  • In picture Vaibhav and Nimki pairing for Mobile testing.

XP Testing Phase

  • All unit tests are executed daily and ideally should be automated. Regression testing is conducted to test current and previous components.
  • Acceptance Tests are defined by customer and executed to assess customer visible functionality

The XP Planning and feedback loop


Next : What is Scrum Methodology

I curious that in term of Pair Programming, doesn't it mean two developers working together?

Like
Reply

To view or add a comment, sign in

More articles by Shahab M.

Others also viewed

Explore content categories