Live data from Hacker News

The interruptible programmer

stevestreeting.com

11–20 of 50 posts

Re: The interruptible programmer

#11
The problem arises when you are focused on something very specific, for example designing a particularly complicated series of function calls, you effectively have to keep a stack in your mind, think about locals, instance variables, whatever, abstract stuff that the brain isn't so well designed at retaining, which becomes very vulnerable to disruption.

If you are unlucky enough to be interrupted while in that kind of state, the spinning plates effectively fall and break - it can almost be painful, and certainly drudging to get back up to where you were before. I've found this tends to take anywhere from 30 minutes to a day of time away from me because getting back in that flow state can be so damn difficult.

I think a lot of the problem comes down to us using the brain for stuff it's not great at.

Re: The interruptible programmer

#12
post #4

I used to only be able to program in large blocks of time also. Then one day I thought about the 66 minutes I 'waste' each day on the train to university; 33 minutes per trip. I started to take out my laptop as soon as I get on the train and try to work on programming. Initially I had very little done, by the time I really start programming it was time to get off. But now, 3 or 4 months into it, I seem to manage to g…

I have the same experience! You start to anticipate arrival and focus on "cleanup" work at some point. It happens so naturally that you hardly notice. If there is something left to be done, it's usually something small, like a 5 minute task.(maybe the train was early?)

Re: The interruptible programmer

#13
post #8

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- happen…

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.

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

#14
post #8

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- happen…

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.

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

#15
post #9

I have found the Pomodoro technique quite useful. Once I get off my ass to actually start the 25 minute work interval, the conditioning kicks in and concentration appears. Surprisingly, the first part (just starting) is harder than following through.

Interesting. I have never heard of this technique. I prefer working in 3 x 45 mins blocks. At 25 mins, I'm just getting into things.

Re: The interruptible programmer

#16

The problem arises when you are focused on something very specific, for example designing a particularly complicated series of function calls, you effectively have to keep a stack in your mind, think about locals, instance variables, whatever, abstract stuff that the brain isn't so well designed at retaining, which becomes very vulnerable to disruption. If you are unlucky enough to be interrupted while in that kind o…

Maybe your code is too complicated?

I suppose the ultimate goal is too keep one's code clean and simple enough that one does have to go into super brain mode in order to solve a problem. Sadly we don't live in an ideal world.

Re: The interruptible programmer

#17
post #4

I used to only be able to program in large blocks of time also. Then one day I thought about the 66 minutes I 'waste' each day on the train to university; 33 minutes per trip. I started to take out my laptop as soon as I get on the train and try to work on programming. Initially I had very little done, by the time I really start programming it was time to get off. But now, 3 or 4 months into it, I seem to manage to g…

Parkinson's Law - work expands (or contracts) to fill the time available for its completion.

When I was teaching English, for one class, I gave groups a human-slide puzzle activity. A group of 8 were given a number from 1-8 and arranged randomly on 9 numbered squares. They were to re-arrange themselves in order by moving one person at a time to the empty square.

The last group to complete it was having a really tough time and kept complaining to me that they couldn't do it. After all the other groups had finished I announced they had 5 minutes left. They completed it just before the time was up.

Re: The interruptible programmer

#18
I'd like to read more detail about his setup.

What ticketing system does he use that he can "get in and out of in 30 sec" ... so that he can toss every new idea into it without breaking his flow?

How, specifically, does he track his context? In particular, how does he track context across multiple projects while still being able to react to interruptions in a timely way?

How does he track his one-and-only-one next action for each project in a way that's simple/easy/fast enough that he doesn't give it up in disgust?

Re: The interruptible programmer

#19
I don't necessarily know if programmers need to go so far as embracing interruptions, but I think the author makes a good point. In fact, this is the challenge most introverts face in their careers. How do you remain focused in your inner world without shutting your coworkers out?

Extraverts of course face the opposite problem. How do you remain focused on the outer world world while not becoming completely dependent on your coworkers?

Re: The interruptible programmer

#20
Nobody should work more than 8 hours per day. Somewhere around that mark, you start getting diminishing returns on additional hours. In Sweden, the work week is 40 hours. The maximum overtime is 150 hours per year, extensible to 300 hours if the employee and the union allows it.
Post reply on HN