Stephen Freeman Rotating Header Image

Do do XP

In this post, Tobias Mayer argues against doing Extreme Programming (XP). I have a lot of time for Tobias, but I think he’s wrong on this one. I don’t know who he’s been talking to, but some of this is “strawman” argument, and I’d be more likely to be convinced if Tobias had tried XP just the once. XP is not a universal solution, but it is one possible choice and we know how to make it work.

As an occasional XP advocate, I don’t “blame Scrum for the lack of good development practices in the software industry”, I blame the software industry. If we worked in an effective industry, we wouldn’t be having methodology wars because things would just work. Now this same industry is messing up Scrum too by just taking on its ceremonial aspects. On the other hand, to blame XP for blocking good practice is just bizarre.

XP is a tiny movement that attracted some attention. What XP (version 1) did achieve was to show that it is possible to break through the logjam of cautious procrastination that still cripples many development teams, but without resorting to hackery. It gave teams a reliable package of practices that just worked. Of course XP didn’t take over the world because it’s not suitable for everyone–not least because it requires a degree of focus and skill that is not appropriate for many teams. Kent Beck’s presentation of XP version 1 was extreme on purpose: it was designed to inspire us huddled masses, and to stretch the boundaries of what was considered possible in software development, to reframe the discussion.

I think Tobias has forgotten just how far we’ve come in the last decade. That we have a craft movement at all is because XP put the actual writing of code back into the centre of the discussion–just look at who’s involved, it’s the same people. He also forgets just how counter-intuitive many of the XP practices are, especially compared to the direction the industry was moving at the time.

Tobias writes that the good development practices were spreading slowly at the time, but I’d argue that without XP we’d still be waiting. Test-Driven Development is still not that widely accepted and even the original C3 team didn’t adopt it fully until Kent was writing his book. Refactoring had a small academic following, but it’s not very safe without the compensating practice of TDD. I suspect most teams still ban changing code unless it’s to change a feature. Pair programming is still a very hard sell and, again, works much better in the context of TDD. I’ve seen enough Scrum teams that have not found a coherent set of technical practices. To say that they just need to improve their Scrum implementation begs the question of how Scrum is adopted and the limits of self-organisation.

Some final nit-picks. There are two editions of the XP book, the second is more recent than 12 years and has a “softer” approach to the methodology. As for the relevancy of the practices, the C3 project worked in an environment (Smalltalk/Gemstone) that still outclasses what most of us use today. Much of the work in the XP community has been to try to recreate that flexibility in inadequate current technical environments. What’s really scary is how slowly this industry moves.

7 Comments

  1. […] This post was mentioned on Twitter by Marc Evers. Marc Evers said: RT @johanneslink: "do do xp" http://bit.ly/4nRgJi […]

  2. Tobias Mayer says:

    Steve, there is a bit of a misunderstanding. When I said I haven’t “done XP” I was using the reference from my previous blog of “Doing Scrum” being meaningless.

    I have certainly used all the practices of XP, and I like them. There is nothing about the values and practices of XP that I dislike. I have also found that indeed they lead to better code, better value and a happier work environment. What I don’t like is the idea that Scrum or other Agile coaches have to tell teams to “do XP”. It is counterproductive. As you so rightly point out most software companies are so far from having quality code that throwing XP at them will be meaningless.

    Yes, the software craftsmanship movement grew out of XP, and perhaps this outgrowing is telling us that the focus should now simply be on good craftsmanship within an empowered environment. You (and others) may use the term XP as a short way of saying that, but it is not always (and perhaps rarely) useful. Focus on the practices, not the methodology. That was the message of my blog post. I knew it would offend people, but offense was not my primary goal 🙂

    Anyway, good post and thanks for writing a counter-argument to mine.

  3. […] Bob’s response. Tobias writing a blog post to stop doing XP. vs Steve reaction’s to keep doing XP (Read Tobias answer in the comments to understand the whole discussion) I could add a […]

  4. I agree with Steve here. I get the feeling that Tobias got carried away by the blog rule of being provocative in order to get readers. XP has done a tremendous service for the software community. As with patterns one often forgotten value with XP is that it put names on things that existed earlier but were often mixed up.

  5. Tobias Mayer says:

    @Niklas
    > I get the feeling that Tobias got carried away by the blog rule of being provocative in order to get readers
    That may be true, but nevertheless I do believe that selling XP to clients is more counter-productive than productive. I agree that XP “has done a tremendous service for the software community” and I also think it is time to move past the prescriptive nature of XP, and focus on how to guide people to good practice. If, as everyone in the XP community seems to saying, people are not finding good practice for themselves, I can only conclude that we do a lousy job of coaching and mentoring.

    If we guide well, they may find XP and take it on wholeheartedly, or they may find or invent additional practices. In either case the empowerment that will bring is worth the wait.

  6. […] October 12, 2009 · 36 Comments Steve Freeman offers a counter-argument on his blog entitled Do do Scrum. […]

  7. […] Bob’s response  Tobias writing a blog post to stop doing XP.  vs Steve reaction’s to keep doing XP  (Read Tobias answer in the comments to understand the whole discussion)  I could add a […]

Leave a Reply

Your email address will not be published. Required fields are marked *