The Extreme Programming software development methodology is popular partially because its values (communication, simplicity, feedback, courage and respect) improve the process and make it easier for all stakeholders to work together as a team. This is not surprising because Extreme Programming is a type of an agile software project management methodology and agile software project management methodologies as a whole take the human factors into account.
The Extreme Programming Communication Value
Communication is key for the success of any project but for Extreme Programming communication is even more important because if the requirements of the client are not communicated to the developers' team, there is no way to implement these requirements correctly. Since in Extreme Programming there is no formal documentation as a way to communicate requirements, designs, frequent contacts, and feedback are the ways to do it.
The Extreme Programming Simplicity Value
Unlike traditional software development methodologies, Extreme Programming values informality and simplicity. The idea is to implement only the functionality the client needs right now, rather than waste time on complex features the client might never use. When additional functionality is required, it is added at a later stage. Simplicity eases communication, too. In practice the implementation of the simplicity value causes some problems because when the client request changes, this frequently leads to radical changes in what has already been implemented.
The Extreme Programming Feedback Value
The third value of Extreme Programming is feedback. Unlike the traditional meaning of “feedback”, in Extreme Programming it includes three types of feedback: from the system, from the customer, and from the team. Unit tests are the best way to get feedback from the system because they tell if a modification is well accepted by the system or not. Functional tests are the way to get feedback from the customer. Feedback from the team is also important because communication with the developers is the way to learn how long it will take to implement a given change. The Feedback value is a great mechanism for the early discovery of bugs and other defects.
The Extreme Programming Courage Value
A relatively recently added value is the courage value. In Extreme Programming courage means to be brave to start coding even when the requirements can be changed and to accept refactoring as something normal. Courage is also regarded as the bravery to throw away code when process improvements or other circumstances require it. Another meaning of courage in Extreme Programming is to be persistent and not give up when a problem seems hard to solve.
The Extreme Programming Respect Value
Finally, the last (but not least) value in Extreme Programming is Respect. Respect must be shown to the other team members and their work. This means that a developer must always strive to achieve top quality and not to make changes, which affect the work of others in a negative way. Respect is mutual in a team. Unlike the other four values of Extreme Programming, the Respect value is directed mainly to the team, not to its interactions with the client.
The five values of Extreme Programming – communication, simplicity, feedback, courage, and respect are the cornerstones of its philosophy. They reflect the principles of agile software management, a variety of which Extreme Programming is.
Join the Conversation