- 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.
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
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
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?”
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.
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.
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: