Excellent topic for a thread.
I make use of flow when I'm programming. It's the reason I needed to buy expensive noise cancelling headphones (that work ended up paying for) and why I spend time curating music I can use that will help me get in this state (without distracting me too much with the lyrics or whatever)
What are your experiences with flow?
Essentially I've figured out that as a programmer.. the best way to build and maintain complex systems is to let your brain soak up all the knowledge first. You have to understand everything conceptually on some level. Your brain is capable of storing concepts and you just have to essentially query it while you work through problems. So if you are working on some big system you designed 5 years ago, that has seen work by other programmers, if you are working out a new feature you've been asked to build.. and there are potential impacts all over the place, including maybe even other interconnected systems.. the best way to get things done is to first understand all these things on some level, and spend the time building all that up in your brain first. Store it away by really understanding it. Don't memorize, just understand. If it's a system you designed 5 years ago, you will have to refresh your understanding of the codebase and the abstract structures of data and whatever. That's always the first step
The next stage in this process is to sit down and spend the time getting into flow. So.. In my case that means putting on my headphones, the appropriate music, and then spending a half an hour just sort of teasing the code. Reading through it, doing a touch-up there, maybe indenting a function, writing a comment. A half an hour into this or so, or maybe 20 minutes, and you start really feeling the system and can maybe get into that state of flow. If your objective is to build some new functionality that impacts things all over the place, or solve some confusing bug.. if you have one of those days of great flow.. and you have taken the time to understand everything properly beforehand.. the code can just flow out of you and you pump out a lot of work in a short amount of time.
One such example is when I sat down to look at a problem we were having with a system at work. My job was to migrate this system 3 times a year, which meant creating a new database, rolling over any needed data, updating the rules for the new term, and making sure that it works properly. This time around the rollover work was annoying for one reason or another.
I was in a positive state of mind and just felt motivated to build a completely new system that will make my life a lot easier going forward. It was 9pm, I put on some music, indulged in some indulgences to ease my mind into the task, and got to work. For 12 hours I sat there pumping out code and building a completely new system. It was pretty incredible. It included scripts that migrated all data from the old system and put it in the new format. It meant that instead of 3 times a year of me doing this, the system would now do it for me. There was also a completely new interface. Usually building a system like this would take a week, but I just did it overnight, and by 9am was writing everyone an email with instructions on how to use the new system. So yeah, I crammed testing in there too. I just felt so connected to all the data and algorithms, and during development could push any bug aside easily. Usually when you're building something new bugs come up you spend ripping your hair out over. Just unexpected stuff. But when you're in the zone and you're building it all at once, almost any problem falling your way, your brain will just give you a solution, if that makes sense. Contrast this with your boss messaging you to fix a problem with some system you haven't looked at in months, it might take you days to solve that same problem.
My experience with flow is also that it's not easy to get into flow. The older you get, the more complex life gets, so it's harder to just forget it all and get in the zone. That's just one of many factors, of course.. You also increase in importance at the office or whatever, more people are likely to bug you and disrupt your flow.. and now with the pandemic there is also added anxiety and still the weird feeling of working from home. To get into flow you gotta be feeling great, or at least good, and sometimes that just won't happen.
In our office we had a bit of a battle to fight against an "open concept" office remodelling plan, that ended up getting scrapped (we got offices instead). Those of us who require a quiet space to work (to help us get into flow mainly) joined forces and pushed back.
I've also had problems getting in flow at work due to mental health issues, as well as an issue of a noise I kept hearing in the ceiling above me. It was starting to drive me mad, like somebody poking you every once in a while sort of thing, but instead it was constant. This is why I got the headphones.. but.. the pandemic hit and I haven't had to work from the office since then. I am sort of dreading going back there, although with these headphones it should be fine. For flow you want to be in a positive space, not a negative one. You need to feel good, like I said.
How often do you achieve it and how do you achieve it?
These days working from home it's a lot easier.. but some days if I have to watch for a package out for delivery or something I'll be sufficiently distracted as to not really get into a good flow that day. There's also the fact that my work is sort of like the wild west, where a lot of stuff is not explicitly defined, and information comes to you from weird angles or not at all, so it's harder to do that prep work to understand things so that later on your brain will just shoot you the answers.
I would say I get into flow maybe 1-3 times a week.. by that I mean a good session where I really get into it and am bopping my head a bit and just getting er done. I guess I answered the other part of the question already - I use music and an understanding of what I'm about to do.
I also use flow when I'm drawing. I find working with ASCII characters, especially the blocky ones that we tend to use in this art form, soothing. It's like playing with legos. You move blocks around and make art. So I can basically sit there, listen to music, just moving blocks around, for an hour or two. when I get into good flow I will be just using the keyboard, changing colours with key combos, moving the cursor around, applying different characters with the function keys, etc. and it just all flows. Those are the best sessions. Takes about 20-30 minutes to get into that state too, usually I will warm up by working on not the main object of my attention. I'll gravitate over to that as I get into flow. So if I have am drawing a girl's face, I might begin by improving the shaping of her shoulders first, and then as I get into more flow I move on to the harder parts, like the face and the eyes
edit: the music I use is in 2 categories. It's either techno/house with a steady beat with minimal or no lyrics. this could be deep chill house, hard techno, all sorts of trance, funky house, etc. As long as there's a steady beat and the lyrics are minimal. The other category is "catchy" music. Lyrics used to bother me, but for whatever reason really catchy music is fine. I'll sit there and groove to the melodies and code and it's fine. But if it's just random rock music then it doesn't seem to work nearly as well. By catchy music I mean for instance.. Benny Sings, Franc Moody, Jamiroquai, some Daft Punk, but it can just be some random song with a really catchy melody.. Lots of reggae fits the bill! Groovy catchy basslines, melodies, and beats. If I can groove to it and move my behind a bit and bop my head then it can be used for flow (for me)
What are you doing when you enter this state?
Programming and drawing ANSI. I think those are the only things for me, although I might also have to include hiking.
What breaks you out of it?
If I am forced to read somebody's message and it is an urgent request to do something real quick or whatever, I'll stop, reacquaint myself with that system, answer the urgent question , and then have to spend 20-30 minutes again getting back into flow. Context switching is very expensive, but nobody realizes it, even after you explain it. To be fair my boss is a lot better about this stuff these days, I am not complaining about him specifically here, just speaking generally