Extreme Programming XP: Values, Principles, and Practices


However, system-wide integration testing has been reduced, to weekly, or less often, depending on the stability of the overall interfaces in the system. Unit tests determine whether a given feature works as intended. Programmers write as many automated tests as they can think of that might “break” the code; if all tests run successfully, then the coding is complete. Every piece of code that is written is tested before moving on to the next feature. The advocates of XP argue that the only truly important product of the system development process is code – software instructions that a computer can interpret. Meanwhile, other agile-development practices have not stood still, and as of 2019 XP continues to evolve, assimilating more lessons from experiences in the field, to use other practices.

  • Extreme programming is a set of agile software development practices that focuses on customer satisfaction.
  • Extreme programming also introduces a number of basic values, principles and practices on top of the agile methodology.
  • Due to the fact that XP implements constant teamwork and feedback from the client, this allows changes to be made when necessary and at the earliest time possible.
  • The practice of Refactoring was originally listed among the 12 core, but was incorporated into the practice of Incremental Design.
  • So instead of jumping off a mountain or water-skiing without the skis, extreme programming just means taking good programming practices to the extreme.
  • But before we dive in, it’s important to note that XP is not really a project management framework, even though a lot of its practices overlap with those from the project management domain.
  • Situations of misunderstanding between clients and team members could lead to an increase in overall project time.

Our rules set expectations between team members but are not the end goal themselves. You will come to realize these rules define an environment that promotes team collaboration and empowerment, that is your goal. Once achieved productive teamwork will continue even as rules are changed to fit your company’s specific needs.

What are the principles of Extreme Programming?

If the user story is more complex, or it’s made by an anonymous customer, it likely won’t work for XP. Rather than develop software and a functioning system that takes potentially years, XP projects relatively only last for several months. This is due to the fast paced work environment that XP implements, thus reducing the amount of time wasted and working on what’s important during each iteration. Many of the criticisms, however, are believed by Agile practitioners to be misunderstandings of agile development. Proponents of extreme programming claim that by having the on-site customer request changes informally, the process becomes flexible, and saves the cost of formal overhead. Critics of XP claim this can lead to costly rework and project scope creep beyond what was previously agreed or funded.

Moreover, it’s essential to estimate the efforts and duration needed for the delivery of this functionality. Express yourself clearly in the case of understanding breaks. To keep all the three activities on one-page designing happens. In other words, it brings all three activities under one umbrella. If the test results are positive, we can go ahead with the release process. The team of testers performs manual testing, and subsequently, test results will be published.

Pair programming

The different phases, and their relevant activities are explained below. Frequent feedback moments can show design errors in a timely fashion, allowing them to be solved quickly. Only in the presence of mutual respect, it is possible to give feedback, and have it be interpreted correctly. A sense of solidarity in working and designing solutions together, is essential. Only absolutely necessary things are executed and implemented. Examples of necessary elements are design and basic functionalities.

definition of extreme programming xp

Therefore, it is imperative to have proper documentation for every change in order to avoid errors. Thereafter, if needed, the customer develops a new story after testing. Moreover, to ascertain the tracking of the resolution time and the time taken by each team on the defect. Arranging developer’s meetings with customers as and when needed. Finally, the estimated time and the work comparison occurs once the entire load distribution happens among programmers. The developer acknowledges the accountability of the assigned task.

Extreme Roles and Responsibilities:

In addition to that, proper communication within the team is also needed to ensure that they all are on the same page. Extreme programming application happens in the projects where the requirements keep on changing. So instead of jumping off a mountain or water-skiing without the skis, extreme programming just means taking good programming practices to the extreme. Or, as Rolling Stones’ frontman Mick Jagger once definition of extreme programming xp said, “Anything worth doing is worth overdoing.” Although Extreme Programming specifies particular practices for your team to follow, it does not really establish specific roles for the people on your team. As with Continuous Integration, Test-First Programming reduces the feedback cycle for developers to identify and resolve issues, thereby decreasing the number of bugs that get introduced into production.

Energized work means taking steps to make sure you are able physically and mentally to get into a focused state. It also means stay healthy, and show respect to your teammates to keep them healthy. While you can’t use the entire XP framework in many situations, that shouldn’t stop you from using as many of the practices as possible given your context.

Volkerdon – The best solution to prepare for Agile and Scrum certifications

Instead of using external motivators, XP allows your team to work in a less complicated way , all based on these five values. XP project work at their best when the client and development team are close to each other so they can meet face to face. This will prevent them from what is referred to as “burnout”. XP require the developers to be efficient and fast to sustain high quality production.

definition of extreme programming xp

XP’s focus is producing work quickly and simply, then sharing it to get almost immediate feedback. As such, developers are in almost constant contact with customers throughout the process. In XP, you launch frequent releases to gain insights early and often.


The following practices at some point in time, were considered to be the best practices in software development. This role can become a single-point-of-failure for the project, and some people have found it to be a source of stress. Also, there is the danger of micro-management by a non-technical representative trying to dictate the use of technical software features and architecture.

definition of extreme programming xp

There is a large chance that this bug will appear when the system is in production. Kent Beck defined courage as “effective action in the face of fear” (Extreme Programming Explained P. 20). This definition shows a preference for action based on other principles so that the results aren’t harmful to the team.


Software fills a very important role in modern life, and needs to be developed using extremely effective methods and processes. One of these methods is extreme programming , and this is the subject of our lesson and examples. Has possible inefficiency from frequent code changes within various iterations.


A PrimaFornatta utiliza cookies e outras tecnologias para melhorar a sua experiência. Ao continuar navegando, você concorda com a utilização dessas tecnologias, como também, concorda com os termos da nossa política de privacidade.