Tuesday, January 25, 2011

Scrum + Technical practices = XP ?

My last blog post (Scrum has 3 Advantages Over XP) attracted a couple of interesting comments - certainly getting comments from Uncle Bob Martin and Tom Gilb shows people are listening. And it’s Tom’s comment I want to address.

But before I do, lest this come across as Scrum bashing I should say that I think Scrum has done a lot of good in the software industry. Yes I had my tongue-in-my-cheek when wrote “Scrum has 3 advantages over XP” but if Scrum hadn’t made “Agile” acceptable to management it is unlikely that XP ever would have take Agile this far.

I suppose I’m a little like Uncle Bob, its a bit of a surprise to me that Scrum Certification has come to mean so much to the industry when really it means so little. I’m also worried that brands poor people “certified”, good people “uncertified” and stifles innovation.

Second the ideas of the Scrum originators are good. And lets not forget that while Schwaber and Sutherland have become celebrities in the community there were five authors of the original “Scrum: A Pattern Language for Hyperproductive Software Development”, Beedle also co-authors one of the early Scrum books, Devos still works as a Scrum Trainer, while Sharon seems to Scrum’s Fifth Beatle - where are they now?)

Getting back to the point. Tom Gilb commented: “Sutherland did say in a speech that Scrum works best with XP”. Chris Oldwood also says he’s heard Jeff say this.

In fact, I think I’ve heard Jeff Sutherland say something similar, heck, not similar, the same and reported it in this blog. And Jeff’s not alone, I’ve heard the same thing from other Scrum advocates, trainers, and cheer-leaders.

But, this view is not universal. There are Scrum trainers who don’t. Specifically there are those who train Scrum and specifically say XP practices like TDD and on-site customer should not be used. And as I sarcastically commented previously, part of the attraction of Scrum to management types is that it doesn’t delve into the messy world of coding.

Lets just note: there are multiple interpretation of what is, and is not Scrum. Nothing wrong with that, it just complicates matters.

Back to XP though....

There are, broadly speaking, two parts to Extreme Programming (XP). The technical practices (Test Driven Development, Continuous Integration, Refactoring, Pair Programming, Simple Design, etc.) and the process management side (Iteration, Boards, Planning Meetings, etc.)

It is these technical practices that Jeff, and others, are saying Scrum software development teams should use. Fine, I agree.

Look at the other side of XP, the process side. This is mostly the same as Scrum. Do a little translation, things like Iteration to Sprint and it is the same.

(OK there are a few small differences. I just checked my copy of Extreme Programming (old testament) and to my surprise stand-up meetings aren’t there. I think many XP teams do stand-up but it isn’t originally part. The book does include “40 Hour Work week” which isn’t present in The Scrum Pattern Language, or Agile Project Management with SCRUM but I’ve heard Scrum advocates talk about sustainable pace. I’m still not sure how you marry this with commitment but I’ve written about that before. However these points are knit picking.)

Essentially Project Management XP style is Scrum.

This shouldn’t be a surprise. In the mid-90’s when Scrum and XP were being formed and codified many of these people knew one another. If nothing else they saw each other’s papers at PLoP conferences. The Scrum Pattern language was presented at PLoP 1998, Episodes (the basis for XP) was at PLoP 1995, and both draw on the work of Jim Coplien.

I have every reason to believe that XP and Scrum didn’t appear in insolation. There was cross-fertilisation. I have also been told there was competition.

If you accept that Scrum and XP project management are close enough to be the same thing, and you accept Jeff Sutherland’s recommendation (namely do XP technical practices with Scrum) then what do you have?

  • XP = Technical Practices + Scrum Style Project Management
  • Jeff Sutherland says effective development teams = Scrum + Technical Practices from XP
Think about that. Even talk about it, but don’t say it too loudly. For all the reasons I outlined before, XP isn’t acceptable in the corporation. Scrum is. Therefore, we must all keep this little secret to ourselves.

3 comments:

  1. So they're the same thing? As long as you're using XP engineering practices in the Scrum Framework? So, what was the reason for the other post?

    I think that as time goes on, scrum will be synonymous with XP. For a company to be truly agile, it needs buy in from the top down, Scrum + XP will give you your best chance at this.

    Great post though and thanks for clarifying your thoughts.

    ReplyDelete
  2. I have to agree. Scrum is a decent agile project management methodology, but for the technical aspects (practices, et al.), we should rely on XP to be Agile. I personally prefer keeping separate how teams are organised (Scrum) and how tasks are executed (XP), and I believe that a well coached Scrum team will eventually adopt most XP practices.

    What I find really a shame is that Agile used to mean something to the technical crowd. Nowadays, it the term seems to have been hijacked by managers. We now have some who even say: "We are doing Agile: we have CSMs and bought the newest Scrum tools".

    In any case, I have no idea what is the real percentage of real agile practitioners nowadays. I can only assume that absolute numbers are up, but I assume the noise-to-signal ratio is probably up thanks to the popularity of certification.

    ReplyDelete
  3. You cannot compare XP and Scrum, apart from the fact that both are two "materializations" of Agile principles. They address two different things. Scrum is a framework (not a methodology) on top of you can (and you should) put development practices. XP is an iterative methodology. It can work greatly also when it is used along with Scrum. Scrum can make miracles on his own too. This story of XP being better than Scrum (or viceversa) is just a symptom of distraction. Scrum and XP are two different things. If you have a look on Google without fanatic eyes (eg the ones that make you say that XP is better than Scrum) and if you go and read books and articles on Scrum you will find stated several times that XP is good and Scrum is good, if you understand how and when to use it. Your posts on the topic are for me just a clear sign that that kind of understanding is not widespread yet.

    ReplyDelete