Extreme Programming or XP as it is widely known is a software development methodology, with the goal to improve software quality and responsiveness to changing customer requirements. It has the following goals –
- Have shorter development cycles and frequent releases.
- Produce higher quality software more productively.
- Have checkpoints to accommodate new or changing customer requirements.
Extreme Programming (XP) is a type of agile software development but has it’s own principles on practices over those of agile. It is is similar to a Scrum but with some subtle differences which we will cover in the future posts.
Like any software development methodology, XP defines four basic activities that are to be performed during the development process –
- Coding
This is self-explanatory. Any software needs coding to be done. - Testing
Like other software cycles, XP includes Testing (Unit Testing, Acceptance Testing and Integration Testing) as one of it’s important activities to be followed. - Listening
Listening indicates listening to customers and what they want in their product. The communication between programmers and customers should be open so as to understand the requirements clearly. Programmers should be able to give their feedback clearly to the customers whether the solution is possible or not and explain any technical difficulties they might face. This kind of communication takes place during the Planning Game. Planning Game is a weekly meeting or a meeting held during a single iteration of the cycle which covers the planning process. - Designing
Like any other project, a good design leads to a good product without any instabilities. It organizes the logic and avoids lots of dependencies.
And, according to Kent Beck, the creator of Extreme Programming,
“You don’t get to choose whether or not you will write tests—if you don’t, you aren’t extreme: end of discussion.”
It is true for all the activities; If you don’t do it, you aren’t extreme!
Another element of Extreme Programming is Pair Programming. It is a technique where two software developers/programmers work together at one station. One is called as the Driver, who writes the code and the other is called as the Observer/Navigator who reviews each line of code as it is typed. The two programmers switch roles after minute to hour periods. With this technique, everyone is familiar with the work that’s being done and it also reduces the chances of error or a bug.
Extreme Programming (XP) is still evolving and people still use it even though the regular Scrum is quite popular. In the end, it obviously it depends on the nature of the project whether it suits the nature of your project or not.
PS: We have published a number of posts on Scrum in the past. If you are new to Scrum or want to learn more about it, here are some of the articles that were covered.
Scrum – A brief overview
The Scrum Workflow – A chain of events!
Scrum Terminologies
All about User Stories in a Scrum…
The Role of a Scrum Master in a Scrum
The Role of a Product Owner in a Scrum
The Daily Standup – Do’s and Don’ts