H

Heeris

heeris.id.au · Personal blog · on HN since 2013

Heeris is an Australian programmer who posts small pieces, including a well-known cartoon about interrupting programmers.

What HN saysHN links his cartoon as the best illustration of how interruptions break a developer's flow, often in remote work and open office debates.
58HN people shared it
51linked it in comments
7stories submitted
815story points
4 years agolast shared
2013people per year2026

Most-shared posts

  1. 1
    Why You Shouldn't Interrupt a Programmer
    49 people · 686 points · first shared 2013 · 204 comments on HN
  2. 2
    ProgrammerInterrupted.png
    7 people · first shared 2018
  3. 3
    If programming languages were Harry Potter characters
    1 people · 129 points · first shared 2015 · 61 comments on HN
  4. 4
    [2013]
    1 people · first shared 2023
  5. 5
    ProgrammerInterrupted.pdf
    1 people · first shared 2023
  6. 6
    ProgrammerInterrupted.pdf[PDF]
    1 people · first shared 2023

What HN people wrote when they linked it

johanneskanybal · 2021-10-29
haha very much this. The upside of not getting disturbed while concentrating and having better work/life balance is not exactly one of life greatest mysteries. https://heeris.id.au/trinkets/ProgrammerInterrupted.png
monkey_monkey · 2021-07-09
This is my favorite cartoon about the cost of interrupting developers. https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program…
decodebytes · 2021-06-03
I feel directly opposite to this, I am way more productive working from home as a programmer, for this reason alone: https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program… Also I find modern tools easily make up for not being in close proximity. Best of all as an engineering lead, I am not restricted to hiring in the small pool of engineers who can travel to the physical location of an office. I can hire talent world wide > I had a stronger work/life separation. I rarely turned on my work laptop at home. To be fair, that's a matter of personal discipline. There is nothing to stop you closing your laptop at 5pm and leaving it until the next day to open it again.
devnullbyte · 2020-05-13
Nothing wrong with a friendly face, its more that it can throw you out of your flow, especially when trying to debug some code. This describes it best: https://heeris.id.au/trinkets/ProgrammerInterrupted.png This for me is why WFH suits me so well. In my morning I get around 4 hours of pure uninterrupted coding (as long as I stay off here or reddit).
enraged_camel · 2017-05-20
The best way to do it would be to funnel all communication with the engineers through the manager. This includes questions, ideas for new features, feedback from customers, and so on. What you want to avoid is random people (and that includes higher ups) pinging the engineers directly. That can be incredibly distracting and can result in large decreases in productivity, not to mention higher likelihood of bugs and other problems as the engineer is kicked out of their "zone" and loses their concentration. http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-programm…
kethinov · 2014-04-21
When I think of false urgency, I think of the infamous shoulder-tap-management style. Illustrated best here: http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-programm… Shoulder tapping someone to say "hey I just sent you an email about the thing" is the very definition of false urgency. If you do that, stop. They'll see the email eventually. It can wait an hour.
teddyh · 2016-01-02
> Good Commandment 5. Thou shalt disturb thy neighbors. > Researchers have found that innovation is enhanced if all participants work in a single open space less than 50 meters across, as it encourages spontaneous discussions across disciplines.[viii] The goal is for the space to support concentration and communication. For example, for the last four centers of Table I, the faculty gave up their private offices to be embedded with students and postdocs in open space, where only the meeting rooms have walls.[ix] Faculty access draws students from their home offices to the lab, which increases chances of interactions. A downside of shared space is the cost of remodeling to create an attractive open space . This is a one-time capital expense, since following projects will use it, but even so, the cost was equal to just two students over the life of a center. Shared open space is certainly more beneficial to a center than a few more students I have to wonder how they get any research done. http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-programm… Do they normally have very quiet participants and students?
pdkl95 · 2015-09-19
Advertising has approximately the same "context switch" problem[1] that programmers often complain about. By definition, an advertisement is not the thing I'm currently involved with. At best, a even a "tasteful" ad requires you to 0. Interrupt whatever you were doing. 1. Parse text or recognize the basic features of an image. 2. Run whatever heuristics you use to decide if the parsed data is an ad. 3. Try to skip past the ad, either temporally or spatially. 4. *Continue* to monitor the ad until you recognize that it no longer impedes the thing you interrupted in #0. These are complex behaviors that have non-trivial costs. The only reason you don't see those costs some of the time is because you've invested a lot of time and effort learning these skills. If you abstain from all advertising for a few months, the parsing costs will become much more obvious. > every If your definition of "advert" is so broad it includes everything, it's not a particularly useful definition. Ad blockers (and this discussion in general) are talking about ads that are not the content the user requested; otherwise ad blockers would ban the entire page. [1] http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-programm…
Permit · 2014-02-21
I think there is a balance to be struck between visualizing various aspects of a program (control flow, data flow etc.) and retaining the control available to developers writing their programs as text stored in files. It does seem strange in some ways that we're still dumping text into files in 2014. A given function might interact with classes and functions defined in 10 different files, and we can only view two or three files at a time. It seems like programmers compensate by creating a mental model of their program as they try to memorize how it will execute. (The comic This is why you shouldn't interrupt a programmer comes to mind: http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-programm… I'm actually working on a plugin for Visual Studio roughly modeled off of Code Bubbles to see if it's practical to solve this problem. (http://codeconnect.io) I think text is the best way to express exactly what you want out of a program, but the way we're interacting with that text can be improved.
pydry · 2023-01-16
Onboarding is hard even as a senior. On the one hand interruption is expensive: https://heeris.id.au/trinkets/ProgrammerInterrupted.png On the other hand, spinning your wheels trying to figure out something for an hour is expensive. It's stressful deciding whether to bother someone to ask for help. Especially with limited information.
snarfy · 2023-01-03
Email is much better. Instant messaging is constant interruptions. https://heeris.id.au/trinkets/ProgrammerInterrupted.pdf
rmckayfleming · 2022-10-09
In general I agree, but if your partner isn’t used to that type of work they don’t really get it. Nor do they understand how a simple question can ruin an entire train of thought. edit: In explaining this to my girlfriend, I showed her this comic: https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program… Didn’t make any sense to her. And even after talking about this she doesn’t get that “just coming in for a kiss” is the same thing. Like I don’t want to come across as an asshole, but that’s what it looks like from the outside.
simonblack · 2022-07-17
That state has several names: "Flow" or "In the Zone". It's when you have a whole, interlocking bunch of ideas in your head at once and can visualise how they work together. It often takes an hour or more to reach that state. Sometimes many hours can pass 'in a flash' while in it. Its a common situation. And a famous depiction: https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program…
majewsky · 2022-02-07
> If it can wait, wait. Ignore it. Go back to what you were doing. You make it sound like this part is zero-cost, when it absolutely is not. This comic expresses it more clearly than I could in words: https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program…
______- · 2021-05-30
Relevant comic: `Why You Shouldn't Interrupt a Programmer` https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program… There's nothing wrong with having a loose cached copy of a program in your head. The real problem is getting distracted and having to rebuild that cache! This is why open plan offices don't really work for coding. You need as few distractions as possible, and have to be able to dial in and have laser focus and have everything else tuned out. One thing I can't forgo is music however, as it makes all your coding seem epic, and activates creative parts of the brain.
dylan604 · 2021-05-11
But this is also the cause of a lack of production. I have routinely been interrupted from what I was doing because someone just casually drops by to discuss whatever they felt like (might be work related, might not). As a developer, it takes time to get back to where you left off.[0] While working from home, those interruptions are dropped to 0. Any questions must come from some form of slack/email/etc that can all be ignored until I'm ready to look at them. [0]https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program…
greenyoda · 2020-09-20
> Also, I find myself having to take notes to come back to later. I rely on notes too. I'm not sure it's entirely due to my memory getting worse with age. It's also that as you progress to more senior or leadership roles over the course of your career, the rate at which you become interrupted by questions or meetings increases, and the number of different issues you need to juggle also increases. I use my notes as a non-volatile memory to save my current mental state so I can resume after these interrupts. If I'm coding uninterrupted and in a state of "flow", I can still remember details of my code from years ago. Cartoon about interrupting a programmer: https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program…
ludamad · 2020-05-16
Reminds me of: https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program… I think 'do not disturb' mechanisms are vital for serious programming work. There's a huge chasm between work that you've essentially done all the parts of before, and are just combining, and brand new ground (which can be a tricky bug). We might condition people around us to believe that the stakes aren't high, which unfortunately when problems require us to load them entirely in brain cache to efficiently manipulate them, our frustration is hard to communicate
100100010001 · 2019-10-16
I disagree with the “tapping on the shoulder isn’t a bad behavior”. It is counterproductive as illustrated by the linked cartoon. https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program…
Adam13531 · 2019-09-30
> Do you find it difficult to converse with folks while programming? How do you maintain flow state while streaming? (Maybe this is just a skill you pick up?) This comic (which you've probably seen!) sums up context-switching as a programmer: https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-program… Imagine that but multiplied by 100. Every 3 seconds, someone is saying something that you can see out of the periphery of your vision. How difficult it is to interact is up to you; you can hold off on chat and handle it every X minutes, you can let them interact with themselves, or you can interrupt your flow every few seconds. I try to take extensive notes about what I'm doing at any given moment so that I can always pop the context back off the stack and resume my work. It's a skill you'll hone as you go.
rumcajz · 2018-10-29
In the end this boils down to the problem of interruptions. People often discuss the topic with smalltalk and such in mind: https://heeris.id.au/trinkets/ProgrammerInterrupted.png The code reviews go more to the core of the problem. Interruptions are often necessary but, for the person being interrupted, they always suck. How much should we try to learn to multitask? Where's the boundary where it stops being useful and starts being toxic?
awshepard · 2018-08-29
joeyespo · 2018-02-24
In comic form: http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-programm… ("This Is Why You Shouldn't Interrupt a Programmer")

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close