March 8, 2007

...Learn TDD with Codemanship

Designs End Up Messy With Slob Coders

Things have a tendency to end up the way they are. That may sound like a very odd thing to say, but it's true. You can give an unreformed criminal a bank account and a responsible job, but sooner or later his true nature will reveal itself and he will revert to his criminal ways. You can clean a slob's house from top to bottom until it's sparkly and germ-free, but with him living there, how long before it's a tip again?

Complex, open systems have a remarkable tendency to go back to the way they have always been. We may see the slob in his shiny, clean, lickety-split house and think "oh, what a nice, tidy man". But we're not seeing the true picture. The true picture of what he's really like. And that picture won't reveal itself from a single snapshot that tells us what things are like at one moment in time.

To understand a complex, open system we need a dynamic picture. We need to see the past. We need to see the present. We need to see how the picture evolved so we can appreciate where it may be going.

Underpinning this dynamic picture are some - often startlingly simple - fundamental processes. It's through these simple underlying processes, enacted over and over again, that the dynamic picture evolves.

It's not about how tidy your house is today, it's about how tidy the people living in it will be tomorrow, and the day after, and the day after that

So you may indeed have a tidy, pristine code base today, but if your underlying coding processes are slobbish and slovenly it won't be long before you've got the crappy mess you were always going to end up with. You cannot address design in the medium or long-term without focusing on your underlying design processes and practices. You can clean a slob's house today, but if you don't tackle his slobbish behaviour it'll soon end up like a pig sty again.

As an ex-architect, I know perfectly well that cleaning up after slob coders is no way to earn a living. Now, like Anthea Turner on BBC3, I focus on addressing the underlying behaviour and encouraging developers to keep their code tidy.
Posted 13 years, 9 months ago on March 8, 2007