May we suggest...


Why Full-time Programming is a Part-Time Job

The internet is not lacking tales of all-night coding sessions. Or non-stop, no-time-for-weekends crunch periods at critical and not-so-critical times. So, it would seems to be the case that it is possible to program constantly, only taking breaks for as long as it takes to answer a call of nature or maybe scarf down a pizza.

Which is really strange to me.

I feel like I have never been as productive as I have been since starting at Buffer. And yet, I have never spent as much time away from my computer as I have during my time here.

Weird, eh?

How a crunch begins

It all starts with a deadline. Maybe the latest release of the brand new Frozzle library needs to be out by the end of the quarter for various contractual/accountancy reasons. So there is a gaping chasm ahead.

And gaping chasms are very noticeable. Everyone talks about them. Everyone can see them. And as they draw inexorably closer, everyone gets more and more aware of them. Eventually, there is nothing else to see, and panic sets in and people start to do anything to avoid the long drop into that abyss.

So, if you’re on the coding team for the Frozzle library, you know that there is a deadline. People likely won’t stop talking about it. Most conversations begin to take the form of “How long will that take?” whenever some new task arises. Paranoia is everywhere—no one wants to be responsible for the straw that breaks the camel’s back. No one wants to take the step that ultimately makes the encroaching crevasse unavoidable.

At first, tasks can be framed in weeks, which start out as 5 working days but soon become 6 or even 7. Then, because the week is just about full, the concept of a working day becomes a little bit more “agile.” Sure, 8 hours a day is a solid regular amount of work, but this is a special case, so if we could work for 16 hours, it’s like we suddenly have twice as much time before the chasm engulfs us! Great thinking.

Now the mindset has become such that if you’re not working, you’re not helping. And if you’re not helping, you must be hindering. So, back to the desk you go – implement this, fix that, break the other, fix that again, break something else, add some special case code for the time being here. It looks like you are being really busy. And you are busy, but you’re not really being productive. Unfortunately, inertia sets in quickly, and there is no way to get out of it. Everyone else is doing it after all – and that deadline is fast approaching.

Time to reflect

I work from home. Which is to say,  don’t have an office to go to. What I do have are a lot of pubs, most of which are pretty quiet during the day. And I have evolved a routine that gets me out of the house, gets me fresh air, keeps me productive and goes some way to keeping me active.

The magic ingredient – changing where I work every ninety minutes or so.

It’s that simple. Every 90 minutes, I finish whatever delicious beverage I have been imbibing, pack up my stuff and stroll sedately to my next port of call. I’m lucky that I live in a small city which has no lack of pubs all within walking distance of each other, so my strolls are usually no more than 15 minutes at most.

But those 15 minutes are worth their weight in gold. Which makes no sense, but I don’t care – because I get a solid 15 minutes where I am not bashing my head against a wall because some function won’t work the way I expect it to. 15 minutes where I am not struggling to figure out why the production environment is behaving differently to the test environment. 15 minutes where I can’t actually do anything except think.

The importance of not being able to do anything

The beauty of my stroll is that I can’t think up a half-baked idea and immediately grab a keyboard to see how this new hare-brained scheme works. I don’t start tweaking one thing and then another and then another all in the vague desperate hope that it will somehow sort itself out in the end.

Instead I am liberated from the keyboard. Free to think things through. Free to take that step back and re-evaluate. Free to realise that there is a better way to do things.

Free, in fact, to be more productive.

Bashing away at a keyboard feels productive – lots of characters appear on the screen, so it even looks productive. But unless the idea behind the characters have been thought through, it probably isn’t very productive. At the very least, it isn’t efficient.

Thinking, on the other hand, doesn’t look productive. Most of the time it doesn’t even feel productive. Until that inspiration hits you. And then you feel energised, having a solid plan to implement. Something that will work and can be implemented as a complete piece of work rather than as a stack of bodges each trying to fix whatever the most recent broke.

Part-time programming

That’s why programming should be a part-time job. Part of the time should be spent thinking, and part of the time programming.

Try it—get out of your seat once an hour or so, take a quick stroll, do something completely different. Clean a whiteboard. Put out some rubbish. Do some laundry. Make a coffee. Anything to get away from that keyboard. The keyboard is the problem—it entices you into believing you are productive, where the reality is that the keyboard is stealing your productivity by preventing your mind from working at its full potential.

Give your fingers a break, and let your mind take over once in a while. You will feel the benefit. I know I do.

Interested in thinking more, working smart and helping Buffer grow? We’re hiring!

This post originally appeared on my personal blog. Follow me there for more adventures in web development.

  • Though I’m not a programmer, I agree 100%. I’ve taken a habit myself to work from a location (local coffee shop) in the morning then another in the afternoon (office), while taking frequent breaks to step outside of my work. I feel it has boosted my productivity and I actually have more time to do other things (like having something that resembles a “life”, whatever that is).

    • Sounds perfect Chris! It’s all too easy to just sit there all day, and I know I can be guilty of it too :) Getting into the habit of moving about and moving location is a great way of making the transitions more natural.

  • lelapin

    My job is only remotely related to programming but I believe there are, here and there, in this post elements I should be able to implement, at least I should give a go.

    • Sounds great! I’d love to hear how that works for you. It’s definitely a breath of fresh air (literally and metaphorically) to step away from the keyboard from time to time.

  • stefanosala

    Or take a dog ;) you will have to walk him and in these walks great ideas come to mind!

    • That’s a great idea. I’m more of a cat person however, and Mr Perkins isn’t too keen on walks at the best of times, let alone when I decide! :)

      • geektinker

        Instead, take 15 minutes and play with your cat away from the computer. Toss a paper bag out or a box out, tease him with a laser pointer, or just give them some attention. Many great writers and thinkers owned cats. I suspect it was for this very reason. I’m not afraid to admit that some of my biggest breakthroughs have hit me while scooping cat litter. ;)

  • Agnes Dadura

    Love that t-shirt :)

  • dh

    i like it! glad I’m not drinking anymore! another good technique- is (Pomodoros)

  • Huggy Bear

    I get my best ideas walking at a local park, especially if I watch the kids play soccer. I have finally learned when feeling pressure the best thing to do is walk away for a little bit.

  • Luan Nguyen

    Would love to work for a company like yours, but don’t have enough experience though :)
    Hope to join one day!

  • Carlos Torrenegra

    Spot on. Just the way it is.. The best ideas come when thinking away from the keyboard.

  • Noxyx

    It would be nice if programming jobs were part-time to begin with, then we’d have all that thinking time between work, instead of investing what little time is left after work into commuting, bathing, buying groceries, doing laundry, sweeping floors, cutting grass, making dinner, doing the dishes, walking the dog, sleeping, etc., and even more hassle if I had kids. My productivity at work is reduced by O(log n) for every consecutive hour I spend at my desk, such that the last 4 hours tend to end up accomplishing less than the first 1. I could probably get just as much work done at half-time as I do at full-time if I could have little breaks like this throughout the day to boost my mental spirits. Certainly, when I’m working on personal projects during time off, I get most of it done in 4-hour bursts before I lose focus and realize I’m getting sloppy and stop for a while. Unfortunately, most software companies aren’t run by programmers, and thus the upper management who decides these things still have archaic ideas on productivity and mistakenly believe that productivity lost to the overhead of larger teams is more than that lost from tired workers writing bugs for the last 4 hours of every day, and they won’t offer half-time positions.

  • twhite6878

    Would love to work for you guys but I’m still a newbie and an older comp sci student. So maybe one day. :-)

  • Margaret Leber

    Hey, I have one of those THINK signs. A classic…

80,000+ social media marketers trust Buffer

See all case studies