Posts Tagged ‘Einstein’

The Baby and the Bathwater

Tuesday, June 1st, 2010

Every now and then people get so fed up with software failure they reckon it must be a systemic problem and they throw the collective knowledge in the bin and start again. This is the hunt for the silver bullet. The magic weapon to slay the vampire. This happened with use cases when user stories came along. It’s a shame. It’s lucky that use cases got stuck in the U-bend, and somebody used the plunger to suck them back up again.

The problem is not, and never has been, with developers being unable to cut code. Programmers do a good job with what they are given. It just happens that what they are given (the software requirements – user stories, whatever…) aren’t very good. Programmers don’t bother going back to the business and asking for something better, because they don’t get it, so they become resigned and get on with doing the job as best they can.

Agile delivery works fine. But user stories can be just plain silly. Just because it’s hard to define a good software requirement does not mean you don’t have to do it. If a user story isn’t properly fleshed out, you will find yourself trying to get to the details in programming time, not in investigation time – and that is wasteful and very expensive. It is going to lead to a lot of frustration.

‘Make things as simple as possible, but no simpler’. I wish I’d said that, but I’m just quoting it. (Apparently it wasn’t Einstein.) User stories with no structure, user stories that have no sense of wider context, are just too simple to be relied upon in anger. Hey, it’s not the delivery team that’s broken, it’s the requirements team. It always has been, and it still is.

User stories are a technique that in the hands of a good analyst are going to give the business a nice warm feeling that they are participating in the process. That’s a good thing. That’s a great thing. But you still need the analyst. This is not a process that can be de-skilled. It just can’t.

As Alistair Cockburn puts it “it’s much easier to write user story tags on index cards [then apply use cases] and let the project blow up later.” Agile project fail all the time. Practitioners claim failure is a kind of success. No, failure is failure. There’s no silver bullet, that’s true, there’s a whole box of silver bullets, and they only work when they are applied in a coordinated manner. Read: http://alistair.cockburn.us/Why+I+still+use+use+cases