“RTBQ! RTBQ!”. This is the phrase that my high school friends shouted at me when I asked them to remind me of the phrase they remember from school. Mr Fletcher was a larger than life maths teacher and “read the blinking’ question” wasn’t the only phrase he said.
He had a whole raft of these phrases, including “log off, and bog off”, being one of the more memorable ones. For me though, he was also the source of the phrase “keep it simple, stupid”. Not just because it was somewhat amusing, but because it was actually useful advice too. This is a phrase that has always served me well when faced with any problem, especially with engineering problems. If it’s complicated then I’m thinking “why does it have to be this complicated”.
It’s always tempting to abstract everything away to the nth degree, optimise code or generally over-engineer a solution. If you don’t need it, don’t do it. Do the simplest thing that could possibly work. The best code, is no code at all, because you won’t need to maintain it.
This isn’t exclusive to computation though, you can apply this in everyday life.
Let’s say you need to remove a padlock to gain entry attached to a gate, you can pick a lock, use a hammer or a hacksaw. You might think picking the lock is the simplest, however it’s a specialist skill that you need to learn or otherwise acquire. A hammer might seem simplistic, but then you might end up damaging more than just the lock, brute force isn’t all the simplest. Though it’s pure repetitive effort, the hacksaw is the simplest and most effective solution for this problem.
Sure, a hacksaw isn’t as elegant as picking a lock nor as impressive as smashing a lock with a hammer, but it’s simple enough that with enough effort you can achieve the desired result.
Another way to put it is “more things should not be used than are necessary”, essentially Occam’s razor.
Ross Snyder, a senior software engineer at Etsy said, “if you’re doing something ‘clever,” you’re probably doing it wrong”.
Complexity is your enemy. Any fool can make something complicated. It is hard to make something simple http://t.co/QqrBEphH— Richard Branson (@richardbranson) September 3, 2012
I think it’s worth remembering that nobody ever asked for a more complex product, so keep it simple, stupid!