HNNewShowAskJobs
Built with Tanstack Start
Programmers want flow. When programming, light turns red(scannedinavian.com)
98 points by todsacerdoti 7 months ago | 73 comments
  • hackerknew7 months ago

    "the easiest way to detect if a programmer is in flow is to see if they’re typing into their programmer’s editor."

    Does anybody else find that statement controversial?

    • ithkuil7 months ago |parent

      Let's try the following intuition pump.

      If we rephrase the scenario as:

      "The easiest way to detect if a person is asleep is to see if they're lying down with your eyes closed."

      This is clearly not always true.

      However when that's false, it either

      a) the person is trying to fall asleep b) the person is pretending to sleep with no intent of actually sleeping

      It's often said that in order to fall asleep one has to pretend to fall asleep first.

      I think the programming flow is similar. You may not actually be in that state yet, but it doesn't just come to you unless you actually do some programming while not in the flow yet.

      • gherkinnn7 months ago |parent

        regarding sleeping

        c) the person is dead

        d) the person is doing breathing exercises

        e) the person is relaxed, not asleep, and not pretending to be either

        f) the person is in a psychoanalyst's couch

        Similarly, one can be typing about for a thousand reasons, none of them about flow. Or one is in a stare of flow drawing boxes or just thinking.

        • ithkuil7 months ago |parent

          Unfortunately I wasn't in the flow while I was typing the comment and thus didn't enumerate all edge cases

      • pwdisswordfishz7 months ago |parent

        How could I see if someone else is lying down when my eyes are closed?

        • ithkuil7 months ago |parent

          it's easy to make typos when typing a comment on a phone

    • yodsanklai7 months ago |parent

      The hardest part is to know what to type. If I'm typing, problems are solved and I'm in auto pilot.

      • szvsw7 months ago |parent

        Part of being on autopilot and in flow for many people might be thinking about/solving/planning what you will do next while you are writing code for the last item…

        I find this especially true while working on data science tasks - slicing and dicing data, visualizing, fitting initial models, etc - things where the larger more complex data generation pipelines are already taken care of and the data (or temp data/subsets of data) are readily available and you are free to rely on the improvisational skills you have developed working on similar data science tasks countless times over.

        Also feel something similar when working on frontend wireframing/laying out and styling dashboards with no reference design.

        Anyways, point is, it’s definitely feasible to enter into a flow state where you mind is a few steps ahead of your fingers and is actively solving problems that your fingers catch up to.

      • daveguy7 months ago |parent

        Exactly. And this has very little to do with the concept of flow except for the relative end of it with no quantification of the flow that may have come before it.

    • pryelluw7 months ago |parent

      Not controversial, but simplified. My flow comes from working out problems on my notebook (pen and paper). Typing into the editor is the outcome of my flow process. This aso applies to my writing. I figure stuff out on paper and then put them on an electronic document. Works for me as I need to think while scribbling notes while doodling on the margin.

    • jareklupinski7 months ago |parent

      if i'm already typing, it's too late to interrupt my flow

      the preceding minutes trawling logs, filling my head with events, and connecting all the dots is the unstable part i need to keep in my head

    • GuB-427 months ago |parent

      It depends on the programmer.

      For me personally, I think it is the case. I like bottom up approaches, starting from technical details and working up to the global structure, it means I spend most of my "flow" time writing and rewriting code. It means lots of typing, even if most of it doesn't become production code.

      Others seem to prefer to start with the big picture, maybe with a pen and paper. So less typing but proportionally more of that typing becomes production code. So, for them, typing is probably not the right indicator.

    • OJFord7 months ago |parent

      Is it controversial or just something we can all agree is wrong?

      I think a better metric is how fast I'm switching between things. Logs, Slack, editor, something else: if the monitor's flashing like crazy as I go back and forth trying to tie things together...

      • bigstrat20037 months ago |parent

        > Is it controversial or just something we can all agree is wrong?

        It's certainly not something we all can agree is wrong. For me, the author's metric is reasonably accurate. If I'm typing, I am almost certainly in the zone and I will lose it if someone disturbs me.

        • OJFord7 months ago |parent

          Well I imagine we can all agree on that (too). I meant that it's incomplete; I suppose the original is ambiguous as to whether it means a rough 'sufficient and necessary' way, or merely a rough 'sufficient' way.

          It's definitely rough regardless (I spend non-'flow' time in the editor) but people are largely objecting to the perceived idea that it's necessary to be in the editor.

          • shae7 months ago |parent

            Author here, the original paper has a full keylogger that also catches mouse clicks.

            I don't know if this is a good measure or not, but it's fun to build and use.

            I'll try it for a few months and maybe post my thoughts.

    • uludag7 months ago |parent

      I don't find it controversial. I think it's a decent heuristic that's simple to implement. It would be pretty trivial to extend this with other heuristics, like how often commands other than self-insert-command are ran, their frequency and duration. Then the author, if they wanted, make some classification model with their lossage. Add in a few manual toggle keybindings (maybe with some numeric options to set duration as well as some defcustoms), org-mode clock-in integration, pomodoro integration, calendar integration (like with org-caldav) for setting status during meetings, slack notification setting updating, and I'd say you'd have a pretty thorough implementation.

      And editor typing detection is the perfect place to start.

    • Ekaros7 months ago |parent

      It also does not say that is the only way. Just that it is the easiest one. Some one is actively writing lot of code. Seems to me factually true. If someone is writing code consistently at good effort they probably are in some kind of good state, might be flow or might not.

    • arkh7 months ago |parent

      > Does anybody else find that statement controversial?

      No. But even if programmer's want flow, it is not what they need for their work to be done. Prototyping something and butting heads against a bad documentation or trying to find a way to manage something is not flowing, to the contrary. But it is your job.

      If all you want is typing almost mindlessly there are tons of typing game to get in the flow while the "AI" replaces you.

    • Uptrenda7 months ago |parent

      Not controversial, just wrong.

    • SkyPuncher7 months ago |parent

      I actually think it's a reasonable simplification.

      For me, a large part of flow is understanding the problem enough that I can jump in and go.

    • jazzyjackson7 months ago |parent

      maybe replace typing with, 'has editor in focus', /maybe/ 'editor | docs' because of course I may be idling while in the flow, but as soon as I've tabbed over to stack overflow its because something isn't working and it might actually be a good time to walk off for 5 minutes and come back to it.

    • 7 months ago |parent
      [deleted]
    • pionaryon7 months ago |parent

      The worst time to break my flow is when I'm debugging.

    • yreg7 months ago |parent

      Yeah, that's only a part of the time I consider as 'programming' / 'being in the flow'.

    • globnomulous7 months ago |parent

      Yes, it's nonsense, and "programmer’s editor" isn't English.

      • ithkuil7 months ago |parent

        What language is it then?

        • globnomulous7 months ago |parent

          The phrase "their programmer's editor" is wrong and so malformed that it's essentially nonsense. It's clear what the author is trying to say, but that's not what the text actually says. "Their programmer's editor" translates to "the programmer's programmer's editor." That is, there are two possessives, which means that "programmer's editor" is being used as an expression, a noun phrase, by itself. There is no such thing as "a programmer's editor." That's not idiomatic English. So it's either not written by a native speaker or is sloppy, awful, incorrect writing that deserves a barrel of red ink, a failing grade, and a paddling, because a native speaker should know better.

          • ithkuil7 months ago |parent

            You seem very confident about the rules of something as highly ambiguous and fluid as a natural language.

            It may no longer be a fashionable term but it has been used by native speakers.

            Examples:

            https://en.m.wikipedia.org/wiki/Programmer%27s_File_Editor

            https://en.m.wikipedia.org/wiki/Pe_(text_editor)

            https://programmersedit.sourceforge.net/

            • globnomulous7 months ago |parent

              I'm not just confident; I'm saying it is objectively true and demonstrable that (a) "their programmer's editor" is a solecism and (b) "programmer's editor" is equally wrong by being clunky, unidiomatic usage that any competent editor would mark as incorrect.

              I assume you see that "their programmer's editor" is obviously wrong, so I'll skip it.

              Finding a product named Programmer's Editor doesn't support the claim that "programmer's editor" is natural, normal, idiomatic English (and the author of the program by that name, in addition to being weirdly incapable of even correctly defining "programmer," isn't clearly a native speaker). Quite the contrary. You wouldn't name a program Code Editor, IDE, Editor, or Text Editor, just as you wouldn't name a company or a line of products Computers, because these are too generic to be used as proper nouns.

              And the ngram of "programmer's editor" speaks for itself: https://books.google.com/ngrams/graph?content=programmer%27s...

              To the best of my knowledge, at no time in the history of English has "programmer's editor" been idiomatic English, either inside or outside of the world of software and engineering. And today, in late 2024, it is unarguably incorrect usage, regardless of its history.

              • ithkuil7 months ago |parent

                What do you think about:

                * Chef's Knife

                * Painter's Palette

                * Carpenter's Toolbelt

                * Teacher's Guide

                ...

                They are all terms that work in a similar way: they qualify the name of a tool or object by the profession of who's using it.

                The qualifier mattes. A Teacher's Guide is not just a guide that happens to be owned by a teacher. A chef's knife is not whatever knife a chef happens to be using.

                The reason this feels outdated or "wrong" when applied to the job of "peogrammers" very likely has less to do with English grammar or whether "programmer's editor" per se is idiomatic or not rather than the fact that the name "programmer" to denote the profession of who writes computer programs has fallen out of favour.

                Take a quick look at LinkedIn and you'll rarely see people using the title "programmer" and rather use "developer" or "software engineer". Some people even use "builder".

                The words "developer" and "builder" are still actively used on some parts of the anglosphere to denote people who build buildings.

                The demise of the word programmer is interesting. Is it because it got associated with a boring cubicle job, devoid of any creativity?

                In any case, within a given profession you don't quite need the qualifier.

                Chefs will ask they colleagues to fetch a knife, not a Chef's knife

                A painter will grab a palette, not a painter's palette.

                The professional qualifier is obviously redundant when you're talking inside the circle of a given profession. So it's entirely expected to "sound weird" if we refer to an editor as programmer's editor when we're in a forum of software developers.

                My point is that it's not wrong in the sense you're making it out to be wrong.

                Yes it's an unnecessary qualifier. But so what.

                • shae7 months ago |parent

                  If it helps any, I wrote "programmer's editor" because I was trying to disambiguate between things like emacs and ms word. I'd consider both editors, but I find it much easier to write text documents meant for human consumption.

    • Frederation7 months ago |parent

      No, just dumb.

  • lemming7 months ago

    I work from home. For a while, I was using Focusmate to keep me on track, which worked very well. I implemented something similar using a standard smart bulb connected to Apple Home, and then I just controlled it using shortcuts and Hammerspoon such that it would turn red when my webcam was active, and turned off when it wasn't. I mounted it in a normal lamp outside my office door. It worked really well to reduce family interruptions when I was trying to work. I haven't been doing this for a while now, but I'll probably come back to it at some point.

    I called it my Roxanne light :-)

    • nuancebydefault7 months ago |parent

      You don't have to turn on the red light, those days are over!

    • bigcat123456787 months ago |parent

      https://www.focusmate.com/

      This?

      Seems focus mate is real human? Seems can be replaced by a LLM bot? I am not suggesting this as a cost cutting, but I am shy in front of humans...

      • lemming7 months ago |parent

        Yes that one, and yes it’s a real human. I don’t think it would work as well with an LLM, something about there being a real person there helps immensely with accountability. I’d encourage you to try it out if the idea is interesting, it’s nowhere near as weird as it sounds and it really does work for keeping you focused.

        • dr_kiszonka7 months ago |parent

          I will try it because it makes no sense to me. People slack off in open spaces all the time, don't they?

          • shae7 months ago |parent

            I do focus mate with my friends and it's amazingly productive for me.

      • ChainOfFools7 months ago |parent

        It looks like this service may be intended to have a significant off label use as a professional networking / online matchmaking app, judging by the choice of human pairs given in the stock images on the website. They're all male/ female pairings of similar age groups.

        It's curious that the list of suggested activities includes conventional headshot-framed work activities as well as full body view stuff like exercise routines.

        • lemming7 months ago |parent

          That seems like a stretch to me from the landing page, and is absolutely not my experience from using it. It’s also explicitly discouraged in all their documentation, e.g. this is from their FAQ:

          Can I chat with my partner?

          No. Talking with your partner is only allowed at the beginning and end of your session. At the beginning, you’re encouraged to say hello to your partner and share what you plan to work on. At the end, you should check in and ask your partner how the session went. If you’d like to talk to your partner more, you can suggest or offer it at the end of your session. Please bear in mind, no selling or propositions (business or otherwise) are allowed during Focusmate sessions.

      • GCUMstlyHarmls7 months ago |parent

        I wonder if you would care as much about letting a fake human down? I assume the idea wouldn't function as well if you know its an LLM.

  • musicale7 months ago

    Productivity interruption and destruction systems (teams, slack, zoom, email, etc.) along with quick responses to same are mandated by most workplaces. Disabling such interrupts typically triggers alarms and a stern lecture from management.

    • phyrex7 months ago |parent

      At my workplace, coding automatically silences your message notifications!

      • niccl7 months ago |parent

        sounds interesting. How does it work?

        • phyrex7 months ago |parent

          I don't know the specifics, but we already collect the time people spend coding for productivity telemetry, so we already have that signal. I assume the team that maintains our chat system either hooks into an editor notification, or into the Kafka-like event queue that feeds into the data warehouse. It likely only works if you're using the officially blessed IDE, but very nearly everyone does

          • musicale7 months ago |parent

            That does sound Kafkaesque, but maybe it's a weird example where intrusive surveillance isn't completely bad.

            • phyrex7 months ago |parent

              The actual non-anonymized data is closely guarded to make sure that nobody gets any funny ideas about mistaking it for actual performance measurement!

        • airtonix7 months ago |parent

          [dead]

    • bdangubic7 months ago |parent

      if you work in such a place run for the hills :)

      • giraffe_lady7 months ago |parent

        The hills where it's easy to find programming jobs?

        • bdangubic7 months ago |parent

          if you are good at this and can’t find a job, you got some major, major issues as jobs at companies like ones described above are not something you should rely on in any way in your life. so it is better for you to run than to be discarded

          • giraffe_lady7 months ago |parent

            I'm pretty average at it and have a shaky work history because of health problems. If I felt like I had better options I'd take em. What I need is a union.

    • Detrytus7 months ago |parent

      The first thing I do in any fresh Teams installation is to disable all notifications, except maybe for voice calls. Then I check for new messages maybe once per hour. I would have gone crazy otherwise.

    • shiroiushi7 months ago |parent

      Yeah, that's why I think all this talk is really silly and a waste of time. Management simply does not believe in "flow" or the need for deep concentration. If you actually need to concentrate deeply to get your job done, you're going to fail in most workplaces today. The best you can do is to try to find a way of getting enough work done, despite the noisy open-plan office environment and constant distractions. The days of walled offices for programmers are long gone, and they're not coming back.

  • drewcoo7 months ago

    For me, at least, flow is about the ability to focus on a problem and really see (almost touch) all of the pieces that are or should be. Flow is not just using an editor. If it were, it would be easy to force people into flow.

  • gnabgib7 months ago

    Like a DIY Busy bar (1371 points, 2 months ago, 461 comments) https://news.ycombinator.com/item?id=41838337

    • aziaziazi7 months ago |parent

      Like any over techy way to display… a Boolean basically.

      People have fun with what they like I guess, wondering if surgeons find ways to create busy bar using biological material or medical stuff.

    • shae7 months ago |parent

      Or an affordable busy.bar cause the hardware I used in this post is $35 ( https://www.adafruit.com/product/4800 )

      I'd love to have a busy bar, but they seem expensive for what they do.

      • Vampiero7 months ago |parent

        Can't you just get an OPEN/CLOSED sign for like $1?

        Or write "BUSY" on a piece of paper and tape it to the back of your screen?

        Or just tell who ever is bothering you to fuck off for five minutes

        Or just keep a loaded gun on your desk as a deterrent

        Or just stop working with other people and achieve enlightenment

        • 0823498723498727 months ago |parent

          compare Olin Shivers: https://scsh.net/docu/html/man.html

        • wruza7 months ago |parent

          That last one is so underrated.

        • soysandwhich7 months ago |parent

          [dead]

          • throwup2387 months ago |parent

            That's how we know we're out of touch: we don't immediately reach for a firearm to solve our problems.

  • 0823498723498727 months ago

    Lobste.rs comment: https://lobste.rs/s/3rybyx/programmers_want_flow_when_progra...

    (the low tech equivalent: close your office door)

    • binkHN7 months ago |parent

      I close the door to keep the noise out, so simply closing the door is not enough.

    • im3w1l7 months ago |parent

      When you are in the flow all you want to do is code, so I think having it be automatic is a big value add.

  • 7 months ago
    [deleted]
  • destructionator7 months ago

    I work from home with a young child. I think if I put a sign up, it'd just prompt more questions from her lol

  • rlupi7 months ago

    KISS. You can just use a "cone of silence" spell...

    ... that is, take a A4/letter blank piece of paper, fold it like a cone and tape it down, then take a red large-tip marker and write "SILENCE!" or "BUSY" on it.

    You can put it upright/on-the-desk when needed, and down/in-a-drawer otherwise.

  • amelius7 months ago

    The way to detect if I'm in a flow is when I start clenching my teeth. Unfortunately.

  • fedeb957 months ago

    except the premise isn't true.

  • throwaway9843937 months ago

    [dead]