DEV Community

Hibo Abdilaahi
Hibo Abdilaahi

Posted on

A quick guide to Extreme Programming (XP)(Agile development)

What is Extreme Programming?

  • A set of principles in agile software development that aims to help developers produce higher quality code.
  • It is said that the name comes from encouraging teams to perform these essential practises to the best of their ability, almost to the extreme.

When would you employ these principles?

XP and agile software development is typically applied in a team environment (although there is nothing suggesting you can’t apply some/all of these practises to your own individual processes).

Specific examples of when you should employ XP principles include:

  • When dynamically changing software requirements
  • When there is the potential for risks caused by fixed time projects using new technology
  • When you are part of a small, co-located extended development team
  • When the technology you are using allows for automated unit and functional tests

The five principles (or values as they are sometimes called) are:


Communication Gif

This principle stresses the importance of communication to transfer knowledge from one team member to the rest of the team.

XP stresses that communication should, in the best case scenario, be face to face, with the aid of a white board or other drawing mechanism. This could be in the form of retrospectives and stand ups


Simplicity Gif

This is all about addressing the requirements that you need to. Keep the design of the system as easy to maintain and support as possible.

In other words, you should keep in mind “What is the simplest thing that will work?”


Feedback Gif

In order to identify areas for improvement and revise practises, both in the product and the team, constant feedback is necessary.

In this sense, feedback is though two support the simplicity principle and help keep your design as simple as possible.


Courage Gif

This is all about having the confidence to raise issues to the team, try something else when something isn’t going right and accept and act on constructive feedback, even when it can be difficult.


Respect Gif

Lastly, and in my opinion the most important one is respect. In order to do all of the above, you need to respect one another.

Respect your team members enough to:

  • Communicate with them
  • Give them feedback and accept the feedback you are given
  • Work together to design in the simplest way

I hope this was an informative guide to extreme programming in agile development.

Check out these links for more information:

Top comments (0)