Subscribe by Email

Wednesday, June 6, 2012

List out the differences between extreme programming and scrum?

The scrum development and extreme programming as we all know are two very great and popular agile software development processes. 
The common thing between the two is that both of these are agile processes, but on the other side there are a lot of differences too! 
In this article we are going to discuss the same i.e., what are the differences between extreme programming and scrum? There is no doubt in the fact that the two processes are very well aligned with each other! 
It often happens while following one of these processes that if you been following extreme programming you will feel as if you had been following scrum throughout the development process and vice versa.

Differences between Scrum & Extreme Programming

The differences between the extreme programming and scrum are quite subtle but they are important things which distinguish between the two processes from each other. Below mentioned are some of the differences between the scrum and the extreme programming:

Difference #1:
- The first subtle difference between the two is the duration of the iterations.
- In extreme programming the iterations are usually short i.e., one or two weeks long. 
- On the other hand the scrum iterations are quite long and may range from several weeks to months. The sprint is the name given for the iterations carried out in the scrum methodology.

Difference #2:
- In scrum, any changes during the development process are not supported by the scrum and neither do any changes are allowed in the iterations or sprints. 
- Once the sprint planning meeting is completed and it is decided to deliver a set of product back log items, the plan is not altered till the very end of the sprint. 
- In contrast to scrum, extreme programming iterations are known to be quite flexible since they allow changes to be incorporated in to its iterations. 
- But the changes can be made only if the team has not started working on a particular feature. And also the feature to be changed must be of the equivalent size of the feature that is to be replaced and has not been built up.

Difference #3:
- Extreme programming, has been known to work strictly in the order of the priority assigned to the various features and aspects. 
- These features and functionality had already been prioritized by the customers. 
- The customer is not considered to be the whole owner of the extreme programming product, whereas in the scrum it is do considered. 
- In the scrum development, the features are not prioritized by the customer instead the customers prioritize the product’s back log items.
- It is then the responsibility of the development team to determine the sequence for the development of the back log items. 
- In the extreme programming, the development always starts from the highly prioritized features and functionality.
- In scrum, the developers think that starting from a highly prioritized feature is not always a good option. They think that working up on low priority items makes more sense.

Difference #4:
- Under the concept of the scrum development process, no particular engineering practices have been stated. 
- But the extreme programming does prescribes some engineering practices like the TDD or test driven development, automated testing, simple designing, programming in pairs, refactoring and so on. 
But following the same practices is not always desirable! It is needed that the teams should incorporate their own values.

The above mentioned differences are quite small but they do make considerable set of difference and can have a profound impact on the development team. 
The extreme programming works well when it is not mandated and the teams are left to discover their own practices. Scrum methodology when worked out with time boxed iterations and additional focus can work wonders. 

No comments:

Facebook activity