Monday, 20 April 2009

Scrum Vs XP

I keep on seeing people debating about the differences between Scrum and XP. It’s quite interesting to hear the different advantages people suggest of one approach over the other. I am listing down the differences as per my understanding of each methodology.

• Scrum concentrates more on project management aspects of software development where as XP is more focused towards the engineering disciplines. It’s very much possible to follow all the XP engineering practices in a Scrum project. I have heard a lot of people say that pair programming is not allowed in an XP project. I don’t particularly agree with that. Remember Agile is not about following something blindly, it’s about being proactive and deliver maximum value in each release. If a team thinks pair programming or for that matter any XP engineering practice helps them do that, I tell them to have a go.

• Each development life cycle in a Scrum is called a Sprint where as in XP it is referred to as Iteration.

• XP teams work in a strict priority order. All the features to be developed are prioritized by the customer or Product Owner and team works on the features in that order. In Scrum the team is free to pick up the features to be developed. Though the Product Owner does specify the priority of the features, it is up to the team to choose the sequence in which the features would be developed.

• Scrum sprints last from 1-4 weeks where as an XP iteration is generally 1-2 or maximum 3 weeks long.

• Scrum teams strictly do not allow a change in the sprint backlog once a sprint has started. If the change is really mandatory, the sprint is ended midway and a new sprint is started. XP teams are much more adaptable to change with in iterations. As long as team believes they can deliver an extra/changed story without hampering the quality of the rest of the features, a change can be accepted in the iteration plan. I favour Scrum more in this particular context as I don’t really admire allowing a change once the iteration as started. I believe the responsibility of convincing the Product Owner to not to come up with a change request or a new story, during an iteration, lies with the Project Manager or the Scrum Master.

• Scrum does not suggest any engineering practices. Scrum is more flexible that way and leaves it to the team to adopt and implement the engineering disciplines as per their project requirement and their comfort level with those practices. XP is very strict in terms of engineering practices. It forces the team to follow various engineering practices like Test driven development (TDD), Pair programming, Automated Testing, Continuous Integration, Refactoring etc.

All the content written above is as per my understanding of the two methodologies. If you think I am wrong or there is something which needs any amendment or you have any query please write to me at ravinder.rawat@gmail.com.

2 comments:

ktos said...

Your perception of XP is somewhat wrong - it does not force anyone to using any of the practices - it encourages people to do so, pointing out the pros and cons.

Anonymous said...

"All the features to be developed are prioritized by the customer or Product Owner (....)"
Product Owner is a term used in SCRUM, not in XP.

 
Technology