What is Extreme Programming?
Agile software development methodologies are very popular today. Moreover: they are becoming more popular year after year. Perhaps that is the reason why many developers wonder: “What is Extreme Programming?” The answer to this question is both simple and complex at the same time. In this article we will try and answer it properly.
The first thing you should know about Extreme Programming (XP) is that it is one of the Agile methodologies. Agile methods originated in the early 2000s in response to the traditional Waterfall methodology. A group of Agile inventors wanted to establish new principles of software development and make them suitable for complex modern projects. That is why high degree of customer involvement, strong communication inside of the teams, and iterative structure of projects are the main Agile principles.
As an Agile methodology, Extreme Programming shares all these principles. But what are the specific features of this method?
Extreme Programming is a software development methodology designed to produce high quality products within a short amount of time. This ability is its main functional feature. If you need to get a supreme software product, but you have only a few months – XP is just what you need. Extreme Programming has the shortest iterative cycles among all Agile methodologies. That can be explained by the fact that XP teams are placed into strict time frames during the realization of their projects. An average Extreme Programming iterative cycle lasts about one week. It can be even shorter if it is necessary.
The degree of customer involvement in XP is very high. The client participates in all team meetings. Unlike other Agile methodologies, in Extreme Programming the customer does not have a representative in the team. He participates at the team’s work personally. Such a high degree of customer involvement allows XP developers to save time for consultations with their clients. The customer is always near, so he is well informed about the functionality of the future product and the problems with its development.
Most modern developers define four main XP values: communication, simplicity, feedback, and courage.
Strong communication is a compulsory condition of normal work for every Extreme Programming team. It is quite hard to create a high quality product within a short amount of time without discussing its features and the issues of its development with the team members and the customer, who is also a part of the team.
XP developers always start with the simplest code. They can add something to it during their further work. But there is no need to try creating a complex code from the very beginning of project realization. Such approach allows XP programmers to save a lot of time for other tasks.
Extreme Programming teams have to get feedback from their customers and final users constantly to understand if their product works properly.
Courage is also important because XP developers should have no doubt in their activities to create a good software product.