News for hackers. Stuff that matters.
Re:The interruptible programmer by wccrawford on Thursday October 14, 2010 @07:09AM (#1790500)
I've always been an 'interruptible programmer'. While my bosses have really loved it, they pay for it by my being less productive.

You see, the human mind can only hold so many concepts in active thought at the same time. It's somewhere around 7. If paying attention to your surroundings is 1, there's only 6 left. If someone -happens- in the surroundings, there's at least 1 more gone. If something -interesting- happens, there 2 or 3 more as you go off on tangents thinking about them.

Yeah, half your mind is taken with your surroundings at times.

My solution is to pay attention to my surroundings when working on easy projects, and for projects that -really- need my attention, I put in earphones and block everything out. I have a few different music sets that I've heard so many times and/or they have a sound that doesn't ask my brain to process them.

With my earphones in, people have to yell (or call my phone or IM) to get my attention. I don't check even check my email.

I usually don't have to resort to the earphones. One line of thinking is that if it takes all your ability to write the code, you couldn't possibly fix bugs in it. You should be writing well below your ability so that you can fix it when it breaks. This usually means the code is easier to read as well. But some things are just innately complex, and there's nothing you can do about it.

Re:The interruptible programmer by jacobolus on Thursday October 14, 2010 @08:46AM (#1790679)
How did you decide on "somewhere around 7" concepts in thought at once? What counts as a "concept"? If you are referring to the 1956 George Miller paper "The Magical Number Seven, Plus or Minus Two", then that really has little to do with "concepts".

See Tufte: http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0...

"That essay reviews psychological experiments that discovered people had a hard time remembering more than about 7 unrelated pieces of really dull data all at once."

Re:The interruptible programmer by gaius on Thursday October 14, 2010 @09:28AM (#1790786)
It's 3 for lions. That's how lion taming works, the lion attempts to process each of the chair legs as a seperate object and has no mental capacity left to eat you.
Re:The interruptible programmer by philwelch on Thursday October 14, 2010 @10:49AM (#1791045)
If you're worried about the lion eating you, you can just feed it until it's not hungry.

Lions are surprisingly not vicious towards humans at all--since there's no species that can fuck with them they don't have the vicious fear response most animals have. That's the real trick to lion taming--and the reason you can tame a lion but not a jaguar. Tigers are the same way. The big danger with either of them is actually playfulness--they don't always realize how strong they are.

Re:The interruptible programmer by gaius on Thursday October 14, 2010 @04:06PM (#1792379)
I'm not worried - me and Aslan get on just fine. So long as you remember he's not a tame lion.
Re:The interruptible programmer by jacobolus on Thursday October 14, 2010 @10:06AM (#1790903)
I’m not sure how you came up with “3” (or for that matter how objects in view of a lion is comparable to “concepts” in the working memory of a programmer). As far as I know this idea was popularized by Errol Morris’s film Fast, Cheap, & Out of Control: http://www.errolmorris.com/film/fcooc_transcript.html

“Dave Hoover:

“The chair has four legs... Now, an animal has a one track mind, For instance, the animal is coming after you with the idea of tearing your head off... You put the chair up, and all of a sudden, he has four points of interest. He loses his original train of thought because this agitates him. He can’t comprehend those four points of interest, so what he does he attacks the chair. He takes his wrath out on the chair. His mind now had been completely distracted from his original thought: ‘Eat the man in the white pants.’

“It’s basically animal psychology. You try to keep the animal afraid of you in that he does not understand you. He does not understand that you’re weaker than he is. [...]”

(The next few paragraphs are also quite interesting, and I recommend the film generally.)

Re:The interruptible programmer by HeyLaughingBoy on Thursday October 14, 2010 @01:42PM (#1791799)
Wasn't that the film that profiled MIT's Rodney Brooks? (robotic subsumption architecture, Roomba?). I think we watched it for a graduate class in AI. It was good.
Re:The interruptible programmer by ohyes on Thursday October 14, 2010 @08:55AM (#1790707)
This is why I sit at the desk with a pen and paper and my computer. When I'm trying to work something out, I write stuff out and make sure that my plans (and the stuff I have to keep track of) gets down onto paper. Sometimes I even draw a picture. Makes it much easier to refocus after being distracted (I just read my freaking notes). I'm interruptible, very productive, and I can refocus pretty much instantly.

//file this under benefits of a liberal arts education...

Re:The interruptible programmer by leftnode on Thursday October 14, 2010 @08:00AM (#1790591)
Yeah, I work that way as well. I have a nice pair of noise canceling headphones, and my co-workers (non-programmers) will have to tap on my shoulder or speak loudly for me to hear them.

They're often perplexed if I'm late to a meeting or aren't up to date on the latest email. I generally keep Outlook closed which manages my calendar and email.

Re:The interruptible programmer by vr on Friday October 15, 2010 @06:35AM (#1794166)
Being prepared for an interruption does not mean paying attention to your surroundings or actively seeking distraction (e.g. checking email). The problem here is that even if you've made an attempt to block everything out but have not prepared yourself for an interruption, it still may happen and will severely hurt your productivity when you try to return to what you were doing. Keeping even very informal todo lists (e.g. comments in code, todo.txt) helps greatly when you need to quickly restore your context. Even if an interruption does not happen they give you a sense of direction and you can also use them to prepare future contexts for exploring ideas you came up with while working on the current task.