I’ve been thinking a little bit about the usual, and understandable, reaction from the average developer when they learn that there’s a problem with their code.

That it’s a bad thing.

Here’s the thing: developing is hard. There’s so many moving parts that I would be concerned if there wasn’t a problem in the software, somewhere.

Two mantras that I’m fond of, of which I’m unsure of the genesis, spring to mind:

  • Nothing in the world is perfect. If something is completely without fault, it could be said that its fault is that too much time and energy was spent in creating it

  • If the code base to a piece of software is without fault, that’s because it does nothing interesting

The magic isn’t in getting it right the first time, or even the second or the third time: it’s in working as a team to make the best you can, given the constraints.