Scrum: Where Did We Go Wrong? 0

Posted by ferrisoxide
on Sunday, April 12

Dear Reader

I’ve been thinking about where to go with Scrum for a while now. As you may have picked up from my previous post, I’m not entirely happy with how we are using Scrum where I work – though instrumenting the process with elements of CoCoMo is probably a bit too much of the old ‘pendulum swinging the other way’.

I’ve been watching Robert ‘Uncle Bob’ Martin’s presentation at the Chicago ALT.NET group: XP: After 10 years, why are we still talking about it?. It’s long – just shy of an hour if you don’t count the Q&A session – but worth the watch if you have the time. If you don’t I’ll try to catch the salient points for you:

  1. for many practitioners ‘agile’ means ‘Scrum’
  2. Scrum is a nearly perfect subset of XP
  3. Scrum has been successful in helping agile penetrate businesses
  4. Scrum made itself palatable to business by removing all the ‘nerdy’ technical stuff from XP
  5. the nerdy stuff is actually important and many scrum teams eventually run aground

The ‘nerdy stuff’ is the set of XP practices that Scrum removes in order to become more of a ‘template’ process. Bob’s contention is that by focussing on just delivery of features – and forgetting about the essential craftsmanship of coding – a team slowly builds up architectural crud that ultimately slows them down and makes the team less productive over time.

It’s not hard to prove the efficacy of both Scrum and XP. Google and you’ll find plenty of case studies to proving that either work, at least in the transition from waterfall or ad hoc development. I can’t find anything though on the long-term productivity of teams practicing agile methodologies though, so I’ll have to say – and you can take this as anecdotal evidence – that Bob Green’s presentation resonates.

One of the things I’ve tried to add to our process is the notion of a Technical Backlog – an alternative ‘bucket’ of issues that is meant to be considered at the start of each sprint along with the contents of the Feature Backlog for inclusion in the upcoming iteration. This was intended as a means of dealing with the technical debt that accumulated from focussing too long on just features, but practically speaking never happens because the Feature Backlog gets more weighting than anything else.

The consequence of this is that we have a crufty architecture that becomes increasingly hard to add new features to. Again, Bob’s right on the money here. My inclination is to dig my heels in and refuse to add any more features to the application without addressing technical issues first. Likewise, I feel like treating any bug as an architectural problem and work towards fixing the underlying structure of the application so the same sort of problem can’t surface again.

Bob Martin uses a Boy Scouts saying to model the attitude we should be having to our coding: “Leave the campsite cleaner than how you found it”. I dig this – it makes me think about the craft, about how to treat the coders who will come in after us. It also makes me think about the issue of respect: for ourselves, our code and ultimately our customers.

I find I’m thinking about XP again.. after many years of not thinking about it – having “outgrown it”. It’s quite refreshing – expect more blogs along this line.