This Is Why You Shouldn't Interrupt a Programmer (2013)
heeris.id.au
heeris.id.au
Avoiding the cognitive penalty of interruptions is a skill that every programmer should develop. It's a big win in terms of productivity, and it only becomes more important when you become more senior and need to collaborate more frequently with other teams or provide support to other developers. Collaboration is where true productivity comes from anyway, rather than raw coding skill (above a certain baseline of competence, of course.)
In my experience, productive programmers often avoid the problem by just writing stuff down. If the guy in the comic strip had a pen and paper he could have quickly drawn those flowcharts he had in his head. Or he could have typed his ideas in comments or in a text file. But if he tries to hold such a complicated structure in his head, to the extent that he can't have a conversation with another person, he's just needlessly setting himself up for failure. I doubt he would make it through a lunch break or even a bathroom break if he can so easily lose track of what he is doing.
What's going on in a good programmer's head is going to be complex and detailed, because we need to understand it to be able to write it, and that basically means we're running the code in our heads before we commit it to a screen.
We're not "setting [ourselves] up for failure". We're solving hard problems with the expectation that we won't have to come back to it in an hour's time just to erase all our poorly planned code and start over. It's not like writing an email--we're switching modes over to thinking like a computer and this requires concentration and focus.
Early on I realized I am the first kind. Perhaps you are the latter?
And even ignoring that: writing down abstract concepts is hard. Doing so is (to me) as distracting as dropping my work completely and doing something else for a while.
IMO the solution isn't never being disturbed and it isn't writing everything down either. It's keeping disturbances as few as reasonable and being able to get back to it quickly, even if that means rebuilding your mental model.
Basically anyone with a higher education that was hired for their brain, works like this.
Sorting a business process or a benefit model of hundreds of postits to figure out the most efficient way for a team to perform a task isn’t really that different from fixing a piece of software.
Having people not disturb each other is hard though. I’ve managed different teams, and the funny thing is, that it’s even harder to get people not to disturb each other when they all think that what they do requires special concentration. So this funny little illustration of the issue actually makes it harder because it might make my programmers think they require more concentration than their coworkers. :p
I wonder why upper management keeps designing them so poorly too. I mean, in concept the interoperability of a buzzing idea sharing space is great, but the concentration zones are almost always so shitty that nobody uses them, and even if they do, the concentration bit is often ignored by corporate culture.
The last frame should actually say something like “hey are you ready for our 1:1?”
:)
The comment in the article was "…email about that 'thing'". I would immediately think "what thing?", then everything else goes down the drain.
"Did you see my email about thing?" is going to get a prompt no from me. "What's 3*9" is going to get you about 30 seconds of huhs and hold-ons before I realize it's an unimportant question (at which point it's too late to recover).
The problem for me is that I've contributed to several different projects in different languages and I'm the most knowledgeable person in my (small) company, so If anyone has problem or doesn't know something, he must ask me. Recently I've found a good way to tame this a little. Asking person is required to write my response in apropriate wiki so that if something was unclear, knowledgebase will be upgraded for everyone.
Myself I worry that I have said too much online. A person these days cannot discuss the past without giving away the self.
We get it, being interrupted sometimes can be a nuisance when it causes you to lose your train of thought. If you find dealing with other human beings during the course of your day to be such a detriment to your productivity, perhaps you shouldn't work in a collaborative field.
If you didn't know about the monkeyuser comics so far (as did I, a couple of months ago): You're welcome :)