What is Extreme Programming (XP)?

We have earlier discussed several Agile related concepts like Scrum, Sprint, Kanban, Lean, Six Sigma among others. These concepts will help in the preparation for both CSM and PMI-ACP certifications. In this article, we shall discuss another important agile concept – Extreme Programming

Extreme Programming, just like Scrum, relies on quick sprints, frequent releases and constant stakeholder collaboration that can improve productivity. Frequent releases basically introduce checkpoints at which new customer requirements can be adopted. The idea here is that this will help in avoiding employee burnout as well as increase the quality of deliverables. Extreme Programming is abbreviated as XP. It is a type of agile software development.

Elements of Extreme Programming

Some important elements of Extreme Programming (XP) are as follows,

Programming in pairs or doing extensive code review

Unit testing of all code

Avoiding programming of features until they are actually needed

Expecting changes in the customer’s requirements as time passes and the problem is better understood

Frequent communication with the customer and among programmers

Pair Programming is exactly what it sounds like. Image from Wikipedia

What is so ‘Extreme’ here?

The Extreme Programming methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to “extreme” levels. For instance, code reviews are considered a beneficial practice. When code reviews are taken to the extreme, code can be reviewed continuously. This is also known as the practice of pair programming in XP.