It’s Your Head Not Your Butt That Matters

by Justin Ball on October 13th, 2008

I've been writing code all day, again. Luckily I enjoy writing software. There are moments when I and the computer don't get along. On those days I consider becoming a garbage man or maybe a bulldozer driver.

Just keep me off the bull dozer on the days I don't agree with my code.

Anyway I've observed some interesting situations over the years. When I worked at Sorenson Vision the guys that worked 8am-7pm made fun of the 'long haired hippie' types that we hired from Apple. They didn't start work until 10am. How ridiculous.

I was young and stupid then. I am old and stupid now, but I have realized that when you write software the most important thing you can do is to (cliche alert) have your head in the game. Unfortunately, for my poor wife she has observed this in action.

There are only a few moments when I am not writing code. For some reason I write the best code on Sunday mornings in the shower. The trick is keeping it in my head until Monday morning. I write awesome code at 2am. At least I think I do. I frequently fall asleep drooling at the keyboard and I don't remember much after that. Thank goodness for testing.

The best code tends to come in spurts. There are a few times when I have built entire applications in a few days. Those are very expensive days that incur a very high social cost. My wife doesn't usually talk to me for a while after that type of event so I try not to do that much anymore.

I have observed a couple of interesting trends. Non technical types who lead software types I think fear the software they are creating. The relationship is something like the United States government and the Manhattan project. They new they were going to get something amazing. They also knew that it would cost an insane amount of money and that it could kill us all.

Most software does tend to cost a lot of money and instead of annihilating the human race a poorly executed project can annihilate the company and in fact has done so many times. Microsoft (Windows ME, Vista) stands as one of the few companies that can execute poorly and survive.

The result is a desire to micro manage the mind. oDesk wasn't the first company to micromanage engineers, but their process was so disturbing as to border on voyeuristic. It goes like this. Developer signs up. Business guy pays developer. Developer gets paid, but business guy can look at developer guy via a web cam and observe his desktop. Good thing most of us geek types aren't that attractive lest sexual harassment become the new globalization.

Today I saw an ad from a company in India. $4,000 a month gets you a developer in any number of languages. Just like you can lease a car you can lease a programmer.

Or can you?

The most I can hope for when I hire someone like a widget is that I get a widget with a butt in front of a keyboard. The poor sucker will sit there all day. He/She might even type and if you give them a procedure list of things to do they can turn it into code. If they are good they might throw in a bit of creativity and even offer some suggestions. At the end of the day they will go home, go to the bar, play xbox, or watch tv, but they will not think about you or your project until the next day when they have to stare at the screen all day and wonder if you are peeping in at them from a distance.

Ever wonder why open source projects can catch up to commercial one so fast? Ever wonder why there are a few programmers who seem to excel. Wonder why they are more productive than entire teams of developers? Wonder how how couple of guys can produce something in a few months that teams of developers fail at over several years?

The secret is that the productive developers itch. They can't wait until they can sit at the computer again. The code is always there being written and redesigned in their mind. I heard that Frank Lloyd Wright hadn't drawn a single design on paper for Falling Water until the client, Edgar Kaufmann, called and said he was on his way. He drew the entire thing in less than an hour. His head was devoted to the project no matter where his butt wandered.

The guys who are the best at what they do can't stop scratching. They crave the code. Their head is always spinning in a mess of design and implementation no matter where their butts might be headed. Sitting in front of a computer is merely an opportunity to write down what has been in their heads for weeks.

If you want to be a good programmer put your head in the game. If you love what you do you will work hard. The harder you work the better you will become and the more you will love what you do. Software practices and methodologies will come and go but they are merely a tool for success and sometimes a cover for failure.

The head is a fountain of knowledge and wisdom. You know what comes from your butt. Guess where your code should be coming from.

  • Brandon
    When I read the title, I thought Justin was angling for a new chair (again) in a roundabout sort of way. Or this had something to do with cycling...so disappointed. :P
  • Interesting article that is somewhat related:
    http://blogs.zdnet.com/BTL/?p=10336
  • Good question. Sometimes I don't think you can convince people. They are stuck in the old way of doing things. Once upon a time humans had to work set hours. My grandfather helped start the company that makes Idahoan Potatoes (potato flakes etc). The machines cost so much money to start and stop that they dictated when employees had to be there. Showing up right on time in that situation was very important. Unfortunately, many managers still think in terms of the factory. Today sitting at the computer when your brain is turned on is what matters. I'd rather have a guy in front of a computer for 4 hours who is engaged than a warm body in a seat for 8.

    The way that you show you can do this is by providing a portfolio of accomplishments. We still use resumes but they provide very little insight into a person's true ability. It is pretty easy to exaggerate your abilities when you reduce your life to a couple of sheets of paper. With the internet it is possible to learn a great deal about a person. I would rather submit my blog than a resume. It shows exactly what I am capable of and how I think.

    When you talk to the hiring manager take charge of the interview. Treat it like any good sales pitch. Show screen shots, websites, open source projects - whatever you have done. The trick is that you have to really be able to deliver. If you can give your employer, customer, boss, etc what they want then I think you earn freedom. Over time perhaps we can change mindsets and help people realize that it is what you deliver that matters not how long or where you sit.
  • Thom Parkin
    Excellent piece. I agree and suffer many of the struggles you described. How can you convince a "hiring manager" (ie someone who does not write code) that you possess this intangible 'work ethic'?
blog comments powered by Disqus