Affirmation of a programmer

Thoughts on a friend who played programmer with me for a day
Oct 06, 2009

Yesterday, a friend of mine came to the Thumble Monks office. His name is Kurt. His mission was to be a programmer for the day. This is an odd event because Kurt has no computer background. He only just recently received his BA with a major in music. So why is he coming in to play make believe programmer?

Turns out, the job market sucks. And it’s especially sucking for new graduates. It’s an employers market at the moment. This doesn’t mean Kurt suddenly wants to be a programmer. He doesn’t. Instead, what Kurt is doing is trying something new every day in the hopes that he has fun, takes his mind of the shit, and perhaps even attracts some attention. After all, Kurt’s not a dumby. He’s a really smart dude. Right now, however, there’s a global warming of unemployment. The ocean of employables is rising. And with so many different size fish out there, how can Kurt stand out?

It really made me think.

The first and really only introspective thing I thunk was “why am I so fucking whiney?” Seriously! How can I be so fucking whiney? I’ve got a good job. I’ve had a good job for 12+ years. I’ve had a terrific boss or two for that entire time. I’ve been able to work with good people. I’ve been able to grow personally and professionally. I’ve been able to get raises. I’m able to work on my own side projects and have hobbies (which means I’m pretty stable). I’m now working out of my own office which is 3 miles from home for a small start-up that I’ve helped get off the ground because it’s what I wanted to do.

Really, why am I whining when there are lots of people like Kurt out there who want some of that, but aren’t being given a chance?

I don’t know. But, my perspective has changed.

But I digress

The second thing I thunk bubbled up after Kurt left. The thing I thunk was “that was pretty impressive”. Though Kurt summed up his day pretty well on his own, my summary of the day is this:

  • ability to ask questions
  • ability to see the tree and the forest
  • ability to question the status quo

These are not obvious things, especially for someone completely foreign to the environment and the practices. But, Kurt jumped right in by asking a boat load of questions about everything: how the company was organized, how do we run things, yada yada yada. Into the daily stand he noticed some typos on a page we had all been staring at for a day.

At one point Kurt questioned - and I’m paraphrasing - why we had to jump through so many hoops to program something that seems so obvious and has been done for 100s of years. The scenario being: we have a pretty long list of HTML checkboxes whose labels were sorted alphabetically (20 or so). We were distributing these across 2 columns, but were doing it left-to-right, which is a simple exercise. Instead, we were asked to display these in vertical columns distributed evenly. Not such an easy exercise. But to Kurt, it should have been. After all, we’ve been doing this same thing with newspapers, books, periodicals, etc. for centuries; displaying content across multiple columns. Geez!

It never really occurred to me to question this as I had already accepted the fact that code needed to be written. It impressed me that Kurt didn’t hesitate to point out the ridiculousness of this fact.

I have to say, though, that the thing that really struck me was that Kurt was able to help me code without having knowledge of the language itself or even how to assemble software in general. When stuck, Kurt was able to ask questions that helped to simplify or crystalize decisions for me, with phrases like: “why don’t you just …” and “why do yo need to …”. This was quite an affirmation for me. While it is certainly true that Kurt is an intelligent person, it is also true that I had to explain or talk through what I was doing more. This in turn helped Kurt to ask questions and us to get to a meaningful decision efficiently.

The affirmation came by way of recognizing just how effective pair programming is and why we should be doing it more often than we pretend we are. It’s just sort of obvious that open dialogue is a necessity for anything. When we have open dialogue we are able to adjust our beliefs and alter our trainings. With open dialogue, everyone can be a critic and you must learn to trust. With open dialogue comes feedback from all walks of life.

We should also not limit our discussions to those who are just like us. We all know this, but how often do we practice it? If you’re a liberal, how often do you go to a republican and simply have an open discussion of the issues? I don’t … ever. I either make a joke, avoid the discussion outright (probably for lack of knowledge, but more for lack of want to appear ilinformed), or I get defensive. I could actually have an open discussion, but it has to start with me.

I’m not really certain what any of this means. I guess it could mean that if you’re at work and you can’t find a programmer to pair with then grab the office manager, grab the overworked accountant, grab the HR person who’s not doing anything anyways. Just grab someone and see if it makes a difference.

It could also mean other things and for those, I’m open to discussion.