You really need to be uninterrupted to code properly.
I always get more done afer everybody else leaves.
It seems my best coding always comes when I can freely concentrate and not be interrupted all the time. The work place and the workday is just one kindergarten classroom like interruption after another.
But when everyone else finally goes home, the phone down the hall stops ringing, doors are not opening and closing, people shuffling back and forth down the hall, THEN can you effectively think and program efficiently. Everything else is just too little and not well thought out.
You have to be able to think about the big picture.
I wish I could have a really quiet place to work all day long.
I despise the phone calls and the interruptions and everybody needing me to do this and that. But it brings in the paycheck. Oh if I could only have a whole day to get all the neat code ideas I think of all worked out.
The only conclusion that I can reach is that you are therefore a valuable member of your company. Have you ever noticed how the dumb people are the ones that never get interrupted? It says something, doesn't it, when the smart people can no longer get work done because they're constantly being interrupted--the inevitable conclusion is that it's the people that don't have a clue that get the work done, spelling a future disaster. :)
I find I get interrupted a lost less when pairing. Maybe other people can see you are already in conversation with someone and don't want to be rude. And if my pair programming partner goes home, I find it's better that I go home too as the quality of my code drops.
I find the same thing, about being less productive when our office is at it's peak noise level during the day. I find people talking on phones, comming in and out of the office distracting. After most leave, I can code without distraction.
I use headphones and listen to music without vocals that I know well, when it get too noisy around. It helps me block out the disturbances around me. And if it's the right music it doesn't disturb my brain from its task.
> I find I get interrupted a lost less when pairing. Maybe > other people can see you are already in conversation with > someone and don't want to be rude. > And if my pair programming partner goes home, I find it's > s better that I go home too as the quality of my code > drops.
There are several interesting things I noticed about pairing, interuptions and concentration:
1) As Graham said: People don't interupt you as easily if your are already engaged with another person. 2) When you get interupted (eg. by a phone call) you keep that interuption as short as you can so your partner doesn't have to wait for you 3) This is a very interesting point to me: When pairing, people are not easily distracted by backgroup noise! I sometimes have a hard time to concentrate when it's noise around me. But when I'm pairing and I'm thus engaged in a constant discussion, the background noise doesn't hinder me. That's also why the XP "war-room" works so well.
So a quiet place is needed for deep solo thinking. It's not really important for pair programming.
I have worked in every kind of noisy open-spaces. I usually have the ability to leave a very low priority thread listening to the outside world and I don't permit unmasked interrupts. Until a couple of years ago I was used to work overtime for the same reason: to concentrate. But I think even software developers should not forget that real life is out there, so I try not to work overtime now, but I prefer to gently ask people to shut-up. Also, it is a good idea not to mix sales-people with developers in the same office...
Why wait for everyone else to leave? My solution when I'm really trying to focus on a problem is to head out to a coffee shop with wireless. Sure there is still the bustle of people around, but they are very unlikely to bother you. And in an emergency you're reachable via email.
> I sometimes wear headphones without any music coming from > them, nodding my head and tapping my feet, as if I were > engrossed in my music. That tends to stop people from > interrupting me as well :-)
I've also used the 'empty' headphone trick. One office I worked in provided headsets for the phone. Wearing the phone headset was also very effective.
In case anyone is still watching this forum, there's a great article on this subject in the Jan 2005 Harvard Business Review. It's "Overloaded Circuits: Why Smart People Underperform" by Edward Hallowell.
Hallowell's point is that for a lot of us, myself included, there's a kind of reverse ADD phenomenon going on (he calls it ADT) that when too many inputs come in, the brain reverts to a more primitive, survival sort of mode that is both highly stressful and inappropriate for knowledge work.
There are a number of interesting related articles in that issue, but I think the title of Hallowell's article pretty much describes today's work dilemma for a lot of us. We are behind the curve so to speak, and not working effectively.
I'm fairly new at my company so I don't get interrupted too often. On the other hand my company encourages interruptions (open door policy). I wish I had the opportunity to pair program since I've found in the past that you can be more productive that way, regardless of noise level. I agree people tend to distract you less when you are already working with someone else.
Order sometimes emerges from chaos!
When you need to get work done by yourself, like I do, I find it more productive to have fewer interruptions. If I can work from a home office then I do so because I won't get interupted by other workers. I still like to have some chaos to help me think. I listen to music all the time to provide that bit of chaos. I'm a metal head so I listen to heavy metal all day and I get my best ideas when I do so.
The only conclusion we can make is that we are all different. Some people can't focus with with lots of noise. Others can't focus without it. Some can focus regardless of the situation. There is no better way. The best suggestion is don't force something that doesn't work for you. Going against what is most natural for you will prohibit progress the most!