Cleaning out the Keyboard
From job to job, I travel with my own keyboard. It‘s a happy, little thing, but, hands down, the best keyboard I’ve ever owned. I own two–a PS/2 model and a USB model. The USB model gets more use these days, but I have a PS/2 to USB dongle that, when hooked up with a PS/2 mouse as well, saves me a USB port1.
Typing on it is a bit noisy, but it is not a buckling spring keyboard, like the trusty IBM Model M. I find it to be the perfect mix of tactile response and noise level. The noise is soothing to me–having this constant in my work environment is comforting.
It‘s very disruptive for a programmer to start a new job. No two code bases look the same.2 By ”same,“ I mean a few things. For one, styles are different. Some people might use an IDE, which might handles TABs better. Some (smart) people just prefer spaces to TABs. Others might build modules and packages with convention X–or convention Y.
Where do utility functions go? There might be a junk drawer over here, as well as over here–depends on what it relates to, or who wrote it, or when it was written. Why is that function written so sloppily? Why does this use selection sort instead of merge sort? A new programmer coming on to a project, in a new (to them) code base, needs to learn all of the product’s kludges, debt and inefficiencies.3
To make matters worse though, the new developer, though perfectly capable of doing so, can‘t just start ”fixing“ things4, that are perceived by them to be broken, or kludgy. That’d be a horrible move. So they deal with it, and eventually learn to tolerate it, but they might mark up the code with // TODO: this should not declare 70 local variables, with names starting with
topicList. hoping that they‘ll eventually get back to it and fix it–which may or may not actually happen.
I’m starting a new job soon, but this time things will be different. There isn‘t a lot of code to inherit. There isn’t enough code for there to be major debt. There isn‘t a crystal clear vision as to what’s actually being built. No, what there is though, is excitement. That new company smell where anything and everything is possible with a bit of elbow grease. Where ideas are flowing, and product people are frolicking in meadows, dreaming up the impossible. It‘s my job to execute. I’m the executor, and execute it I will.
But first, I‘ve got to go clean out my keyboard.
—2012-01-15