Divide by Zero

Programming is boring

Programming is boring. It’s mundane, repetitive, and with very little surprise. Or at least that’s the way it should be. There is an exciting aspect to programming, that part where you’re solving a problem, but then this should be wrapped in a big cushion of mundaneness.

Many programmers I’ve worked with have claimed the opposite, they say it’s exciting work. They will jump in to a task equipped with their flavor of the week framework or technique, and say fuck you to the tests, documentation, and actually understanding the environment and problems. I say fuck you to the programmer who does that. There may even be talent in their problem solving abilities, there may be merit to their solutions, but they’re solving the wrong problems, writing solutions that are irrelevant, and refusing to leave any trace of how or why we got to that state.

Programming boils down to: understanding the problem, solving the problem, and making sure your solution is easy to maintain and nurture in the future. To understand the problem is achieved through communication, documenting your intent, and possibly through agile methodologies such as scrum that allow you to pivot quickly if your assumptions are wrong. You solve the problem by, well, solving the problem. You don’t create “possible problems” of the future, you don’t pigeonhole the solution in to some tool you fancy learning and working with; that’s called over-engineering. To allow the solution to be maintained and nurtured you provide documentation, tests, and keep it simple. That’s what being professional means.

Imagine you had a pain in your chest, and you went to your doctor. They immediately suggest they perform triple bypass surgery there and then. Screw writing anything down or discussing your issues with you further! This is exciting! Oh if it goes wrong I’ll just quit because look at my CV, I’m doing triple heart bypasses like crazy!

Thankfully that isn’t how your doctor thinks. They seek to fully understand the problem, then most likely start with a mundane solution unless strong evidence suggests a more drastic measure is necessary. They document everything they’ve done to you so the next doctor can continue where they left off. Note how when you’ve injured yourself or fallen ill, the majority of your time spent with doctors is undergoing tests, x-rays, and having them type a bunch of stuff in to your medical records. Exciting stuff? Definitely not. But it’s been proven to work.

Programming is full of acronyms and initialisms, so here’s a new one: TYKD (pronounced: ticked): Test, YAGNI, KISS, Document. Maybe it’s cheating to have an acronym full of acronyms, maybe it should be called a super-acronym. But anyway. Test your code, you aren’t gonna need it, keep it simple stupid, and document. How boring. But how professional.

Written by Matthew Hotchen on