DEV Community

Are interruptions really worse for programmers than for other knowledge workers?

A cartoon with the first set of images showing a programmer's thought process across levels of abstraction, going rom a single if statement to how the components of the system fit together. The last pane shows him being interrupted, and that entire mental model collapsing.

This is quite a popular cartoon. I posted this in a comment on why programmers wear headphones a year ago, and it has received 63 ❤s.

But I think we like this idea because it makes us feel special, and I don't believe we're as special as we think we are. A talk I found on YouTube some time ago has convinced me that a lot of interruption aversion we feel is caused by not breaking our work into small enough chunks.

This in turn is caused by not understanding the scope of what we're doing. Very often we just dig in, thinking it'll be a small change. An hour later we're left with 10 uncommitted files with changes all over the project.

I'm not denying that you have to keep a lot in your head when programming. A change in one place does have effects on other parts of the system, requiring a fairly complex mental model. But I do think that you can improve your resilience to interruptions if you:

  1. Come up with a solution to a problem before you start writing code, and think about which parts of the system that solution will impact.
  2. Divide the solution you came up with into small chunks, so you can take them one at a time.

This is currently a "Do as I say, not as I do" story. It's something I'm trying to improve on, but with time, we can get there.

If you want to hear a much better explanation than I just gave, check out the YouTube video I mentioned:

Was this as convincing to you as it was to me? Are there other ways we can be more resilient to interruptions?

Latest comments (44)

Collapse
 
gmcfarlane profile image
gmcfarlane

I dont really see that his talk addresses his stated problem. It more a recap/revision of something McConnel might wright today... here is how to not be horrible at software development.

Im not sure how to avoid distractions... I know this...

Act like an adult and dont pout when you get distracted. You aren't that important.
Write comments, distracted or not, you wont remember what you were thinking when you look at this in 2 weeks.. or 2 years.
When you get distracted, listen and be present. They may be trying to tell you something that is more important than what you were doing before 'they' approached you.

And yes, if its time for heads down deep think, go find a quiet place, or quiet time. Most the people you work with are well aware that distractions can impact performance... they experience it too. Put a sign up that says 'PLEASE TREAT MY DOOR AS CLOSED'. It works wonders.

Collapse
 
jasperhorn profile image
JasperHorn

I like this hypothesis. That might be because it makes me feel special, though. I mean, I can handle interruptions pretty well most of the time, so I must be doing things "the right way", right?

Collapse
 
kodikos profile image
Jodi Winters

I started out in office support but at the same time doing loads of coding before I moved exclusively into development. So I was constantly interrupted about inane things (e.g. A4 Load Letter!). I developed the skills to work in busy environments, a number are mentioned in the comments.

Take note of the forced interruption - take a damn break! It's plain unhealthy to get so into something like that at your desk. If you go for a walk, you're less likely to be disturbed if you need to do some thought work! What about your whiteboard? Well I work a lot with remote people/teams where whiteboards are usually impractical, so it's possible to survive without the high from the pens!

Reading previous comments, I have 2 bugbears to raise...
1) Don't blame Agile. It's only there to help keep you developing things that are relevant. If there's something wrong with your processes, change them! That's what retro's are for! Sounds like everyone's main complaint is "I spend ages diving down rabbit holes of complexity because we never fix tech debt" - does your business really think that's a healthy situation in which to work?
2) Headphones.. if used properly are great ways to work, and I'm sure some people may work better with them. But they are also misused quite frequently. When I've heard trainees upset and crying because they can't get the help they need because their assigned senior is always plugged in and is unapproachable... you gits! I've also observed great amounts of sloppy working from headphoners too, like the ones who never seem to use the right processes, who create enormous PR's so complicated that they're un-reviewable, who end up getting sacked because they're unmanageable and unproductive from the business' point of view, etc.

I would also say that if you are one of those works with their headphones on, beware! The new generation will kick your butts with their collaborative working skills. Which, I might say, generally produce things far better than the lone wolf developer. If you are paired with someone and you get interrupted, chances are you'll pick up the trail a lot quicker.

Collapse
 
pomodus profile image
Pomodus

Regardless of whether developers are holding a large solution in their minds or they are thinking deeply about how to implement a small feature, the reality is that interruptions cause them to lose their train of thought and it takes a long time to get back to where they were. We built pomodus.com/ with planning, focus and reducing interruptions in mind. Please try it (there's a free plan). If you have feedback or feature requests, please let us know. I hope that this is helpful.

Collapse
 
theminshew profile image
Michael Minshew

I honestly feel like its a personality and specific problem thing. My wife does a q/a project manager type role and she absolutely hates being interrupted as she has to carefully review and follow a person on screen for part of her job and the other part is walking through processes in her head and figuring who does what and where. She is not in a tech or programming role in the slightest and believes html = hotmail. She deals with it but often feels that a more interrupted day was fruitless because she wasn't able to finish or walk through her tasks and plans for the day.

When I was a call center supervisor It was extremely common for me too be talking to a customer about an issue, answering 1-2 team members question at once (Mute rocks) and fixing a 2nd customers problem all at the same time. I was really really good at this multitasking (partly due to my ADHD and the advantage it gives me in very high stress situations,dopamine ftw). It was so routine that it was almost laughable how many things i could handle at once.

Now that i'm doing development i'm the opposite, its really frustrating when i'm interrupted because i'm trying to walk through code or learn something complex and i have to focus really hard on things to keep everything in place in my head. I think it just depends on a persons personality, the job, what exactly is being done and the atmosphere.
I also have realized that the better i get at a concept the easier it is to bounce back and forth with minimal consequence.

I think the solution is to focus more on trusting people to do what they need to do while coaching and training them to stretch in their weak areas. Over time I see people interact with others more, be more responsible and choose isolation/collaboration when its appropriate because they have the freedom to do so and the education and buy in of the value of both systems.

Collapse
 
neerajs29318246 profile image
Neeraj Sharma

I believe interruptions are worse for every employee. For example: If someone interrupts me while I am writing a blog, it takes me hours to focus again.

Same is the case with designers, analysts, sales representatives. A momentary interruption can cost the whole project.

In short, the only person who will not mind being interrupted is the one who is free and don't have any work to do.

Collapse
 
falansari profile image
Ash

I've never had this issue, as I write everything down first. Whenever I am about to start work on a new function or feature, the very first thing I do is design it. I write down the logic with pen and paper. I rewrite it into pseudo-code and comment blocks in the newly created script files where it'll go. Only then I start coding. At that point, the code itself takes barely a few minutes to complete, and no interruption in the world would break my focus at any point due to everything being written down. My sister on the other hand loses her mind if she had the slightest bit of an interruption and that cartoon is putting it mildly. Even though I'm infamous for being a "one-track mind" with my work. Like many others have already said and I'll say it again, write everything down.

Collapse
 
bousquetn profile image
Nicolas Bousquet

I'am sure the problem exist for everybody. This is finally a context switch a bit like our CPUs.

Part of the problem may be purelly that you lost some information you need to acquire again, true. But the brain is now focussed on the interruption and may take some time to just not think of it anymore.

As to split a problem into small tasks, this is important and help but is itself a complex task... And you may as well forget what the tasks where if you are interrupted. You can write down things but then you make you brain slow down, to work a speed of writing/reading instead of its own naive speed.

As for headphones, if you play music and not just cancel the noise, it decrease concentration. It has been proved that pure silence is better than music and it seems logical. A part of you concentrate on the music. It is an interruption by itself. How I remember that one that our prefered music with my girlfriend or simply, hey I like it or no, I'll go to next track.

It is sure that being organized to live with interruptions if you cannot avoid them greatly improve your productivity. There many tricks. People for example switch to tasks that do not require much concentration at hours when they are most likely to be interrupted or between 2 meetings. Some people would just say to go back to them later and stay focussed. You can also concentrate on reading mail/chats conversations and all at certains hours/time (like every hours or when you have a slow compilation blocking you).

I also simply know many people that when they know they need to have max concentration go to a meeting room where they are alone, put their chat status on do not disturb and so can be concentrated on the task for a long time and make significant progress.

Collapse
 
yingtc profile image
Tc.Ying

Just topple open office and that's it.

Collapse
 
dance2die profile image
Sung M. Kim

I've been explaining non-devs that our concentration is like that of a house of cards.

The comic strip explains it pretty well, as well 👍

Collapse
 
vvvvalvalval profile image
Valentin Waeselynck

I do believe it's somewhat worse for programmers than for other knowledge workers, because programming is a task that's incompatible with errors and approximation.

I also believe, as you do, that programmers can becomr much more resilient to interruptions with one simple trick: when working on something complex, male a plan and WRITE IT DOWN. The vast majority of programmers don't do nearly enough of this.

Collapse
 
falansari profile image
Ash

Exactly! Plan and write! Pen and paper are your friends.

Collapse
 
tsigberg profile image
Thorbjørn Sigberg

Slicing and reducing complexity is always a good thing. :) The type of interruption is also important. Here is my take on the subject: medium.com/@thorbjorn.sigberg/out-...

Collapse
 
hullsean profile image
Sean Hull

yes i do think you can mitigate it somewhat. but i wonder if it is also somewhat about engineer style of thinking.

for example when i’m having a conversation with a friend, let’s say i am telling a story. now interruptions are fairly normal but they drive me up wall. often i lose my thread & the train of thought. then i get mad at the person like they don’t care about what i have to say.

but they do. and conversational interruptions are quite normal. but i struggle with them.

Collapse
 
germandiagogomez profile image
Germán Diago

Actually all interruptions cause disruption, but, as the cartoon shows, what happens to programmers is that they carry a lot of information in their short-term memory when analyzing a problem. The more information you are carrying in your short-term memory, the more difficult is going to recover from an interruption. So, yes, you could do sales, writing, analysis or many other things, but I think that for programmers or people doing math, chemistry or similar things is going to be worse than for a person writing a paragraph of literature, for example. Unless they overloaded their short term memory with a lot of information.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.