Intro to XP

Table of Contents

What is XP?

Is XP for me and my team

Understanding XP – its values and principles

Comparison with other agile methods

Further reading

References

What is XP?

XP, short for Extreme Programming, is part of a bigger group of agile methodologies. Agile methodologies are project management approaches that divide the project into phases, with a focus on collaboration and ongoing improvement. XP is one of the most specific frameworks since it imposes engineering practices. It also specifically stresses customer satisfaction, which we will see being reflected in its values and principles as we discuss them later.

Is XP for me and my team?

Before we dive further, you should check if XP makes sense for your team!

Implementing XP for your team would be useful if:

Understanding XP – its values and principles

XP is made up of two core parts: its values and its principles.

Think of values as high-level ideas that help guide the team through decision making. Principles on the other hand are more low-level, giving speciifc instruction to address common issues.

As we look into them, we will explain how such practices will ultimately lead to better customer satisfaction.

Values

1. Communication

2. Simplicity

3. Feedback

4. Courage

5. Respect

Principles

There are a lot of principles when it comes to XP, but here we have summarized ones that would affect developers the most.

1. Pair programming

2. Whole team

3. Continuous integration

4. Test-first programming

5. Short development cycles

6. 10-minute build

Comparison with other agile methodologies

XP vs Scrum

1. Duration of sprints. Scrum teams usually work on sprints that are 2 weeks to 1 month long. XP sprints are usually only 1 to 2 weeks long.

2. Flexibility during sprints. For Scrum teams, once the sprint planning has been done, the expectation is to deliver those items by the end of the deadline. However, in XP, due to the higher emphasis on responsiveness, as long as the team hasn’t already started work on a feature, another feature of similar workload can be swapped in.

3. XP prescribes engineering practices. As we have discussed, XP has a lot of specific implementation details that developers need to follow.

XP vs Waterfall

1. Plan as you go. Instead of a separate planning phase, planning takes place at the beginning of each sprint, which only lasts 1-2 weeks each.

2. XP tests before, Waterfall tests after. In XP, tests are written before code is even implemented.

3. Smaller chunk-based contributions. Instead of working on big features alone for a long period of time, developers work on small chunks and push as they go. This avoids massive merge conflicts in the future, saving time.

Further reading

If you would like to learn more about the other principles of XP, here is a good article on it.

https://www.nimblework.com/agile/extreme-programming-xp/#:~:text=Extreme%20programming%20is%20a%20software,to%20evolving%20and%20changing%20requirements.

References

https://www.nimblework.com/agile/extreme-programming-xp/#:~:text=Extreme%20programming%20is%20a%20software,to%20evolving%20and%20changing%20requirements.

https://www.agilealliance.org/glossary/xp/

https://kanbanzone.com/resources/agile/extreme-programming-xp/

https://www.mountaingoatsoftware.com/blog/differences-between-scrum-and-extreme-programming

http://www.extremeprogramming.org/