Programmers: Stop Whining, Be Productive

Programmers: Stop Whining, Be Productive

I’m not attacking Graham; he is merely pointing out the problem and explaining how he responds: by placing managers on the maker’s schedule. But this mentality is held by too many programmers, each of whom strokes his or her ego by running on a special schedule and taking advantage of the night, while the inferior mortals sleep.

Come on people, wake up (seriously, it’s 11 am already). This is not an issue of inability; it is an issue of discipline. I admit that interruptions are hard to recover from, and that a ten hour block is more productive than five two-hour blocks. But wasting an entire afternoon because you have an appointment at 3 is childish. Programmers get into a mode of thinking where they believe that the work they do is somehow more intense and more specialized than that of others. “I’m going to strap myself down and work for twenty hours,” they say, “because this is serious business. You can’t just scoot into your chair and tippy-tap for a few hours. You could really hurt yourself.” Again, bullshit.

I had the pleasure of attending Eric Ries’ presentation on The Lean Startup. Among the huge wealth of insight he had to share, one particular anecdote stuck with me. His company had traced the root of a particular problem to insufficient training procedures for new hires. Upon speaking to a manager about this, the manager explained that he agreed the problem was there but that he had so much to do he couldn’t possibly devote several days to setting up a training program. Ries suggested that the manager take one hour right then to do whatever he would have done for the first hour of establishing the training program. The manager retorted by highlighting the absurdity of this response, but Ries persisted, and off he went. The result of his hour of work was the creation of a new wiki page with a dozen bullet points stating some things that were good to know. This turns out to be reasonably useful, and more importantly, a subsequent hour of work the next week could expand this and get a lot more done.

I know it doesn’t always apply, but it’s commendable and inspiring. At work the next week, I found myself with 2 hours before a lunchtime meeting. I could have putzed around the internet for a couple of hours and saved my productivity to increase momentum in the afternoon, but I didn’t do that. Instead, I set up a quick database table and enabled logins on the website. After lunch I had a few minutes before a phone call, so I enabled logouts on the website. Rinse and repeat, you’ve got a social networking site by supper.

My point here is that anybody can be productive in any amount of time. It’s difficult, sure, and requires discipline. But productivity feels great, and it makes you far more flexible as a worker. It’s comparable to the sensation of waking up early to exercise and realizing how much time you had been wasting by sleeping past lunch. If you haven’t experienced this yet, I highly recommend it as well.

Tags: ,

9 Comments Leave yours

  1. Jason F. #

    PG is framing http://www.structuredprocrastination.com in a different light. The gist of the matter, I’d imagine, is that living on shorter time blocks requires a lot more task decomposition upfront, and most coders thrive on the rush of being in the flow of things, and also feel like they do their best work that way.

  2. Alex #

    Yeah, that does make a lot of sense. I won’t argue that having the day to yourself feels amazing and that a meeting in the middle of it can seriously derail you. However, I still maintain that one should make excuses for oneself as seldom as possible :)

  3. While I will agree the matter may be one of discipline, I would say that the level of discipline required varies greatly between different jobs. I’ve worked both IT management and programming, as well as jobs in many other sectors. I ran a nightclub for two years, spent a summer as a mechanic at a steel mill and was chief sound engineer at a theatre for instance, and my personal experience truly is that a meeting will ruin half a day of programming, something I have not experienced in any other field where I’ve worked.

    Discipline will definately help – but there is something more to it than that.

  4. Ray Racine #

    From your bio, it appears you have actually written applications, not sure how large the application, nor the application difficulty. Maybe you’re just special in the way that family is with the specific gene granting them 4-5 hours sleep a night without measurable effect.

    In 95% of all applicable situations, PG is dead on in his Makers/Managers esssay. Bull-In-The-Eye-Dead-On

    Things come and go in waves, the pendulum never centers, it just swings from one extreme to the other. We are at a current extremum where the software development warm body count is 80% non-doers and only 20% doers.

    I can’t imagine any substantive design and implementation results where the few personages actually doing the design and implementation are working on 2 hours ON, 1-2 hours OFF in silliness, back to 2 hours ON, …

    Interesting to see you self-respond to your blog, oh in about 10 years time.

  5. Alex #

    @Jacob, @Ray,

    Thanks to both of you for your comments. I hear what you’re saying, so let me clarify. I’m not suggesting that programmers should be as productive in a 2 hour chunk as they are in a 10 hour chunk. Distractions are going to be a serious impediment, and this probably affects programmers more than many other professionals. I don’t deny that, and believe PG is bringing a very valid issue to light.

    All I’m saying is that it’s possible to minimize the setbacks, and that there is still some room for productivity in short windows of time. The passage I quoted seemed to suggest an attitude of giving up when a roadblock was in sight. I think we can do better.

  6. In the last 12 years I worked about 8 years on managers’ schedule – because I was forced to – and 4 on programmers’ schedule. My productivity is well over double in the latter case. I think a good manager recognizes this and instead of bullying programmers to get on his own schedule he works his ass off to keep them on their own. The number one reason for establishing my own company was that my managers were unable to understand that I simply can’t work efficiently in 1 hour time slots. They still thought I did a good job, but I didn’t.

    Anyway, thanks for bringing up this topic, it would make a big difference to many to discuss it at work.

  7. right on. important in #leanstartup to have discipline. no excuses.

  8. jroberts #

    Hey @Alex I’m glad I read your reply above– I was as confused as the others about your point. I’ve been able to get small tasks done in small chunks, but for anything that requires not breaking things or security, performance, anything that requires mapping a lot of data into your head, I need uninterrupted time. I’m afraid it’s not as plain as self control– there is a real loss of productivity occurring when one is interrupted after mapping a large amount of data and is forced to re-map all of that.

    Software *is* complex, often times needlessly so. Hacking on some guy’s stuff that spends two hours writing a feature will take the guy who has to do the security ten times longer than if he were to just rewrite it in a quality centric way.

  9. This is such a typical management opinion that it invites parody. While Graham is saying that the arise from poorly organized workplaces, you’re saying it arises from poor people. Fine. I’ll just point out that as a manager, you’re responsible for the management of the workplace. Of *course* you’d want to deflect responsibility for the things you’re on the hook for, and offset that to the people who are supposed to be doing the work and benefiting from the value you bring as a manager. It’s a pretty common pattern among management.

    But it’s still bullshit. Demanding that people who actually produce the product conform to people who don’t actually produce the product is something that Dilbert lampoons on a regular basis. Of course disciplined programmers are more desirable than undisciplined programmers – no question. But the only power you have over the internal focus and determination of a person is whether or not to hire / fire them.

    As a manager, what you DO have control over is the work environment. You can make that one that promotes not just narrow productivity, but also creativity, a good work/life balance, etc. These are all things you can (and should) do and take pride in. Productivity does indeed feel great – which leads to the question of why are people avoiding behavior that makes them feel great? If you think you don’t have something to do with an organization in which people avoid behavior that increases their self-esteem and enjoyment, and that there isn’t a huge block of work cut out for you to address there, I can only conclude that you’re lazy and undisciplined about the role of management.

    In other words, stop whining and do your job! It’s your fault if programmers aren’t productive, ultimately – and whether or not you employ them is only the coarsest form of control you have over that. There’s many other things you can do to improve productivity, but just blaming people rather than examining the conditions in which they work is tantamount to negligence on your part.

2 Trackbacks

Leave a Reply