September 27, 2006

...Learn TDD with Codemanship

Steve McConnell On The 3 Golden Rules

A while back I devised a problem to help me explore the idea of ultra-lightweight methods. It's a thought experiment, and it goes something like this:

You are walking along a sandy beach. It is deserted. You spot what looks like a book sticking out of the sand. It is Principles of Software Engineering Management by Tom Gilb. It is dusty. You rub the cover of the book and, in a puff of smoke, a genie appears. He has a friendly face and a white beard, and appears to be standing in front of some kind of lake.

The genie speaks:

"I am the genie of the lamp and I grant you three wishes. Ask of me any three rules, and I will guarantee that from this day forth every single person in your organisation will follow these rules to the letter.

But beware! Beyond these three golden rules you will have absolutely no control at all. Your developers will be able to do whatever they like. You must choose wisely."

What would your 3 golden rules be? Is it possible to provide adequate governance with just three rules?

I asked consultant and author of best-selling books like Code Complete and Rapid Development Steve McConnell what would be his 3 golden rules, and I thought you might find his response as interesting as I did:

This is an interesting thought experiment, but ultimately I don't think I can come up with a satisfactory answer. I'm reminded of Tom DeMarco's essay in which he rails against the common question, "If there was one thing we needed to change, what would it be?" Tom makes the point that software development is too complicated for such simple homilies. I'm inclined to think the question is similar to asking a brain surgeon, "If you could train brain surgeons by giving them 3 golden rules and then turn them loose, what would those rules be?" People might think brain surgery is more complicated than software development, but software projects last much longer and involve far more people, so I don't think it's an unfair comparison.

What strikes me in particular about Steve's take on this is his allusion to complexity. I'm also drawn to the notion that education might be a more important factor than governance in complex endevours. A brain surgeon needs years of training. No system of control can replace that. I maintain that when developers aren't delivering, what they need is more training, not more management.

Food for thought indeed.

PS. I thoroughly recommend taking a look at Steve's new book, Software Estimation: Demystifying the Black Art.
Posted 14 years, 10 months ago on September 27, 2006