7 ms·
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 programm
by dahfizz 5y ago
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.
- deepsun 5y agoMany other professions react strongly to interruptions. E.g. from what I know: writers and mathematicians react even strongly.
- pc86 5y agoThe 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.
- sirsinsalot 5y agoThey also arent creating output that has to be simultaneously harmonic with other peoples work in an often quickly changing landscape.
- hinkley 5y agoYou 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.
- deleted 5y ago[deleted]
- mjburgess 5y agoThe 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.
- cnra 5y agoRidiculous that this thoughtful post is down-voted.
- slingnow 5y agoIt 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.
- whatshisface 5y agoYou'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.
- foxyv 5y agoDon't forget to send him messages on Slack, marked as important, talking about stuff like Yoga exercises and the importance of taking breaks.
- mgkimsal 5y agoHad 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.
- whatshisface 5y agoWell, 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.
- mgkimsal 5y agoSure but “I’m busy and will get back in touch next week” would have sufficed.
- amelius 5y agoThe 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.
- aequitas 5y agoSometimes 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.
- whiddershins 5y agoI 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.
- hinkley 5y agoWhen 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!”
- cnra 5y agoMost 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 ...
- deleted 5y ago[deleted]
- kolbe 5y agoSomething 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.
- fouric 5y agoHow 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".
- amozoss 5y agoAuthor 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
- Bancakes 5y agoIt's not pretentious. If programming were algorithmic, AI would be doing it.
- OnlyOneCannolo 5y agoAnecdotally, 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.
- 100011_100001 5y agoI 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.
- screye 5y ago> 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.
- Mike86534 5y ago> 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.
- amozoss 5y agoAuthor 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.