[HN Gopher] Programmer interrupted: The cost of interruption and...
___________________________________________________________________
Programmer interrupted: The cost of interruption and context
switching (2022)
Author : jeron
Score : 125 points
Date : 2023-04-05 19:37 UTC (3 hours ago)
(HTM) web link (contextkeeper.io)
(TXT) w3m dump (contextkeeper.io)
| BrandoElFollito wrote:
| Non programmers won't get it.
|
| I am trying to explain it to my wife (using the cartoon on the
| article) but she says I am always busy.
|
| Which is probably true, but somehow she manages to interrupt my
| thoughts right when I was holding the whole heap in one hand,
| reaching for the duct tape with the other and pushing the
| keyboard with the nose.
|
| Never when I just started vscode :)
| Eugr wrote:
| Programmers is not the only profession that has a high cost of
| context switching. Scientists, lawyers, engineers, writers -
| pretty much anyone doing intellectual work would understand.
| danginmytoliet wrote:
| All that I've gathered from articles and comics like this is that
| we should quickly replace programmers with AI since programmers
| easily become unproductive and thus more expensive because they
| are easily 'damaged' by external causes. From a risk management
| perspective, why would I hire a programmer and pay them 200k a
| year when they cannot handle basic communication without becoming
| unproductive? It sounds like I'd be better off with a robot if it
| is capable of doing the same thing a human can, right?
| Programming is the transformation of human language to a foreign
| language that computers can understand. Are humans still
| necessary when robots are able to understand humans and become
| fluent ESLs?
| shinycode wrote:
| You won't use AI to replace a programmer because you likely
| wouldn't have any job left to do, meaning either your boss will
| replace you with AI or AI will replace your company altogether
| 908B64B197 wrote:
| > From a risk management perspective, why would I hire a
| programmer and pay them 200k a year when they cannot handle
| basic communication without becoming unproductive?
|
| Do you actually hire programmers (people just transforming
| detailed spec into code) at 200K/y? Or do you hire Engineers
| for 200K + Stock to transform uncertain requirements and
| constraints into a working solution? If the former, you are
| overpaying a lot.
|
| > Are humans still necessary when robots are able to understand
| humans and become fluent ESLs?
|
| Does such a robot exists?
| commandlinefan wrote:
| > Does such a robot exists
|
| No, but if it ever does, they're going to replace all
| programmers with it, regardless of their "soft skills".
| cracrecry wrote:
| >why would I hire a programmer and pay them 200k a year when
| they cannot handle basic communication without becoming
| unproductive?
|
| As entrepreneur myself, the main reason I pay someone 200K is
| because I can make this person generate more than 200k in
| profit.
|
| The fact that someone have flaws, like any human being has, is
| an opportunity for me as I can make those flaws irrelevant by
| providing the environment where a team could be extra
| productive.
|
| That means the team needs me and my company. If they were
| perfect on their own, they would not need me or my company at
| all and would be able to compete with my company.
|
| If robots could one day do the work of programmers, they would
| be able to do the work of managers and entrepreneurs as well,
| which is way easier(I am engineer too).
|
| >Are humans still necessary when robots are able to understand
| humans and become fluent ESLs?
|
| Yes, they are.
| properparity wrote:
| If an AI is ever capable of replacing a human programmer it
| would also be capable of replacing a manager and running its
| own company.
|
| So why would you even be in a position to hire anyone?
|
| In fact why are you working at all? The robots are doing
| everything already. Just sit back and relax, enjoy the matrix.
| marcosdumay wrote:
| > we should quickly replace programmers with AI
|
| Well, nobody is stopping you. Go try.
| intelVISA wrote:
| Depends, can this fabled all-knowing robot also humor facetious
| comments on HN?
| klodolph wrote:
| That's the same misconception about programming that people had
| decades ago. People thought the same thing when we introduced
| 5GLs back in the 1980s, and there was a lot of hype, and
| programming became more accessible, but demand for programmers
| increased rather than decreasing. People thought the same thing
| back when Fortran was introduced in the 1950s, and programming
| became more accessible, but the demand for programmers
| increased rather than decreasing.
|
| The trick is that you need to hire someone to come up with a
| description of the problem which is precise enough that a
| computer can handle the rest. That person is the programmer.
|
| If you're being sarcastic, it's not clear, just put a /s on the
| end or something.
| Mountain_Skies wrote:
| Same with SQL, which was promised as a way for data
| processing managers to get rid of expensive programmers as
| the managers would now be able to get whatever information
| they wanted from their databases using an easy to understand,
| English like language. All it did was change the nature of
| the job of retrieving and storing database information but
| didn't actually get rid of the programmers.
| commandlinefan wrote:
| > All it did was change the nature of the job
|
| It also created SQL injection vulnerabilities, so there's
| that.
| rqtwteye wrote:
| AI will happen anyways.
| SketchySeaBeast wrote:
| Would you fire a brain surgeon if he's not willing to stop and
| provide a consult while he's operating? There's even robots who
| are equally as capable of surgery as AI are of software
| development.
| asdff wrote:
| If I know I am going to have my day broken into sub 1hr chunks
| thanks to meetings and such, I pretty much write off the day
| entirely. It takes time to get into the flow state, some studies
| cite over 20 minutes, and once you are in it you want to stay in
| it for like four hours. No emails to follow up with, no slack, no
| zooms, no one tapping your shoulder, no conversations about the
| weekend distracting you on the periphery, just you and your task
| at hand.
|
| It's pretty ironic, because this is how a lot of people study in
| the library at college,show up and stay all night grinding in the
| flow state with your phone shut off. Yet when you graduate to the
| work place, you seldom have the opportunity to work like how
| you've been training to work for all your advanced schooling ever
| again.
|
| With respect to the article and maintaining context while coding
| for different projects, I find having a tmux session for each
| individual project super helpful.
| MH15 wrote:
| Having tmux sessions for each open task is a life-saver,
| especially in an environment where I do all my work on a remote
| server. Now I can close the laptop lid and never lose work.
| Simply reopen the ssh connection and keep going.
| asdff wrote:
| Its especially helpful for stuff where I haven't touched it
| in a while too. One alias and boom, I'm back in a session
| with a pane with my editor open, a pane with the log, a pane
| with some notes, and a pane with the shell displaying the
| last line of code I ran from when I was last working on this
| pet project over six months ago. Right where I left
| everything and I can jump back in as if I was working on it
| an hour ago.
| darkteflon wrote:
| I have a separate VS Code window connected to a dev
| container for each project that stays open for days, weeks
| or months at a time. Does the tmux approach materially
| improve upon that setup? Genuinely curious if I'm missing
| out on something here.
| asdff wrote:
| You can end up pretty deep down the rabbit hole with tmux
| and configuring it in different ways. One thing you can
| do that you might not be able to do with your vscode set
| up is have a script, written in tmux commands, that
| generates a complicated windowing environment. I am not
| familiar with the capabilities of your setup though,
| since I don't use vscode. I would guess tmux is more
| comfortable than vscode for using it with just the
| keyboard too.
|
| There's a ton written on tmux as you can imagine by this
| point. This page seems pretty comprehensive on the
| advanced features including tmux scripting:
|
| https://github.com/tmux/tmux/wiki/Advanced-Use
| thepostman0 wrote:
| Maybe, you can SSH to GNU Screen and attach where you
| were, perhaps from your phone to just read. You could do
| the same with rdesktop to something x11, but you'd need
| more than a 256MB VM for that. If you have this running
| 24x365 then you'd spend more energy/money.
| throwbadubadu wrote:
| To all above: but machines reboot, also, not? Even our
| coorp Linuxes now succumb to ugly IT update reboot
| cycles, Cloud VMs even more ephemeral, and lets not even
| start with dev containers... One can script tmux sessions
| to some degree, but still loosing a lot of state (editor
| open ther, shell history here..).
| osdoorp wrote:
| http://www.paulgraham.com/makersschedule.html
| zcbenz wrote:
| Since several years ago I was starting to have health issues that
| if I sat still for too long my eyes/arms/legs/waist would feel
| pain, sometimes fiercely. So I set a timer to remind me to stop
| staring at the monitor and stand up to do some light exercise, at
| first the timer was 40 minutes and in recent years it became 20
| minutes as my body wears.
|
| So now my work is interrupted every 20 minutes, at first the
| timer was annoying but after several months I got used to it
| completely and I don't think it affects my productivity. And
| actually I wish I could do it from the begining so I wouldn't
| have the health issues at all.
|
| However my interruption is short and during it I was uaually just
| thinking about my work while stretching my body, so it is no
| compare to hard context switches like being dragged to a
| conversation.
| ssgodderidge wrote:
| Sorry to hear about the need to take breaks; that sucks. Glad
| you're able to work around it, though.
|
| I suspect the physical exercise is key to your effectiveness
| there. There's a big difference between a pause for a stretch
| and a pause for a message about an entirely different
| workstream.
|
| Not all interruptions are created equal.
| dpkirchner wrote:
| ContextKeeper sounds interesting. Can anyone here recommend a
| similar extension for VSCode? Ideally would offer a way to stash
| and unstash code and tab metadata (cursor position, undo state,
| etc) with one IDE keystroke.
| jrockway wrote:
| This sounds very similar to Emacs's desktop-mode.
| zwieback wrote:
| My code editing style definitely has changed since the 90s when
| one-file-at-a-time without Intellisense was the norm. Jumping to
| compile errors was about the only automated thing.
|
| Now I just expect my IDEs, be it VS, VSCode, Eclipse to do a lot
| of heavy lifting for me.
|
| I wonder, though, whether I was more disciplined and kept a lot
| more context in my head back in those days. I'm also a lot older
| so I really don't want to go back to the old days.
| postalrat wrote:
| Context switching is a skill you can and will improve as you get
| interrupted throughout your career.
| sethammons wrote:
| that is one of the arguments in favor of the pomodoro
| productivity technique. For the unaware, pomodoro says to set a
| timer and do 25min of non-distracted work. Come up for air
| (mandatory stop) for 5 minutes. Rinse and repeat a few times.
| Some studies claim it takes 20min to get into the zone, but
| pomodoro insists on breaking that flow about 5 minutes later.
| The end result is training yourself to pick back up where you
| were at. I don't do pomodoro any longer but it was reasonably
| effective back when I tried it years ago.
| ipaddr wrote:
| This works..
| m3kw9 wrote:
| XCode tip: if you open a new tab, your current tab is copied to
| the new tab. It allows you to branch off from your current tab if
| you don't want to mess it up.
| m3kw9 wrote:
| You can also rename an entire tab, but it's hidden in the
| menus. Just search for rename from the help menu drop down
| rqtwteye wrote:
| We definitely need a mandatory all-team meeting about this every
| Tuesday and Thursday at 2 pm until the issue has been resolved.
| bitwize wrote:
| At one worksite I did raise the issue of there being too many
| meetings. The response was "Can we call a huddle sometime this
| week to discuss this issue?"
| lcnPylGDnU4H9OF wrote:
| "The meetings will continue until morale improves."
| ChrisMarshallNY wrote:
| Sadly, the cost of context switching is well-known, and has been
| proven, over and over again, for decades.
|
| But managers don't care (and many co-workers also).
|
| A quick shufti at most modern open-plan offices, shows the
| contempt that managers have for developer context. They know
| better, and have made the conscious decision to go open, anyway.
|
| I remember visiting the Facebook/Instagram building, in NYC, and
| was aghast at the huge, noisy, crowded office. I would _not_ be
| able to get any work done, in that environment.
|
| I'm grateful to be in a position, where I work alone (mostly), as
| I can keep all those balls in the air, and the difference in
| productivity is _amazing_.
| mrighele wrote:
| > But managers don't care (and many co-workers also).
|
| For the majority, the cost is not that well known and in
| general they are not the ones paying for it, you are.
|
| In particular for your colleagues it may be beneficial to
| disturb you because when they disturb you, you may lose
| concentration but the may in fact avoid losing it by quickly
| get an answer to their pending problem.
|
| This is one aspect where LLMs may be very useful: asking
| something to a tool like ChatGPT may not be faster than asking
| a colleague, but if it avoids ruining the colleague's
| concentration it will be a net positive for the company. This
| is even more true if/when those model will incorporate specific
| internal knowledge (code, documentation) of the company.
| whoisburbansky wrote:
| Huh, I really thought `shufti` was a typo in this context, and
| one that sounded funny to my Middle Eastern ears, so I was
| surprised to discover it's a real word, albeit with Middle
| Eastern origins [1].
|
| 1. https://en.wiktionary.org/wiki/shufti
| dangwhy wrote:
| >But managers don't care (and many co-workers also).
|
| i bet 99% of time people are interrupting themselves. Like i
| just did to browse HN.
| gleenn wrote:
| People definitely need some distractions but for me it's
| definitely not 99% of the time. Also, I could argue sometimes
| the solitaire game between coding stints is actually loading
| up your brain with some software thoughts, and then giving it
| a little break to process. Sometimes it takes a day for me to
| come back and feel like my brain has reconciled some details
| of a hard problem and only then can I make progress.
| Eddy_Viscosity2 wrote:
| A momentary distraction like a quick HN check is not the same
| as the context switching of, for example, going to a budget
| meeting while in the middle of trying to figure out some
| technical detail. Very different things.
| Turing_Machine wrote:
| Agree completely. A self-determined break is an entirely
| different thing from being interrupted by other people.
| nequo wrote:
| > i bet 99% of time people are interrupting themselves. Like
| i just did to browse HN.
|
| I don't know about you but I am here on a pomodoro break
| between two tasks.
| lordnacho wrote:
| For me it's not really to do with how much stuff is on the
| screen. It's more that when you're doing creative work, the
| intermediate state is a bunch of maybe-graphs. Maybe the bug is
| a->b->c, maybe the bug is caused by d + e -> c, etc. Once you
| find it, you know what it is and you can discard the explanations
| that are wrong. But before that, you have a bunch of hypotheses.
| Plus your mind knows that you intend to forget the details.
|
| When you're interrupted, you forget a bunch of the maybes and you
| have to rebuild them. This is because your evidence is not strong
| enough yet to have a small graph, it needs to be a big graph (or
| set).
|
| Main advice is to take small steps. Little pieces that are easily
| recoverable. Things like unit tests help to establish the facts,
| allowing you to push some things out of your own memory. Also
| take some notes to jig your memory.
|
| Sometimes you can't take small steps, because it just happens
| that you didn't consider something and now there's a large
| surface to think about. For those times, make sure you're not
| interrupted.
| omnicognate wrote:
| I actively like being distracted when I'm programming. I tend to
| approach a problem from lots of different directions, each time
| fizzling out, hitting a block or having some sort of mental
| reset, until something unconsciously clicks and an overall
| structure, understanding or solution emerges. Continually leaving
| and returning to the problem is a part of that process, so I tend
| to find someone walking up with a question rather welcome. The
| biggest and most effective leave-and-return is of course to sleep
| on it, and it's rare that I go to bed with a problem at the back
| of my mind and don't wake up with at least a new approach or
| insight.
|
| I have to be careful, though, as I'm aware most of my colleagues
| don't feel the same way about interruptions.
| inciampati wrote:
| Indeed, this seems unusual in programmer land. As evidence we
| have a thread like the current one reaching the front page
| several times a day.
|
| But your way is also my way. I am active in a very wide array
| of topics, and happy to flit between them. Sometimes I dive
| deep, but it's usually in a critical moment of synthesis when
| ideas developed over months or years come to clarity and I put
| them to action. This is working extremely well for me. I lack
| nothing and am at the absolute cutting edge in every topic I'm
| pursuing. Of course this is my opinion but it's sufficient to
| say that I'm happy.
|
| It is sad to see how many people are made uncomfortable by
| interruption. It's the stuff of life, social life at least, and
| exactly what makes being human in a dense society so wonderful.
| I feel it represents a fundamental discomfort with being in
| situations out of one's control. But, that's the core of life.
| And for me it's where all the creative energy comes from.
|
| edit: Reflecting on John Carmack and his big monitor. I
| habitually work in single window terminals with relatively low
| row counts and big fonts. I seem to be unable to get a benefit
| from seeing more stuff all at once.
|
| edit2: And in terms of getting into flow state, for me it is
| always basically instantaneous. The flow is just sitting there
| under a few seconds of pause. Of course sitting at a computer
| or phone will cause wandering distraction at times, but if work
| is in play I can start driving at full speed in what would
| typically be seen as a horrifically uncomfortable position.
| Imagine a long distance train with two children jumping on
| you... If I can see my laptop and the kids at the same time,
| I'm flowing. I think this might be neurological somehow, due to
| training or genetics. It's unclear.
| tester457 wrote:
| > It is sad to see how many people are made uncomfortable by
| interruption. It's the stuff of life, social life at least
|
| A key concept from the book "A Mind for Numbers" is the
| difference between "focus mode" and "diffuse mode" thinking.
|
| Focus mode is essentially a concentrated flow state and
| diffuse mode is a relaxed state, open to distraction and
| creativity.
|
| Both modes are necessary for effective problem solving but my
| issue is an abundance of distractions which keep most of us
| stuck in the diffuse state and no time in the focused state.
|
| > And in terms of getting into flow state, for me it is
| always basically instantaneous. The flow is just sitting
| there under a few seconds of pause.
|
| Rare, for most people it takes 20 minutes. If I get equally
| spaced out distracting emails I will spend no time in the
| flow state at all.
| kosasbest wrote:
| It's the shadow work of programming I never liked.
|
| - Setting up boilerplate code
|
| - Configuring my IDE
|
| - Configuring special browsers (for web development) with no
| addons or tweaks done so it appears like an average person is
| using the browser
|
| - Configuring the OS
|
| - Separating work from play. Keeping separate machines strictly
| for programming
|
| - Tests
|
| - Reading best practice material
|
| - Researching if other people have written the exact same thing
| as you and uploaded it to GitHub (or don't repeat what other's
| have coded already).
|
| All that can be set-and-forget but I periodically have to do it
| all again because requirements change, or I get a new machine or
| I simply want to re-configure my development environment for
| minor (or major) gains in productivity.
| dariusj18 wrote:
| And what's worse than all of that, is if a company tries to do
| it for you.
| frereubu wrote:
| Now I have a family I often can't choose the end of my working
| day so it coincides with a natural break in my work. In those
| circumstances, when I know they're going to arrive back in less
| than 30 minutes, I stop working and do a brain dump of everything
| that's going on in my head into a plain text file. With that I
| can pick things up much faster the next morning. I've even
| started doing it during the day when both my wife and I are
| working from home and we're about to have lunch together. I'd
| seriously recommend it.
|
| It somewhat reminds me of this Hemingway quote "You read what you
| have written and, as you always stop when you know what is going
| to happen next, you go on from there. You write until you come to
| a place where you still have your juice and know what will happen
| next and you stop and try to live through until the next day when
| you hit it again." I think there's an art to stopping at the
| right time, even if it's within constraints that aren't in your
| control.
| dmcq2 wrote:
| At a job I had they wanted me to install an instant messaging app
| on my compute! I refused point blank. I said they could email me
| and I'd look at he email every so often. If it was really
| important they could get up and walk to see me. If it wasn't
| important enough for others to walk then it definitely wasn't
| important enough to interrupt me. Before that I was at a place
| where they had tannoys. I moved the tannoys away from me but they
| were still annoying. I tried showuing that they were losing the
| place millions. It would have been far cheaper to have somebody
| employed to walk around looking for people. They only got rid of
| them when marketing got in and the first thing they said was to
| et rid of the tannoy.
| m3kw9 wrote:
| I get big screens but multiple screens gives diminished returns
| vs tab/spaces switching. Laying out the windows across different
| screens is always a pain in the ass
| mattferderer wrote:
| I don't disagree but...
|
| If you're having a huge issue with this, I suggest trying to find
| ways to hold less context at one time.
|
| Write stuff down & get it out of your head more often. Write down
| all of your ideas & break down your tasks into smaller tasks.
| Don't try & solve a giant problem all at once without writing
| down what you're going to do. You may also discover issues
| earlier.
|
| It doesn't get rid of the issue 100% but it helps a lot. I say
| this as a dev who has to do a lot of context switching.
| Casteil wrote:
| >If you're having a huge issue with this, I suggest trying to
| find ways to hold less context at one time.
|
| For many who experience this regularly, that basically means
| leaving/finding a new job.
|
| With many employers, it's very difficult to escape being spread
| thin once you've proven your competence and they lean on you
| hard as a result.
| dagorenouf wrote:
| I view coding as creative work not that different from writing or
| drawing. Sure there are techniques and rules to follow, but to do
| great work you need to get in the flow of things until your
| creative brain figures stuff out on its own. It takes time to
| warm up and any interruption destroys the momentum you had. I put
| my phone on airplane mode for most of the work day because of
| this.
___________________________________________________________________
(page generated 2023-04-05 23:00 UTC)