Main Principles of Extreme Programming
Many software developers wonder: “What are Extreme programming principles?” You may be surprised with this question, but today there is no unified definition of these principles. Some people write about 14 principles of Extreme Programming. The others define 12 XP principles. If you want to learn the basic principles of Extreme Programming and find out the truth, this article is for you.
Before defining the main principles of XP it is necessary to give the proper definition for this methodology.
Extreme Programming is probably the most effective method of software development. It was created especially for performing the hardest tasks within the shortest amounts of time. XP teams work in Agile style. It means that the range of customer involvement in the Extreme Programming projects is very high. It is even higher than in other Agile methodologies, because in Extreme Programming a customer must participate all team meetings personally. XP also has the shortest iterations in software development industry. Usually the iterative cycles of Extreme Programming projects last only one week. All principles of XP are defined by its above mentioned features and goals.
Most Extreme Programming researchers define only 5 principles of this methodology:
- Rapid Feedback
- Incremental changes
- Embracing changes
- Quality of work.
These principles are simple enough, so there is no need to explain them in greater detail. But where did the talks about 12 Extreme Programming principles came from? The answer is simple: some people confuse the principles of XP with its practices.
Extreme Programming has 12 practices. They are grouped in four areas:
- Continual Process,
- Code understanding,
- Programmer’s work conditions.
As you see, the names of these groups are somehow similar to the names of XP principles. Perhaps that was the reason for misunderstandings in this issue. However, if some people consider 12 Extreme Programming practices the main principles of this methodology, it is necessary to mention the most important of them.
The planning game is one of the most widely spread XP practices. It is used by all Extreme Programming teams. The game is actually a meeting where the developers communicate with the customer. Such meetings are conducted at the beginning of each iterative cycle. Their main task is to find out the customer’s vision regarding the final and intermediate product features. After the client expresses his demands, the team estimates the terms of performance.
The main idea of this popular Extreme Programming practice is simple: two people working at one computer on one piece of code can write it faster than one person. Hence, pair programming is aimed at improving the terms of product delivery. It also influences the quality of software product positively, because two developers can avoid more bugs than one employee. Pair programming also helps the programmers raise the work productivity because the developers don’t let each other waste time for unnecessary things like social media or other time consuming activities.