News for hackers. Stuff that matters.
Re:Why interruptions are frustrating to developers by dahfizz on Friday May 28, 2021 @11:06AM (#27316260)
Something really annoys me about developers acting like we are the only people on earth who have to think and focus to get work done. I'm not convinced programming is sufficiently different from any other skilled job.

Whining about how your "flow state" can't be interrupted because of how extraordinarily creative and artistic you are is just pretentious.

Re:Why interruptions are frustrating to developers by whatshisface on Friday May 28, 2021 @11:17AM (#27316391)
You're right, and that's why whenever I want really good legal work done, I make sure to walk in to my lawyer's office every five minutes to ask him about articles I read on CNN. I think white-collar professionals work best in an environment with loud noises and constant interruptions, with the exceptions of sales and business development who need to be kept in a state of silence and isolation.
Re:Why interruptions are frustrating to developers by foxyv on Friday May 28, 2021 @11:28AM (#27316538)
Don't forget to send him messages on Slack, marked as important, talking about stuff like Yoga exercises and the importance of taking breaks.
Re:Why interruptions are frustrating to developers by mgkimsal on Friday May 28, 2021 @02:18PM (#27318741)
Had an attorney doing some work for me a while back. Emailed 3 emails over 3 different days - wasn't hearing back after the first, so I emailed again, etc.

I was told they couldn't work well with constant interruptions like that. WTF? Probably was an extreme ... something going on on their end, but... wanting/needing some answers and waiting 4 days was, to me, being rather patient.

Re:Why interruptions are frustrating to developers by whatshisface on Friday May 28, 2021 @03:04PM (#27319243)
Well, it's impossible to tell one way or the other without knowing what those questions were, and also how many other people they needed to answer questions for.
Re:Why interruptions are frustrating to developers by mgkimsal on Sunday May 30, 2021 @07:13AM (#27332380)
Sure but “I’m busy and will get back in touch next week” would have sufficed.
Re:Why interruptions are frustrating to developers by 100011_100001 on Friday May 28, 2021 @03:17PM (#27319389)
I have been working since I was 13, since you said "skilled" I will count QA, Project Manager, Sr Manager, Developer, Dev Lead only.

Development for me has the highest cost for task switching. The ramp up also takes longer. If I have 15 minutes before a meeting and I have not started writing code, I won't even bother starting.

If I compare that to being a Sr Manager, the cost of task switching is much lower, so was the ramp up time. Essentially it was a "let me get my notes, or the doc/email/presentation" and then I was set. That's maybe 1 minute.

I think the biggest difference is that as a developer you either have to come up with something that doesn't exist, or you have to read something that someone wrote that has never existed before and then you have to figure out what the mistake was.

The closet thing that resembles that for non developers is other abstract sciences, like Math, Chemistry, Physics or purely creative writers.

So imagine you are a creative ghost writer. You are asked to write Chapter 8 of this fantasy book. By the way Chapter 7 and Chapter 9 exist. Your writing has to match the style of chapter 7 and 9, including character names. Chapter 9 was written 16 months ago, and the guy left. Chapter 7 was never edited, but it will while you are working on chapter 8. You also wrote chapter 5 a month ago, but since then 4 other authors have updated chapter 5 to make it better. Do you think interruptions would help or hurt?

This is why developers complain about losing flow state. The cost of getting it back it too high.

Re:Why interruptions are frustrating to developers by deepsun on Friday May 28, 2021 @11:08AM (#27316282)
Many other professions react strongly to interruptions. E.g. from what I know: writers and mathematicians react even strongly.
Re:Why interruptions are frustrating to developers by pc86 on Friday May 28, 2021 @11:10AM (#27316314)
The difference is that writers and mathematicians aren't typically expected to stand up every morning and explain to their colleagues and a manager who never did their job what they did yesterday, what they will do today, and what their roadblocks are. They're given a task and allowed to work for days, weeks, even months, with little or no interruption and largely self-guided.

They're also not typically creating things directly that provide as much business value as developers are.

Re:Why interruptions are frustrating to developers by hinkley on Friday May 28, 2021 @12:08PM (#27317131)
You can interpret Hemingway’s writing process such that he really could tell you what he did yesterday and what he’s going to do today.

Not that I’m particularly fond of this current incantation of Agile.

Re:Why interruptions are frustrating to developers by sirsinsalot on Friday May 28, 2021 @11:26AM (#27316507)
They also arent creating output that has to be simultaneously harmonic with other peoples work in an often quickly changing landscape.
Re:Why interruptions are frustrating to developers by whiddershins on Friday May 28, 2021 @11:27AM (#27316527)
I hear you but I almost feel like culturally people have an inkling that writers and musicians need flow state.

No one is expecting an NBA player to respond to texts during a game.

I think programmers bring this up because they think people aren’t aware that their flow state is a thing, too.

Re:Why interruptions are frustrating to developers by hinkley on Friday May 28, 2021 @12:15PM (#27317226)
When you watch these reality shows built on the British Baking Show paradigm you can see how hard the contestants are often working to be polite during the mini interviews. Many are clearly thinking “get that camera out of my face and stop interrupting me, asshole!”
Re:Why interruptions are frustrating to developers by amelius on Friday May 28, 2021 @11:20AM (#27316441)
The point is that the people who barge in and do the interruptions usually don't have jobs requiring "flow state" and therefore have no understanding of its value.
Re:Why interruptions are frustrating to developers by aequitas on Friday May 28, 2021 @12:04PM (#27317073)
Sometimes the job of these people is actually to barge in, interrupt and strike up a conversation, eg: sales. For them, having smalltalk (building a relation with a customer) is being productive.
Re:Why interruptions are frustrating to developers by Fordec on Friday May 28, 2021 @02:48PM (#27319100)
Barge in to a client meeting when they're trying to close a deal to talk about the latest Marvel movie. I'm confident the sales person will get frustrated with your actions real fast.
Re:Why interruptions are frustrating to developers by amelius on Friday May 28, 2021 @01:12PM (#27317999)
These people need to learn that there is a time and place for everything.
Re:Why interruptions are frustrating to developers by screye on Friday May 28, 2021 @03:30PM (#27319531)
> Whining about how your "flow state" can't be interrupted because of how extraordinarily creative and artistic you are is just pretentious.

Either I am doing something wrong/I'm stupid or not all coding jobs need the same kind if deep work.

Because more than 90% of my individual technical work requires me to be in a flow state. It takes a good 30 minutes to hold a really large thought in mhead, and I can't start coding until I feel like I'm mentally present.

Now I have actually done different jobs too. I have presided over clubs in school, I worked as a mechanical engineer for a while and I used to write comedy scripts for dramas. None of them required flow state to the same degree.

Math derivations required an even higher flow state, and that's the only exception. I mentioned writing scripts. It actually requires a flow state, but it is more like pair programming and a group activity, so if you lose context someone will quickly bring you back to where you were.

Maybe other roles are more easily chunkable or people just don't care about making sure that their work doesn't have side effects or how it fits into the whole. But, I've found this one complaint by developers to be quite genuine.

__________

One thing that has worked is to write down entire interfaces, contracts and explicit steps before I even start. This step absolutely needs deep work and usually take 7-8 hours at a time.

However, once it is done, you can address each step or class as if it is somewhat side effect free. As a tangent, this is also why I hate using classes when state doesn't exist. A function allows for so much better side-effect free mental compartmentalization than instance methods.

Re:Why interruptions are frustrating to developers by fouric on Friday May 28, 2021 @11:40AM (#27316723)
How is this comment at all related to parent article? It isn't written to make programmers seem unique at all, and in fact explicitly states "Flow is not a concept unique to computer programming".
Re:Why interruptions are frustrating to developers by kolbe on Friday May 28, 2021 @11:38AM (#27316692)
Something that really annoys me about hacker news commenters is that when someone says "this is why X bother developers," they write comments that claim the statement was a claim that X exclusively bothers developers.
Re:Why interruptions are frustrating to developers by mjburgess on Friday May 28, 2021 @11:13AM (#27316345)
The distinction is that almost all of that work is purely cognitive, and it is very asocial / individual.

This is fairly unique. If you're painting a big oil painting, yes you need similar kinds of isolation to get it done. BUT you aren't really maintaining a deep conceptualisation of the whole thing in order to paint. Rather you can "let the canvas remember most of your thinking": ie., the painting is its own schematic, by the means of layering & outlining it.

Also, in social-creative work "flow states" arise more naturally. I think people working with people, on the whole, enter flow states. It's why managers struggle to see the issue with asocial-creative work.

The issue here is code by itself is nothing like a dress or a canvas: it doesn't encode much of our thinking. We have to rebuild an interior world when we encounter it.

It is for this reason "literate programming" is almost certainly an excellent way to program -- absent almost any tools or popular sentiment in support of it.

Code can be written more like paintings are painted, ie., "self-documenting" -- but this is very hard to do well.

Programming with jupyter notebooks, I'd guess, is more resilient to interruption -- it is more like making a dress or painting a painting. Yes, you need isolation and quiet -- but an interruption neednt be so fatal. You write in your thought process as part of the activity of making the code.

Re:Why interruptions are frustrating to developers by ethbr0 on Friday May 28, 2021 @11:33AM (#27316601)
I think the fundamental challenge of coding isn't that different from many other professions (to agree with GP's point).

What is rarer is the moment of effective effort's nature, for many types of coding (to agree with your point).

The author's house of cards analogy trivializes it and makes it easier to dismiss as a rhetorical device. I'd use activation energy as a more apt comparison.

IOW, if you put in 30 minutes (or 3 days) understanding code, and do not make the correct 5 minute addition / change at the end of that, all that previous time is wasted. And moreover, that knowledge has some half life in my head, after which it must be reacquired.

And that correct addition / change cannot be made without first paying that cost.

This is not unique to coding, but is generally limited to professions involving the modification of dynamic complex systems. E.g. legal, biological, mathematical.

And I'd hazard to say of those, programming has a wider universe of possible approaches (aka "Why did the last person? Oh... Oh. Oh no."). Legal is probably the closest analogy.

Re:Why interruptions are frustrating to developers by mjburgess on Friday May 28, 2021 @11:50AM (#27316881)
Well I think painting (or composition of any type) is a category of activity whose instances are all fairly alike: theory-building, mathematical modelling, painting, programming.

But the question is where do the differences lie. My hypothesis for one difference is that we dont write code like painters paint.

That is bad. We should. Hence my advocacy for literate programming.

It isn't to be dismissive of painting, it is to say we put ourselves in a more precarious position by how little we support ourselves with our tools.

Painters (, mathematicians, etc.) are all working with pencil-and-paper in quite a radically different way.

I think this goes some way to saying, actually, there is a bit of a difference here.

Re:Why interruptions are frustrating to developers by ethbr0 on Friday May 28, 2021 @01:02PM (#27317854)
It's a memoisation [0] problem: how completely does a professional store effort-expensive, intermediate results?

Doctors and nurses, who also deal with complex systems, have gotten exceedingly good at this with charting.

We? Considerably less so. But I'd hazard improving every year.

Reduction of boilerplate and flexibility-for-the-sake-of-flexibility in languages has been a big win, IMHO.

[0] https://en.m.wikipedia.org/wiki/Memoization

Re:Why interruptions are frustrating to developers by mjburgess on Friday May 28, 2021 @01:06PM (#27317912)
Re:Why interruptions are frustrating to developers by cnra on Friday May 28, 2021 @11:32AM (#27316595)
Ridiculous that this thoughtful post is down-voted.
Re:Why interruptions are frustrating to developers by slingnow on Friday May 28, 2021 @11:45AM (#27316803)
It might be thoughtful, but it is incredibly dismissive of what it takes to be creative in other disciplines, i.e. painting. It effectively reduces the work of the artist to simply the state of a canvas. As if what's on the canvas encompasses the entirety of what it means to be an artist.

In my limited experience in the creative realm (music), it takes an incredible amount of flow and concentration to get a thought or feeling out of your head and into some form of recorded medium. I can't just stop cold, wake up the next morning, listen to what I was working on and pick up where I left off. The creation is a product of a fleeting experience that can't easily be recreated.

Re:Why interruptions are frustrating to developers by mjburgess on Friday May 28, 2021 @11:56AM (#27316957)
If you look at my recommendation it is that programmers should program more like how painters paint. I don't think it's a virtue to have to hold everything in your head.

Programming, as practiced, is distinct from painting -- but this has more to do with the practice of each. Programming tools do not afford the same ability to externalise thinking.

Fundamentally, they are built to run the code. Not to assist the programmer.

Jupyter notebooks are, here, a notable exception.

Re:Why interruptions are frustrating to developers by amozoss on Friday May 28, 2021 @01:26PM (#27318170)
Author here: Thanks.

I actually spent 6 hours on Saturday writing it and another 4 to 6 other days getting it to where I was happy with it. So I appreciate the kind words.

Re:Why interruptions are frustrating to developers by OnlyOneCannolo on Friday May 28, 2021 @02:22PM (#27318792)
Anecdotally, I've noticed that management tends to consider interruptions more acceptable for anything related to web development. It's usually not as bad for the web dev team to slip their schedule as for the hardware team or the legal department or whatever, so interruptions happen more often. I was briefly embedded in such a team and that aspect drove me nuts. You really have to enjoy being essentially a point of contact as part of the job.
Re:Why interruptions are frustrating to developers by amozoss on Friday May 28, 2021 @11:52AM (#27316903)
Author here: Whining wasn't my intention. In fact, 2 of the 4 tips I gave was how I protect from interruptions from myself. My intention was to illustrate that context decays over time, so it's important to either record context as you go or help yourself stay focused for longer periods of time by removing the things that distract you the most (twitter, HNs ;)).

Edit: fix a typo

Re:Why interruptions are frustrating to developers by amozoss on Friday May 28, 2021 @07:56PM (#27321898)
Author here: I agree that what you're describing, if developers act that way it is really annoying.

My intention of the article was to give a good visual of the complexity that gets built up while coding and some tips for how I've helped myself focus better.

It wasn't intended to come off as whining, it was more to help me recognize that there is a great deal of complexity that happens and it's easy for me to avoid facing complexity by doing less intense work.

3 of the 4 tips were targeted towards things I can do to protect myself, from well, myself. I'm my worst enemy when it comes to interruptions.

My other tip was how teams can work together to make sure an interruptions is worth it.

I'm certain, like you say, the need for flow or focus is not unique to developers, but can apply to many knowledge workers.

Re:Why interruptions are frustrating to developers by Bancakes on Friday May 28, 2021 @01:41PM (#27318332)
It's not pretentious. If programming were algorithmic, AI would be doing it.
Re:Why interruptions are frustrating to developers by Mike86534 on Friday May 28, 2021 @04:22PM (#27320013)
> Whining about how your "flow state" can't be interrupted because of how extraordinarily creative and artistic you are is just pretentious.

No one is saying that. Programming is plain hard work that requires deep concentration to keep a lot of parts in working memory, and is obviously more cognitively demanding than most other jobs. It appears you don't have experience with programming non-trivial things.

Re:Why interruptions are frustrating to developers by cnra on Friday May 28, 2021 @11:31AM (#27316579)
Most good programmers need isolation and are not "whining".

Perhaps it's different in modern web development, where you create free form monstrosities that change daily and you are paid by code churn.

As legend would have it, Archimedes was killed by a soldier because he angrily demanded "Noli turbare circulos meos!"

I guess that is what "whiny" mathematicians deserve ...