Extreme Programming Dictionary
Modern software development industry has lots of project management methodologies. For a regular programmer, it is necessary to know at least the basics to work with them successfully. One of these methodologies is called Extreme Programming. In this article, we will explain you the main XP notions and terms. But before doing that it is necessary to say a few words about the methodology itself.
Extreme Programming is a popular Agile methodology that originated in the early 2000s. It has gained large popularity all over the world since those days. Some people even consider it the most effective Agile methodology. That can be explained by the fact that XP developers are aimed at creating high-quality software within the shortest amount of time. If you have only a few month to create the necessary software product – Extreme Programming is just what you need.
XP shares all Agile principles including the iterative structure of projects, strong communication inside the teams, and strong customer involvement. However, unlike the teams of other Agile methodologies, Extreme Programming teams have more roles. They often include traditional roles like project managers and testers. That is because of the fact that XP teams are always pressed for time, so they have to use all available methods to achieve their goals.
Now let’s talk about Extreme Programming notions.
Pair programming is one of the most popular XP practices. Its idea is quite simple: two developers work at one computer. Such approach allows the programmers to improve the quality of their products. Two developers can detect bugs more effectively than one employee. Additionally, this practice is a kind of experience exchange. More experienced programmers can share valuable first-hand work experience with their young colleagues. Some people also say that this practice helps the developers concentrate on work instead of wasting their time for unnecessary entertainments like social media etc.
Test-driven development is another popular XP practice. It allows the programmers to add new functionality to their software product and test it at the same time. If an Extreme Programming team acts according to the rules of test-driven development, the first thing it should do is to write an acceptance test. After it is ready, the team starts to add new functionality to the software product. Then it should pass the new test. The team repeats this test-driven development lifecycle until the product is ready to delivery.
Communication is one of the main Extreme Programming values. The members of XP teams communicate with each other and with their customers constantly during the period of project realization. Extreme Programming is a methodology that has the highest degree of customer involvement into its projects. In XP the customer is not just a person, who controls the quality of intermediate and final products. He is a member of the team and he participates in its work. That is why Extreme Programming developers don’t have to introduce the intermediate products to their clients after each iteration.