Coding Horror

programming and human factors

Always. Be. Shipping.

I believe there's a healthy balance all programmers need to establish, somewhere between...

  1. Locking yourself away in a private office and having an intimate dialog with a compiler about your program.
  2. Getting out in public and having an open dialog with other human beings about your program.

I've talked about this a few times already, so I won't belabor the point.

Most programmers are introverts, so they don't usually need any encouragement to run off and spend time alone with their computer. They do it naturally. Left to their own devices, that's all they'd ever do. I don't blame them; computers are a lot more rational than people. That's what attracts most of us to the field. But it is possible to go too far in the other direction, too. It's much rarer, because it bucks the natural introversion of most software developers, but it does happen. Take me, for example. Sometimes I worry that I spend more time talking about programming than actually programming.

At the point when I spend all my time talking about programming, and very little of my time programming, my worst fear has been realized: I've become a pundit. The last thing the world needs is more pundits. Pundits only add ephemeral commentary to the world instead of anything concrete and real. They don't materially participate in the construction of any lasting artifacts; instead, they passively observe other people's work and offer a neverending babbling brook of opinions, criticism, and witty turns of phrase. It's pathetic.

Perhaps that's why I find this blog entry from SEO Black Hat so inspiring:

Do it F***ing Now.

Don't wait. Don't procrastinate. The winners in this world are not the ones who find the greatest excuses to put off doing what they know will make them more money. The winners are the ones that prioritize and seize the day.

Create a list of action items to make sure your important tasks get accomplished. Every project you're working on should be in action. If you're not moving, you're standing still. Your next step towards making money must not be "something I'll take care of maybe sometime next week." If it's going to help make you money: Do it F***ing Now.

Some of you may think that you don't need the "f***ing" in "do it f***ing now". You do. You need that impact, that force, that call to action, that kick in the ass to get you moving. Otherwise, you'll end up another loser that had a great idea a long time ago but never did anything about it. Dreamers don't make money. Doers make money. And doers "Do it F***ing Now."

It's like a stiff jolt of heavily caffeinated coffee. It may be a bit too Glengarry Glen Ross for some.

Alec Baldwin in the movie Glengarry Glen Ross

Specifically this speech, and this scene.

Even if it's intentionally over the top, I think this advice applies to programming, too. The best programmers get off their butts. As Cade Roux noted in a comment, the text on the Glengarry Glen Ross blackboard is "Always Be Closing", but we should read it as …

Always

Be

Shipping

It's helpful to discuss features, but sometimes the value of a feature is inversely proportional to how much it has been discussed. Our job as software developers is to deliver features and solve business problems, not to generate neverending discussion. Ultimately, As Marc Andreessen notes, we will be judged by what we – and our code – have done, not the meta-discussion that went on around it.

For the background part, I like to see what someone has done. Not been involved in, or been part of, or watched happen, or was hanging around when it happened.

I look for something you've done, either in a job or (often better yet) outside of a job. The business you started and ran in high school. The nonprofit you started and ran in college. If you're a programmer: the open source project to which you've made major contributions. Something.

If you can't find anything – if a candidate has just followed the rules their whole lives, showed up for the right classes and the right tests and the right career opportunities without achieving something distinct and notable, relative to their starting point – then they probably aren't driven. And you're not going to change them.

Maybe "Do it f***ing now" is too extreme, but at the very least, make sure you spend at least as much of your time doing as discussing. Unfortunately, I can't tell you what the right things are to do. If I knew that, I'd probably be a millionaire by now. You'll have to decide what's actually worth doing yourself.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror