top | item 40155713

Fragmented thinking is a bigger threat to flow state than interruptions

386 points| nickwritesit | 1 year ago |blog.stackblitz.com

163 comments

order
[+] sanderjd|1 year ago|reply
I think the primary point here is that interruptions don't only happen externally, but also internally. I think this point is a bit obscured by the article's use of this "fragmented thinking" terminology, which it does not do a good job of defining before building an argument on top of it. (I found myself searching for those words to see if I had missed the definition.)

However, I do think this is an insightful point! I think these "internal interruptions" are indeed a big problem for me, and one I don't think about nearly as much, but will try to more now that I've read this article.

The frustrating thing about external interruptions is the inability to control them. Things like turning off notifications and putting on headphones are mechanisms to reduce that frustration by imposing control over those interruptions.

The good news for these internal interruptions is that it should be much easier to control them. But it requires being aware of the problem! So I'm thankful to this article for making this more top of mind for me.

[+] justinpombrio|1 year ago|reply
> The good news for these internal interruptions is that it should be much easier to control them.

For a long-time meditator, this is comedic gold. Just control your internal interruptions, stay focused. That's all, eh? Hehehehehe

[+] erikerikson|1 year ago|reply
Yes, the headline term was never truly defined for use. Past the headline it didn't get used until almost half way through and then assumed you knew what was meant by it. Only near the end were there hints as to what the writer was referencing.

Good job pulling out a very plausible interpretation though. We talk about this in our dev meetings and attempt to proactively identify and resolve sources. Having well defined and coherent contexts improved our work and the emotional experiences of doing it. This has been helping me recapture the joy of coding.

Shouldn't have taken starting a company fellow business leaders.

[+] Tainnor|1 year ago|reply
> The frustrating thing about external interruptions is the inability to control them. [...] The good news for these internal interruptions is that it should be much easier to control them.

Interestingly, I feel the exact opposite. I'm aware that it's not always possible or socially acceptable to do so, but at least in theory you can always make a choice to ignore or tune out other people. Ignoring the stuff that is going on in your own head is IMHO much harder.

[+] justanotherjoe|1 year ago|reply
I am under the impression that its harder to control internal interruptions. Like the quote from st.augustine, 'the mind commands the body and it obeys. The mind commands itself and meets resistance.'
[+] hinkley|1 year ago|reply
I spent a long time thinking about why I always end up being the guy that people feel comfortable interrupting. I’m never the nicest guy in the office, I’m not always the cleverest, especially when I’m trying to do something else. But I do seem to recover better from external distractions than most people.

Mostly because my life is a constant struggle against internal distractions, so my coping mechanisms are more evolved.

[+] tonyarkles|1 year ago|reply
> I think this point is a bit obscured by the article's use of this "fragmented thinking" terminology, which does not do a good job of defining before building an argument on top of it.

I totally agree with you that the article didn't explicitly define it, but I had the opposite experience reading it. For me, sans definition, could very quickly imagine what they were talking about because it started resonating for me almost immediately.

> The frustrating thing about external interruptions is the inability to control them. Things like turning off notifications and putting on headphones are mechanisms to reduce that frustration by imposing control over those interruptions.

This is partly why it started resonating for me right away. I currently share a semi-private office with another senior engineer. Lately he's been spending a good chunk of his time working on higher-level systems planning work and I've been spending most of my time working on very specific complex low-level work. The questions are sometimes frustrating because they'll interrupt my flow state, but... only sometimes. I've been chewing on that for a couple of weeks now, actually, because I hadn't yet figured out why he could sometimes ask me questions and it would have almost zero effect on me while other times it would have a massive negative effect.

The article nailed it, on reflection: the effect size of being interrupted with a question, for me, is proportional to how far away from the problem I'm working on is. If I'm digging into some of the autopilot code and get asked a question about GPS or IMUs, it is absolutely no problem to think about the question and answer it. If, though, it's a question about, say, a battery or the charging system, I'll get the "black cloud evaporating" phenomenon from the comic in the article. And it happens so quickly that by time I can even just answer "sorry, I don't have brain capacity to think about that right now" it's too late.

[+] sesm|1 year ago|reply
Regarding internal interruptions, classic Pomodoro technique (the one with a kitchen timer and a sheet of paper) deals with them this way: there is an 'interruptions' section on the sheet, and whenever an interrupting thought occurs, it's written down to that section and a dot is put above current Pomodoro. This way one is confident that no important ideas are missed and also can track the number of interruptions per Pomodoro.
[+] wuj|1 year ago|reply
Tying this to one of the author's arguments: Many internal interruptions occur because of the type of work we are doing is not right. I find myself distracted when my task is too complex, vague, or limiting. The task needs to have the right balance of difficulty and creativity to make it "flow-statable".
[+] bdjsiqoocwk|1 year ago|reply
I agree it's an insightful point, I just wish there were more examples. As far as I can tell there's one single example, the commit message.
[+] aantix|1 year ago|reply
I use Cold Turkey to block my habbit of scrolling time-wasting sites when I should be reflecting harder on what it is needed to solve the issue at hand.

https://getcoldturkey.com/

It's almost like I need some mental space, to meditate on the solution, but that feels exhausting, so I choose sometimes to mindlessly scroll.

Any other tools that I may be missing?

[+] Swizec|1 year ago|reply
> The good news for these internal interruptions is that it should be much easier to control them

Just get good sleep, great nutrition, enough exercise, and remove all stressors from your life. How hard can it be!?

Yes really that’s the source/cause of most internal distractions.

[+] voidhorse|1 year ago|reply
I think this is one reason why doing your design work on pen and paper in a quiet place, before you sit down to write any code, can be a game changer. Thinking on the fly and trying to keep a bunch of state in your head is difficult. Mathematical notation is super powerful and there's a reason it exists—use it!

I also find that some programmers' bad habits naturally lead to "fragmented" thinking or lack of sustained focus. A lot of beginning programmers I encounter are sort of like information mice. They have some specific problem that they need a quick answer to, so they hunt around and scavenge for it, skimming various resources like crazy until they find it. While this works for basic, entry-level work and tasks, the same behavior is a complete achilles heel as you progress in you career and have to solve more complex problems. It teaches you to abandon detailed, sustained, focused thinking and building of deep understanding—the kind that allows you to solve problems in a novel way—for a mode of consumption and thinking that is shallow, fragile, and built upon expectations of instantaneousness and immediate gratification. I realize that having the time not to settle for scavenging is sometimes a luxury, but resist the impulse if you can!

[+] janandonly|1 year ago|reply
I don't think that I have ADHD, but at times I just have to re-read a sentence a couple of times to grasp its meaning. Or rewind 30 seconds in a podcast or audiobook to listen again.

If this happens too many times in a row, I assume I'm tired, so I switch to a more manual task (like doing the dishes).

I remember times when I just had to study at that moment. I would force myself to re-read sentences until they made sense. I would rephrase the sentence or read the same sentence in another language that I know, until it made sense. I could spend the whole afternoon focussing on just a few pages. But I think it was a good exercise. I think focus is like a "muscle" that can be trained a bit.

[+] Sleepful|1 year ago|reply
You can be diagnose with ADHD for any number of circumstances, the ADHD diagnosis is not based on a specific cause, only on specific symptoms, it doesn't matter where the symptoms come from exactly (circumstance? nutrition? neurodivergent in the wrong environment? etc).

I feel the same way you do. Something else to take into account:

A lot of people are just mediocre at explaining themselves. This is fine because sometimes the information they have is good, the medium of communication is shabby, but we can still do an extended effort and look past the medium in order to get to the information. The point being, if someone is really adept at communication then you might find yourself focusing on really complex topics with ease, because it is engaging and nicely laid out. OTOH if I hand you an IKEA manual to build a simple vase but the scribbles are tiny and confusing, you will be like "Woah this is so difficult to pay attention to!".

[+] simple10|1 year ago|reply
Happens to me sometimes too. And I don't have ADHD after testing. Choline and other focus related supplements helped a bit. Aggressively trying to reduce anxiety helped more than anything. Anxiety disconnects the "now" from the "goal" states and can massively disrupt concentration.
[+] StefanBatory|1 year ago|reply
Could be anxiety, could be bad habits. If it's possible, better to go to ask to specialist just in case - not much to be lost, and you gain internal peace.
[+] ChrisMarshallNY|1 year ago|reply
This was an excellent article.

However, I would add one practice to the things we can do, to reduce fragmented thinking. It's probably the oldest trick in the book; thousands of years old.

Create structured habits.

This is what musicians do, when they practice scales, endlessly, or artists do, when they are constantly doodling (I have done both).

When something becomes habit, we no longer think about it. It becomes "muscle memory."

There's a bunch of habits that I employ in my own work, and I feel that they pay off. To go into more detail would take more work than I feel like doing, now (I really need to get back to writing, but have gotten out of practice).

"We are what we repeatedly do. Excellence, then, is not an act, but a habit."

- Mis-attributed to Aristotle

[+] hn_user82179|1 year ago|reply
> There's a bunch of habits that I employ in my own work, and I feel that they pay off. To go into more detail would take more work than I feel like doing, now (I really need to get back to writing, but have gotten out of practice).

I'd really love to hear at least at a high level what sort of habits have helped you, if you have some time in the future

[+] Too|1 year ago|reply
54% of developers find that “Waiting on answers to questions often causes interruptions and disrupts my workflow.”

Isn’t this ironic? We are not allowed interrupt for questions, yet we find that the delay of waiting causes other interruptions.

Designing systems and documentation to avoid question thus becomes a double win-win.

[+] TeMPOraL|1 year ago|reply
This explains the success of StackOverflow: don't have to wait on your colleagues or even your own investigative work, the answer is usually a Google query away.

This also explains the success of ChatGPT in dev work: StackOverflow is still too much bullshit to deal with. LLMs strip that all away. It's such a big difference it's worth risking being led astray by hallucinations.

[+] Aeolun|1 year ago|reply
I’m sure I’ve read this as one of the success metrics in the Phoenix Project. Every time a ticket needs to go back to the original owner is a failure.
[+] samatman|1 year ago|reply
The example of writing a commit message breaking flow state is an interesting one, which ties flow to a related word: fluency.

For the first year or two of using git, I treated it as an undo buffer, with a nice bonus that I could try things out on distinct branches. Commit messages were frequently pro forma, because I wasn't thinking in terms of units of change.

There are still projects I approach this way, "latest firmware" is all I really need if I'm changing things around on my keyboard firmware, for instance.

But with a bit of mentoring several years ago, at a job with expectations for how git should be used, I've come to think of changes to a codebase in terms of a commit. I'm not just writing software, I'm writing a commit on a specific branch.

So writing a commit message doesn't take me out of my flow, because it's part of it: that's what the work was flowing towards. I don't let git drive the work, so there are definitely commits of the form "add $specific-thing\nAlso (minor bugfix/change)", but every time I'm working on a complex project, it's toward a specific commit-sized goal.

I'd love a revision system (probably based on pijul) which created a patch every time I save, which I do every minute or so. With a tool which removed patch lines which never show up in the final diff, and displayed the total change in a way which makes it easy to pick those unrelated changes off into their own patch, so I could break the commit into logical pieces. I wouldn't need it often, but when I'm working on something specific, and I see something else which is wrong, or just easy to change, it would take me out of flow to, idk, write it on a Post-it and do it after the commit is fixed. But commits with unrelated work in them create a sense of creative disorder, one which I would happily take a minute to resolve if the tool made it easy.

[+] vladxyz|1 year ago|reply
That's pretty much how I use git. My text editor auto saves, I work on a task, doing refactors, or throw away wishful code along the way. When I feel like I'm at a good point for a commit, I repeatedly use `git status`, `git diff`, and `git add -p` to split the sum of changes into a reasonable set of commits. A commit does not need to be all-or-nothing.
[+] kubanczyk|1 year ago|reply
martinvonz/jj - it's primary use case is as you've described, while using git as backend (i.e. other devs can still use git). But it's line-oriented, non ast-oriented.
[+] sirsinsalot|1 year ago|reply
It's good to see a rising awareness of and language around executive function.

As an ADHD sufferer the more talking about executive function we have, however rigorous, is a path to being able to talk about neurological issues causing executive dysfunction like ADHD.

Extreme fragmentation of thought and constant internal disruption is my default and often only state.

[+] hakanderyal|1 year ago|reply
This article perfectly describes what I usually go through when working. Well written. My most productive days are when I'm in the flow for 5-10 straight hours. Which only happens if I prepare both internal and external conditions to my satisfaction.

Then, after reading the comments in here reminded me there is a lot of nuance to how one does software development. There are wildly different ways to achieve the same end result.

[+] heisenbit|1 year ago|reply
Let's face it: Interruptions happen and what is worse I'm not immune interrupting others. While we can and should strive to influence the environment to provide and protect flow state we also need imho. care about something else: Recovering flow state. Having notes laying out key milestones beforehand and capturing intermediate results at least for me make a big difference.
[+] parpfish|1 year ago|reply
it’s unfortunate that the times when you need the flow state to focus on an urgent problem are also the times when you’ll get hit with a deluge of distractions (from automated notifications and panicking managers that don’t know what to do other than asking “is this fixed yet?”)
[+] simple10|1 year ago|reply
Main takeaway: write more documentation and end your day by updating the documentation (reflecting).

At least that's how I read the article. I've personally experienced a significant benefit from changing my software development habits to always writing documentation first. A sort of hybrid TDD approach where I try to stub everything out in either comments or tests before writing code. It's just a shift in viewing the documentation as a critical part of the end product. The goal being to create great documentation that happens to also have functioning code vs the other way around.

This approach is especially useful for entrepreneurs who also code. As long as I have good documentation, I can replace myself as a developer pretty easily. But if I just write code and no docs, I'm effectively just building technical debt.

[+] JonChesterfield|1 year ago|reply
Thinking incoherently can definitely cause more problems than being repeatedly interrupted.

Concluding that the interruptions aren't so bad is consistent with this observation.

It does not generalise to all developers.

[+] godelski|1 year ago|reply
I think it's a bit much to generalize this. I imagine it's different for each person and there's nuances.

But with respect to working, I like to have an office with a door. The reason is I can mute slack and notifications and close the door when I'm in deep thought. The thing is that a physical door tends to do a good job at making people think more before interrupting. But doors are increasingly uncommon. WFH also is an alternative. I do like being in the office more but I'd rather WFH than be an an open noisy environment where there's constantly people walking through my pereferial and will talk behind me when I have my headphones on so I don't know if they're trying to talk to me or someone else. At least at home I can turn up the music and the main interruption is my cat doing something silly which makes me laugh and isn't that distracting.

[+] hgomersall|1 year ago|reply
Pink noise with noise cancelling headphones. I often find myself emerging from a zombie like state wondering what has gone on around me for the last 2 hours. I actually don't use it enough because I find it too all enveloping.
[+] kstenerud|1 year ago|reply
Sorry, but this just sounds like a bunch of hogwash.

Extraordinary claims call for extraordinary evidence. You see a lot of references to studies, but take a moment to actually follow the links and see what the studies say. Then come back and look at his many conjectures.

The reason why "internal interruptions" occur is because you get tired and your mind wanders. That is your cue to TAKE A DAMN BREAK! We're not machines. Trying to optimize your "flow state" is a fool's errand. Just keep a healthy, distraction-free work environment and work with what your body allows.

And it's not the scheduled interruptions such as meetings and such that destroy flow; it's the unscheduled interruptions. So if you don't want to be prematurely pulled out of your flow, make sure you keep your schedule in your mind, and do whatever you can to ensure that nobody interrupts you on a whim.

And if someone does, it's not the end of the world. Rebuilding the state in your mind is a LOT easier the second time than the first! If it happens too often, bring it up with the boss.

Also: Flow is not necessary or even desirable at all times. Many times you just want to be out for a walk while your fabulous brain rekejiggers things in the background. Or just walk away from it so that you can come back and look at it from a different perspective! Or have a chat with concerned persons to make sure the design makes sense. Flow isn't the answer to everything (or even most things).

Flow is not something to optimize or life hack. My advice after 30 years in the industry is: Just do your job adequately. No one at your funeral is going to eulogize your work performance.

[+] ec109685|1 year ago|reply
This seems overly harsh. Poor development environments, documentation that takes too long to find anything, annoying code practices, etc. are all ways to snap yourself out of of flow.

The point of the article is that you should examine what keeps you in flow and what knocks you out, and optimize for the former.

[+] calmworm|1 year ago|reply
One can rarely “schedule” flow so when a scheduled meeting interrupts flow it’s still an interruption.

Additionally, anecdotally, I don’t work for anyone if/when I’m developing but I still very much appreciate the moments of flow when creating. Why bash it altogether? Seems a strange take.

[+] hobs|1 year ago|reply
It's rare, but I have done it twice. The thing is it doesn't matter if I say nice things at your funeral, you're dead, work less.
[+] robocat|1 year ago|reply
> My advice after 30 years in the industry is: Just do your job adequately. No one at your funeral is going to eulogize your work performance.

Maybe nobody cares about your work, but there is one person that should care: you.

You are already devoting your time to work, so why not make sure that you get some satisfaction from it. A massive pay increase for something that your bosses can't take from you.

Watch any good tradie or professional, and discover what pride they get beyond the dollars paid to fix your tap or wipe your arse.

I look back on work I have done with pride. There is no-one with enough knowledge (only me) to judge the qaulity of my past work (especially because much of it was not part of a development team). Like most work done by most people, the work I have done in the past is now worthless e.g. superceded by other systems. I haven't built monuments. Only I can judge the work I have done.

[+] permo-w|1 year ago|reply
is this really an extraordinary claim, though?
[+] hoc|1 year ago|reply
Even movies say: Opening invoices and final notices just keeps you from evolving into the hero that you're destined to become.

Bad interpretation: Keeping the flow at any cost might make you drown.

The whole productvity thing seems much more complex situation-wise, and still it boils down to keeping it up.

Everything that nudgingly reminds you of that seems helpful. If it's a person, you even can hate them for it. A little bit at least.

[+] calmworm|1 year ago|reply
“63% of developers report that searching for answers and solutions takes at least 30 minutes per day.”

I find this funny because I imagine the question was just “do you spend at least 30 minutes per day searching for answers…” which makes it seem like a lot less time is used than what is actually being used searching for solutions.

Searching for answers is, in itself, a state of flow at times.

[+] anonzzzies|1 year ago|reply
My happiest time is when I start seeing code all day and in my dreams. I still have that after 40 years of coding if people don’t bother me and it makes me very happy. So for the coming 4 months everything is shut down for my new project. Only way I found to shut off both external and internal interruptions.
[+] iamleppert|1 year ago|reply
This article itself was written by someone with fragmented thinking. It feels like it was written by AI or just a stream of consciousness. Way too long, could have been a few paragraphs to basically make the points, that aren’t backed up by any sort of evidence.
[+] qprofyeh|1 year ago|reply
I find that flow state is sometimes mind numbing. Taking a shower gives me more creative ideas.

But visualizing any system or only a partial system on paper, makes a huge difference. Added bonus, pen and paper cannot be interrupted.

Need to learn Mermaid one day.

[+] andyferris|1 year ago|reply
Yes.

I find Mermaid and markdown is a decent replacement for writing, and Excalidraw is a decent replacement for whiteboarding / doodling. Mermaid is too slow for exploring ideas though, IMO.

[+] acureau|1 year ago|reply
Am I the only one who isn't super off-put by interruptions? I don't forget what I was thinking about so quickly, and if I'm thinking through something complex I work it out on paper.
[+] demondemidi|1 year ago|reply
No you’re not. I too am able to handle interruptions. I find this discussion to be largely exaggerated. Flow / zone are documented but to the extent young developers belabor their prima Donna needs it becomes more of an identity.