How to destroy Programmer Productivity

The following image about programmer productivity is making its rounds on the internet:
programmer productivity in a graph
As Homer Simpson might say, it’s funny because it’s true.
I haven’t figured out the secret to being productive yet, largely because I have never been consistently productive. Ever. Joel Spolsky talks about this in one of his blog posts:

Sometimes I just can’t get anything done.
Sure, I come into the office, putter around, check my email every ten seconds, read the web, even do a few brainless tasks like paying the American Express bill. But getting back into the flow of writing code just doesn’t happen.
These bouts of unproductiveness usually last for a day or two. But there have been times in my career as a developer when I went for weeks at a time without being able to get anything done. As they say, I’m not in flow. I’m not in the zone. I’m not anywhere.

I’ve read that blog post about half a dozen times now, and It still shocks me that someone who we see as an icon in the programmer community has a problem getting started.
I’m glad I’m not alone.
I’m not here to share any secret methods to being productive, but I can tell you what has kept me from being productive:

  • Open Floor plans
  • Developers arguing about Django vs. .NET
  • Developers arguing in general
  • A coworker coming up to me and asking, “Hey, did you get that email I sent?”
  • Chewing. Apparently I suffer from Misophonia
  • Not understanding the problem I’m working on
  • Not really believing in the project
  • Not understanding where to start
  • Facing more than one task that needs to be complete BECAUSE THINGS ARE ON FIRE RIGHT NOW
  • Things BEING ON FIRE RIGHT NOW DROP EVERYTHING
  • Twitter Notifications on my Phone
  • Email pop ups
  • Really, any pop-ups
  • IMs
  • My wife asking, “Hey, when you have a minute could you do X?”
  • Long build times
  • Noise
  • Constant parade of people going past my desk
  • MandoFun
  • Wikipedia (Seriously, don’t click on any links)
  • Hacker News
  • The Internet in General

Things that have contributed to making me productive in the past:

  • Quiet atmosphere
  • Quiet workspace (A private office works wonders)
  • Understanding the next step I need to take in a project
  • Knowing the problem space well
  • No interruptions
  • Seriously: No interruptions
  • Staying off Twitter
  • Staying off Hacker News
  • No hardware problems
  • Loving the project I’m working on
  • Short build and debug times
  • Not debating politics on the internet

 
It’s telling that half of the things that keep me from being productive are problems I’ve created; but some of them aren’t. Like Open Office floor plans.
Ultimately, each of us controls what makes us unproductive. I suck at peaceful confrontation. I either come of too strongly, or I sit there and let the other person walk all over me. I’m really not good at it at all. As such, I don’t have any good advice for handling the external forces that contribute to not being productive, but I do know this: Whatever I can control, I should control. That means:

  • Turning off notifications on my iPhone (this has the added benefit of increased battery life)
  • Giving myself a reward for 3 hours of continuous coding (usually in the form of “internet time” like checking Hacker News or twitter)
  • Working from home when I really, really, need to get something done
  • Investing in a good-for-the-price pair of noise canceling headphones
  • Scheduling ‘no meeting’ times on my calendar. These are times shown as busy to everyone else. It’s my work time.
  • Not getting into programmer arguments around the office; people have strong opinions, and the programmers who have arguments love to argue. If there’s an actual business problem that needs to be solved, let’s grab a conference room and come up with the advantages and disadvantages of each approach. Let’s get some data. Let’s not just argue.
  • Position my desk in such a way that passersby aren’t distracting.
  • Taking a first pass at the problem, and *then* asking another developer to walk me through the problem so that I can get a better understanding of what to do. This accomplishes two things: First, it allows me to get the ‘lay of the land’ so that I’ll at least have a basic understanding of the forces at work. Second, it allows me to ask more intelligent questions when I ask for help

What makes you unproductive, and what do you do to combat it?
Discuss this post on Hacker News or Reddit.
Edited on 9 July 2014 for typographical errors.

130 thoughts on “How to destroy Programmer Productivity”

  1. A very good summary. A great book about (anti-)productivity in software-projects is Peopleware by Tom DeMarco and Timothy Lister. It’s a very good book to gift/recommend leaders and decision-makers, but also for your self and your productivity observation.

  2. If only I could have the freedom to follow your solutions. I have just settled with the fact that my employer is ok with me getting distracted all the time by nonsensical work and doing minimal programming work each day.

  3. Good article. I am currently sitting in an open floor plan, in the support department (I do not work with support) with people walking by constantly. Sometimes customers confuse me for support upon which I have to redirect them.
    I do not have the option to reposition my desk, and even if I could I would have constant fear of being attacked if people were passing by behind my back all the time =P
    I find it hard to measure productivity at work (lots of distractions) vs, for example, at home (quiet). I’ve read several places that you can set a timer to go off each 15-30mins and then measure your productivity, but this in itself is a distraction. It would be interesting to have a third party measure this as well as interruptions. A blinded experiment, so that the subject does not know what is being measured.

  4. “What makes you unproductive, and what do you do to combat it ?” – Well, I do nothing as far as I can afford it. Sometimes I’ve got a feeling these unproductive periods underlie the most remarkable time I spend during the day 😉

  5. “What makes you unproductive, and what do you do to combat it ?” – Well, I do nothing as far as I can afford it. Sometimes I’ve got a feeling these unproductive periods underlie the most remarkable time I spend during the working day 😉

  6. It’s not just programmers, it ANY creative, knowledge worker. It I’m writing copy… Designing a complex page…

  7. I’m either productive or I’m not. Sure, there are certain things that you mentioned that are more likely to distract me. But when I’m on, I’m on and almost nothing can distract me. When I’m off, I’m off, and a dusty keyboard or a stray thought can distract me.

  8. What makes me unproductive: i tend to listen to music and smoke cigarrettes when i code, both decreasing my productivity in code, until i found out i better do both in my leisure time.
    Seriously, listening to music has made me less code and enjoys music more,don’t really know why, but pretending to put on the headset without music helps.
    ^ Life of a freelancer progammer

  9. Excellent post, and I think it’s really important to recognize that the majority of the issues that kill our productivity are in fact internal. All it takes is a little discipline and intentional action to make huge improvements in personal productivity.
    The only double edged sword (for me at least) is the open space office… it is distracting, but it really does lend itself well to building team spirit and camaraderie.

  10. George, This is terrific. Thanks for sharing. I am a technical writer, and the same things are true for me. My best coping mechanism? Going independent, finding business on my own where I set the terms, and working to mutally agreed, measurable milestones and deliverables. This allows me to do my best work, and clients are happy and satisfied.

  11. George, you nailed it. I’m a technical writer, and I’ve had the same experience in my working life. I dealt with it by becoming independent, working from home, finding my own clients, and working to mutually set, measurable milestones and deliverables. I didn’t make the transition in one step, rather a series of steps that started by leaving full-time employment and becoming a contractor. This allowed me more variety and challenge in my work, and excused me from a lot of time-wasting meetings and office politics. I *love* working directly for a client, because what they care about is getting what they need, not where and when I am sitting when I do the work.

  12. One thing that almost every developer I’ve ever met doesn’t do, and should to increase their productivity….. Is to flow chart first. That gets rid of the need to “get back in the “flow””.
    good article though 🙂

  13. If you are working on any unix os, there are several desktops there. I choose drag IDE there, make it full screen. It helps to avoid distractions and creates the feeling of the zone.

  14. so many conplaints and descriptions of laziness. sounds like you don’t really have true fun coding. anyway, i think taking Retalin will help you a lot focusing. try it.

  15. Must say that alot of people ( spec. Bosses) dont understand this, chit-chats, asking alot of questions, and we need to talk more can kill productivity… I created a list in my head, and used it for alot of time, like talk over skype, on skype my status is away but its allways on taskbar so i can see it when i have time, music – only headphones for all, i cant be in the same mood everyday, phone calls – if its more than 30sec talk please go out to talk… alot of other things, but for me this is the most important ones

  16. Since I usually have an entire development environment installed on my local machine, the best way to increase my productivity is to turn off my internet connection. Obviously, sometimes you need to Google something or check some other online resource, or commit code to a source control server, or access some remote database or web service as part of your work. This is especially difficult in a corporate environment where many resources may be pooled on a LAN/devops environment. However, as an independent software consultant the best thing for me is to work in airplane mode. That’s when I get the most CODE-WRITING done. I’ll usually have my 3G iPad nearby and sometimes I’ll use that if I need to Google or stackoverflow something. Then I’ll put it away once I find what I need.
    I get the most work accomplished at a public wi-fi spot, like a Starbucks. Especially Starbucks. I don’t know why. It’s loud, but the constant flow of people coming and going is kind of stimulating instead of distracting. I like to people-watch I guess. I don’t even drink coffee. But the constant activity of strangers coming and going, none of which are going to interrupt me or oblige me to do something for them, like I would get at an office, keeps me from getting bored I guess. I usually have rhythmic music going through my headphones to reduce noise distraction and keep me in the flow.

  17. Since I usually have an entire development environment installed on my local machine, the best way to increase my productivity is to turn off my internet connection. Obviously, sometimes you need to Google something or check some other online resource, or commit code to a source control server, or access some remote database or web service as part of your work. This is especially difficult in a corporate environment where many resources may be pooled on a LAN/devops environment. However, as an independent software consultant the best thing for me is to work in airplane mode. That’s when I get the most CODE-WRITING done. I’ll usually have my 3G iPad nearby and sometimes I’ll use that if I need to Google or stackoverflow something. Then I’ll put it away once I find what I need.
    I get the most work accomplished at a public wi-fi spot, like a Starbucks. Especially Starbucks. I don’t know why. It’s loud, but the constant flow of people coming and going is kind of stimulating instead of distracting. I like to people-watch I guess. I don’t even drink coffee. But the constant activity of strangers coming and going, none of which are going to interrupt me or oblige me to do something for them, like I would get at an office, keeps me from getting bored I guess. I usually have rhythmic music going through my headphones to reduce noise distraction and keep me in the flow.

  18. The single biggest thing that makes me unproductive is when I can’t figure out which things need doing first. If everything I pick up makes me feel guilty for 3 other things I didn’t pick up instead, I don’t get anything done. Sometimes if all the priorities are entirely my own, I can make a to-do list and just push on through, but if my to-do list affects other people, I need to make sure I’m taking their priorities into account as well, and lack of that information can stop me in my tracks. This is especially true if any of the potentially affected people have berated me in the past for not guessing their priorities correctly.
    The second biggest thing is that if I’m totally alone and not deeply invested in a specific task, I’ll end up distracting myself because part of my brain always wants to check in with other people. If my task list involves reading, that’s not as big a problem, but when I have writing to get done, I often need to process my thoughts verbally with someone else before I can sit down and write. If there isn’t somebody around who is okay to have such conversations with, I generally end up seeking interaction online – and then getting distracted because there’s a whole internet out there. This is less of a problem when I’m clear on my goals and invested in the project.
    I’m also generally pretty unproductive if I forget to eat for a while, and spend the time between when I should have eaten and when I finally get around to eating having trouble focusing. This is why when I am going to be studying or writing for hours at a time, I make sure to have snacks handy, so I can be eating a few bites every 15-20 minutes, instead of going for hours without any calories, and then over-eating myself into a stupor. It also helps me retain the information I’m learning more, since anything that went on within 15 minutes of getting some calories seems to stick in my head better.
    -E-

  19. When I was a professional programmer, the only computers were mainframes. The Internet didn’t yet exist, and neither did open-office floor plans, but otherwise I recognise most of the problems mentioned. I worked in a room with one other guy, and I was lucky: usually they were four in a room.
    The one thing that most bogged me was not understanding the problem at hand, as in: “John Doe just left the company, and now we’re stuck with that program of his, which doesn’t work.” Of course, no source comments and no documentation. And spaghetti code, to boot.
    One thing I’ve sometimes resorted to was that maybe forgotten technique: drawing a flow chart. It takes time, but it is an enormous help in understanding what the program is doing now; and at times you just notice obvious errors as you go along (an off-by-one error, maybe; or a typo making the code refer to one variable instead of another).
    And another thing to help productivity: comment the code abundantly. The next guy who’ll have to make a change to the code will thank you no end, and that next guy could be you two years from now. (The only place where documentation never gets lost, of course, is in the source itself, in the form of comments.)

  20. I agree with the staying at home when I really want to be productive part. I know there’s this belief that I might doing laundry and cleaning dishes and snacking while I’m at home, and these things might be true, but the total lack of distractions (when possible) and the lack of meetings (at least reduced), means the sum total of those quick distractions (which are purposeful to give my brain a moment to ponder a problem) is less than the sum of the distractions at work (which are out of my control and take me out of a problem space).

  21. I’m not a programmer.
    I do product design. I’m an Idea Guy. However, there’s a fair amount in common in the creative thought processes. They both suffer profoundly when exposed to interruptions of any type.
    For me, when I really need to get a design pinned down and lined out, I turn into a hermit. I shut my phone off, log out of all social media, in extreme cases, I unplug my net connection.
    It’s all about removing undesirable stimuli for me.

  22. It has been very clear since the 1970s or early 1980s that individual offices are so far superior to any other environment for programmers that it is ridiculous to put them in any other kind of environment. (There have been study after study, and the only ones that don’t come to this conclusion are the ones that do not count bugs in their analysis. These find a smaller advantage for offices, but still a significant one. But if you don’t count bugs in your analysis then you are not, frankly, analyzing anything that matters in the real world.)
    But then, we’ve known that productivity goes down and mistakes go up dramatically after more than one or two weeks working more than 40 hours, and we’ve known that for a hundred years. And yet we ignore that too. Because programmers tend to think that such rules don’t apply to them, and MBAs tend to think that anything that has a real up-front cost in exchange for something as nebulous as a ‘huge productivity and quality gain’ is ridiculous.
    Hence the reason Costco is in the news so often, for example: they spend much more than average on their employees, and they do really well because of it. But nobody is even tempted to follow in their footsteps, because it’s obviously too ridiculous to contemplate. It doesn’t matter that it WORKS. It’s still ridiculous.
    Oh, and besides, offices aren’t for people who produce things for a living. They are for managers. Right?

  23. Things that make me unproductive:
    – Uneven indentation in lists on blogs about obstacles to programmer productivity

  24. have made a script for myself that edits my hosts file. every 3 hours at 20 minutes on the hour it deletes the host file which holds all the time sinks. at 55 minutes on that hour it recreastes the hosts file and closes my browser so that my cache is reset and i can’t continue reading whatever links i had opened. have to save them until the next break.
    i’ve changed my sudo password and emailed it to myself in the future so that i cannot undo this script that occurs throughout the day when i’m feeling bored or just dont want to work on a project. i have to power through it anyways and eventually i get over it and get into the flow quite easilly. it’s all about just getting over that hump and with my script, i really have no choice. it’s not a matter of willpower, the computer is blocking it already so i really have no choice. i have to be productive on the computer or i have to get up from my chair and go do something else. all distractions are unnaccessible. it’s been a great thing so far. i also had to install ana pplication onmy phone that prevents me from opening a web browser or downloading new extentions because i would just end up browsing 4chan /g/ board or twitter from there. i realize i have terrible willpower but being lazy is something that makes me a good hacker in the first place so it’s a double edged sword isn’t it?
    productivity and time sinks are a huge problem these days for many internet workers. i think there’s a market for creating an operating system with this in mind and having settings that are unable to be undone or reset by more techy people like myself. when i used windows and tried to limit myself with the same type of tactic as above it was so incredibly easy to disable everytime and i would end up just doing that. with linux and having a master password needed before touching certain files. it’s much easier to be able to prevent myself from resetting the script when i get frustrated or my will breaks.

  25. Story of my life. Minus the wife part.
    Unproductive for me is mostly not having everything I need to start. Someone broke the code/build failures/environment failures. Not having the requirements concrete (upper management overriding the “rules” of Agile/Scrum and changing requirements halfway through the sprint).
    As far as people, I couldn’t code in front of people until I started doing pair programming. I know the benefits of it, I understand how it works, but I code slow when I’m shadowed because it’s distracting. As far as office environment goes, I’m the opposite. I don’t mind an open floor plan or the buzz of collaboration in the air. Zoning out is getting into my zone.

  26. I work remotely and start early. Very early. I do my best work in the morning and I won’t have any meetings scheduled that early. By 11, I’ve finished 4 hours of work and usually feel accomplished that I’ve done good work and it pushes me over to be even more productive

  27. TIL Misophonia may describe my negative visceral reaction to listening to neighboring coworkers eating at their desks!

  28. I work from home, but I live in a house with 4 other people and 3 dogs. It is a distraction factory. I find it incredibly difficult to get work done at times. The strategy that consistently works for me is this:
    1. Shut the door.
    2. Block out noise with earplugs or headphones. Earplugs are usually better because I sometimes get so into my music that it too becomes a distraction.
    3. Stay off Facebook and other attention-sucking websites.
    4. Use a to-do list to prioritize my tasks and track my progress.
    The most difficult problem I have is with my girlfriend. It’s tough to use strategies 1 and 2 with her. The plan I came up with for dealing with that is to try and mirror her work schedule as much as possible. That way, when she’s home, I really don’t have to worry about it. Doesn’t always work out that way, unfortunately.

  29. I’m kind of lucky that at my current job I am isolated from a lot of distractions like someone constantly checking up or interrupting me which was really annoying at my last job and eventually lead to me quitting (it was just one of many reasons).
    There are still quite a few things that are distracting if I think about it. Right now, I am working in an open space, I can hear my manager talk on the phone across from me, someone talking behind me, cell phones ringing from time to time and voices from people across the room. Besides this I can also go on the internet and waste some time or reddit (how I got here). So how do I handle all of this?
    I wear my headphones almost all the time, even if I have nothing playing. I found that they help a little with noise. Sometimes I put on death metal (Amon Amarth) which really drowns out everything else and helps me focus immensely.
    Besides that I think it’s a matter of getting used to noise in general. I also don’t expect to be productive more than 4 hours in our 8 hour schedule and management openly understands and plans accordingly.
    Some companies have managers that don’t understand how programming works, or work goes as a programmer and if they can’t learn (usually the case) it’s time to move on and find a better place to work. Also, I found that arguing at work is a sign of caring too much which may or may not lead to hostility and eventually quitting the job.

  30. Love this post, it kind of has every little thing listed. Getting interrupted by others is my main factor of unproductiveness followed by lurking on reddit.

  31. “Peopleware” by Di Marco & Lister covers all this and more. Written 30-odd years ago, all its conclusions tally with yours. Plus ca change, etc, etc. IIRC they recommend small 2/3-person offices, “no-meeting” mornings, phones off the hook, and setting an expectation outside the department that phones/emails may go unanswered for several hours.
    Twitter et al only make matters worse. Good programmer discipline needed (note to self).

  32. Great article. I am struggling with an open floor plan these days. I sit at the front of a long office and can see the bobbing head of every other person in here. I have jokingly brought up Privacy Snuggies (http://www.bitrebels.com/geek/introducing-the-snuggie-for-geeks/) among my coworkers. 😛
    My team used to be installed up in a dark programmer hole on the second floor near the kitchen but we were moved down to the too-open workspace of the rest of the office. Maybe it was the long winter, but productivity seemed to slow down for everyone.

  33. After checking that Wikipedia link on Misophonia (I had to click even though you said not to), I realize I apparently have that too! Never knew there was a word for it, but I just cannot stand the sound of cardboard peeling.

  34. We moved to an open plan office last year and my co-developer bought a nice pair of noise cancelling headphones because the noise level was (and is) just unacceptable. She was ordered not to wear them.
    And quit a month later.

  35. Great! But, somewhat paradoxically, the post ends with a “discuss this post on hacker news or reddit”!!! 🙂
    Seriously I think you just got the point (I’m on a bus reading this stuff but couldn’t wait to read it if in my office…).

  36. Reblogged this on Góc của Hải and commented:
    Quiet atmosphere
    Quiet workspace (A private office works wonders)
    Understanding the next step I need to take in a project
    Knowing the problem space well
    No interruptions
    Seriously: No interruptions
    Staying off Twitter
    Staying off Hacker News
    No hardware problems
    Loving the project I’m working on
    Short build and debug times
    Not debating politics on the internet

  37. For fuck’s sake. This is called life. Irrelevant shit comes up and has to be dealt with because it’s happening to people you care about. If you work takes priority then you have to ask yourself how much you care about them. But you are correct that much of the rest is self-inflicted.

  38. Misophonia is real. I am a psycho about hearing people chew no matter how much I love them. Great post. Lots of these really reaonate with me. Thanks for writing.

  39. With notifications, emails, messages etc being a major source of distraction, who in the world should want an Apple Watch that act as an added source of these distractions. CRazy.

  40. What makes me unproductive is the lack of freah air from the work environment. Open space and many people per floor can do that.
    To combat it i take 5 minutes off every 25 minutes and do some light stretching, moving and resting my whole body (eyes,back etc.) and get a breath of fresh for clarity (this one is the hardest if you have a ‘punch card’).
    When i am the one scheduling all this it does wonders for my productivity and well being.
    Currently i manage to hold the cycle for about 50-75℅ of the day.
    Wish this would become work ethic so it wouldn’t meet social resistance / pressure.

  41. I quit my job and started my own very small business. Earning less, feeling better. Income will grow, so there’s no worry.
    I really hate it when my attention must dissipate on other people’s things.

  42. Nice post!
    Tips for good productivity that work for me…
    The first half-hour of the day often seems more productive than the whole of the previous afternoon. Getting to work early means I don’t waste any of this precious time.
    If it is working, keep going. Forget rules that say you should stop every half-hour: this does not apply when you are in The Zone. I have worked through the day, through the night, and through the following day without the productivity falling off. I can get months of work done in one hit. This is pretty rare, but it is magnificent when it happens.
    If it isn’t working, go home. Goof off early: your employers will get their value back another day. Enjoy the stares of people who think it is weak to leave before seven. Quite often, the missing good idea comes on the street outside the office.
    Murder the person next to me who can type one-handed so he can chew his nails all day, and then chew and suck the bits of skin on his fingers when there is no nail left all. He makes very little sound, but even with headphones on knowing he’s doing it is enough. Murder him. Murder him with an axe.
    Avoid thoughts like the last paragraph if you can. It can take my mind half an hour to get back to a happily place after a burst of this. I am having lunch so it doesn’t matter: I would not write this if I was taking a short break from work.

  43. Movement in my periphery really bugs me when I’m working. I bought these cubicle wall thingies from IKEA for my home office: http://www.ikea.com/us/en/catalog/products/50268812/
    They also block surrounding noise a noticeable teeny tad bit. Other than that, pure silence, breaking down big tasks into much smaller ones, and “Knowing the problem space well” work best for me.
    Also, email used to be a big distraction for me, so now I just use my iPad to show me new work emails as they come in, displayed on my lock screen… and this is now the primary way I check for new email. This is AMAZING because it allows me to separate what needs to be done right now v. what can wait a few hours. I find that when I check email on my main computer, I can’t help but start responding right away (even to non-urgent issues) because my fingers are right there on the keyboard… Now I use my laptop+external monitor solely to focus on my tasks, and keep email notifications and other distractions completely separate on my tablet. I still glance over to check the lock screen frequently, but I don’t act on them/open those emails unless they look like they might be somewhat urgent.

    1. Sounds like there are a few people who need to invest in noise-cancelling earbuds. I dropped $300 on a pair of Bose earbuds and they really cut out external noise (even when you aren’t playing music through them, which of course they are also useful for).

  44. Another distraction is a superior and a collegue argue close by and refuse to move their conversation elsewhere because the superior is power crazy.

  45. I know all these issues from first-hand experience, but I don’t think this is something that is unique to coding (which is implied here and elsewhere). It might actually be more related to attention deficiency, which is a psychological condition, and that would be a problem in any profession. The correlation may be that people who are »wired« (have a disposition) to be affected by attention deficiency are statistically more likely to seek out professions such as software development, which is why these issues seem to show up more here than in other jobs. But this is only a (my) hypothesis.
    I’ve undergone the diagnostic procedures for ADHD more than once, and both times the outcome was something like 50:50 (»There are some indications that you have it and some that you don’t.«) My doc has given me Methylphenidate anyway just to see if it works – and it does work, as does Modafinil and probably any of the amphetamines, or any stimulant, for that matter (it’s not a co-incidence that developers are usually very addicted, or at least inclined, to caffeine). The drugs don’t work wonders, but they make it easier to stay in the zone and not get pulled into outer space by every little distraction.
    I’m not saying that this is necessarily a medical condition, or that it should be treated with drugs, but for people who are dealing with these kinds of issues this might be worth taking a look at.
    From my experience, the base issue is that »people like us« can get hyper-focused (much more so than those not affected), but the downside is that we may lose focus altogether and just keep drifting off, which is something that does not seem to happen (as much) to those not affected from this special brain-wiring (or whatever it is). So what seems to be happening is that our focus regulation (which is strongly linked to the neurotransmitter Dopamine) tends to get out of control, giving us the hyper-focus some of the time, and much too little focus at other times.
    You may also like to try out a number of techniques that can help to get this focus-imbalance (of sorts) back in order, such as meditation or yoga (yes, seriously).

    1. My job involves a bunch of stuff that isn’t coding, and a few bits of coding. It’s only the coding where the interruptions and whatnot are a problem. I recently confused the hell out of my boss by achieving more usable code in one morning (when I’d arranged for someone else to do the rest of it for a day) than I had in the previous three months.

  46. Yeah. Give the guy with productivity issues his own private office where nobody can see him idling. That’ll help.
    Glad you’re not on my team.

  47. In addition to all of the mentioned: Messy, poor test coverage or untestable code, messy/slow build environments, quirky unhelpful IDEs.
    Messy code in particular can in a single blow destroy my productivity much more than anything else. A well understood one day feature can turn into an endless rabbit hole of investigations, unexpected effects and fixing bugs that creep out because you touched something.

  48. These problems are real – sometimes I even wonder what I did when home time comes — I do find working from home does wonders – no one to bug you, your own space, your own toilet and toilet paper… it’s just comfort zone all the way, not to mention time management, etc.

  49. Programming should be equated to composing music, that which is NEVER done in a “communal” environment. I’ve stayed concentrating on system designs for days with NO interruptions and these were the most productive times in my career. Crash for a few says, come back and review what you’ve done with a fresh mind. Mind you … nobody had better change the “user requirements” in parallel with the design & development phase, or nasty feelings will be vented!

  50. I’m curious about the noise-canceling headphones. From what I’ve read it seems to me like they’re good for canceling out uniform background noise, like the drone of an engine or machinery, and less good for canceling out something less regular, like voices in conversation.Is this what you’ve found in your use of them as well?

  51. Same with translators (: People doing creative work need their own, private, undisturbed space, their very own scheduling and, well, the feeling of being creative (the key here is “doing something that actually makes bloody sense both for me and the world in general”)

  52. Things distracting me:
    – Sudden halts of the IDE (going shallow saying “Not responding” in the title)
    – When we run out of coffee because everybody forgot to buy
    – Anybody, seriously anybody, staring at me while writing code. Even when I am just thinking about what to write exactly
    – Deadlines – and the way they are created
    – Badly indented code
    – 3 calls in a row about brand new ideas what shall I accomplish – of course for yesterday – leaving me half an hour behind and completely brainwashed
    Things making my head blow:
    – Somebody asking me: what are you doing? guess what! working, thinking, and I would not like to create a half an hour story about that.
    Things helping me:
    – Silence
    Am I the only one having these?

  53. Open offices are terrible for focus. They’re not bad when you really are collaborating, but that lasts only a small portion of the production process. Even if you’re “extreme programming”, you don’t want additional people around to further distract the overall process.
    I also hate phones. The abrupt time sensitive nature of phones is endemic to destruction of focus.
    I would so much rather arrange to speak with a person physically as the next step after IM or email or some shared gotomeeting kind of thing. I feel phones should be banned except for virtual meetings or if you are keeping them open for a period of time to remotely coordinate during a process execution.

Leave a Reply

Your email address will not be published. Required fields are marked *