Teach People to do the Good Thing

Image: The Attic Door

My apartment comes with an attic room. While the small, cold room three floors above me is all mine, the hall that connects to it is shared with the other inhabitants of the building. They too have their own attic rooms to get to.

The attic room is locked with a key only I have, and the attic hall is locked with a key we all share.

The other day, when I was putting some stuff in my small, cold room, the door to the hall was open and unlocked. As I walked out and down, I left it that way. I hadn’t unlocked the door. I wasn’t sure whether it was supposed to be locked or not, so I left it as it was.

The more I thought about this, the more I realized that it probably had to be locked. Most of the other times I had been to the attic the door had been locked. If it wasn’t supposed to be locked, why would there be a lock at all?

Apartment buildings like the one I live in are prone to passive-aggressive notes, but nobody had been bothered enough by the wrongly unlocked door to leave a note instructing other residents.

I did the ignorant thing, the safe thing. I continued doing what I saw others had done. I didn’t improve, because I was scared of breaking something, or just plain confused.

The Ignorant Thing in Software Development #

Okay, back to the real world.

What good is this analogy, the attic door?

I realized that there were three types of actions one could take:

People will always be lazy. There will always be a reason (time pressure, more important things to do, “I’ll come back later”, etc.) to make a sub-par effort. No matter how much discipline a team has, someone will do the lazy thing. And that’s not the end of the world (it’s just an attic door!).

Issues arise when you have a team (say, of software developers) who consistently do the ignorant thing. They might not have had the required training, or they might not know who to ask to learn. They see something and they repeat it — they don’t want to mess up anything, and “if someone’s already using switch statements in the code, then that’s probably the way they would want me to go about it”.

The Good Thing is done by those with discipline, competence, and confidence.

You make your team do The Good Thing by educating them.

If you have a team of well-qualified employees generally doing The Good Thing, then it’s okay if they’re lazy once in a while: the problem will be solved, the broken pieces swept up, the attic door locked again, by someone doing Good.

Get updates on new blog posts by signing up to my mailing list.


Now read this

Web apps: validate, delegate, respond

Web apps should be a thin, easily replacable front to your business logic. It should be modular and composable. I have written about this before. But how do you — in practice — decouple the business logic from the web frontend? I like to... Continue →