Limiting flow
Posted: - Modified: | geek, lifeSunday:
My head was buzzing from a good weekend of learning how to program on a new platform, so I set aside some time to reflect and clear it. This is what I had started to write:
Programming is addictive. It distracts me in a way that few other
pursuits do. I dream about code. I doodle ideas. I get lost in
development. Every free hour is a choice between spending it
programming or doing something else, and it's hard to resist that urge
for flow – that immersive, transcendental experience of engagement and
success.Flow messes me up. In the flow of programming, I forget the joy and
ease of other activities. I feel myself resisting the need to surface
from flow in order to take care of household chores or work on other
projects. Just another test, just another function, just another
little success. When I reluctantly slip away, the ghost of it hovers
there, a background process that takes up memory and processing time,
interrupts me with ideas and invitations, and makes it hard for me be
mindful and focused on other things.I know I'm lucky to be passionate about something like this, so it
seems wasteful to think of setting bounds. But my thinking feels
disjointed, hyperlinked, broken down into small functions – a little
the kind of unraveling I feel when I haven't had the chance to
properly write and reflect—
Then W- said, “How would you like to help clean up the yard?”
So I did. While W- changed his tires and J- raked the leaves, I tidied up what remained of this year's garden. Then I came back to the kitchen and roasted four turkey drumsticks, helped pack 11 lunch portions, made turkey pot pie filling, and prepared onigiri for next week's snacks. It was productive, social, and good. I remembered that weekends are good for preparing for the future, and I felt even better.
There's something interesting about that thought, and I want to explore it further. Maybe if I experiment with setting aside blocks of time, I'll get a better balance instead of mostly going by what I feel most like doing. There is an inertia to enjoyment. The more I focus on one thing, the harder it is to return to others. While a life focused on programming – and perhaps writing as well – is probably going to be just as awesome, I'd like to pick up a few other interests as well: cooking, drawing, sewing… Even speaking and making presentations tend to go on the backburner when I have a program in mind, which results in stress down the road.
For those other interests, I need to invest time doing things that are less fun than programming in order to get to the point where I might have as much fun doing that as I have writing code.
Improving my ability to switch is likely to pay off in terms of better quality of life, lower stress, and richer combinations of complementary skills.
Here are some ways I'm thinking of experimenting with that:
Limit programming to 4-hour blocks at a time, with rest breaks throughout. Do something non-computer-related for at least an hour between programming sessions. By getting better at resuming where I left off, I'll be able to let go with more confidence.
Schedule a block of recreational programming time on my calendar. That way, I know I'm going to be able to try things out at least once during the week, so it'll be easier for me to resist the urge to swap chores for programming. I can keep a TODO list of things to work on, which will help me use that time more effectively.
Schedule other interests/tasks on my calendar as needed. It's just like homework. If I've got a presentation or an idea planned for a certain date, I might do better by setting aside specific times to work on it. I might also use sprints or the Pomodoro technique to make it easier to focus.
Beef up my weekly review, and ruthlessly trim my task list. I've been postponing items that weren't particularly important. I'd like to move each of my open projects forward at least a little each week, and the weekly review is a good time to catch that. If I do my weekly review on Friday or Saturday, I can use Sunday for focused, planned work, or target things for mornings as well. If I run into something I still don't want to do, time to think about whether I want to scratch that off my list.
Hmm…
6 comments
Gail
2010-11-30T18:39:31ZI've been wanting to work on some programming projects for a while now. I even have one project started from the summer. But I've been too busy with PhD comps, and I think it's my love of flow that I haven't worked on the programs. I just can't bring myself to start working on them when I know there's not enough time to really get into it! So I guess that's the flip side of the problem. :)
Travis
2010-12-01T04:09:43ZI totally understand what you mean by "limiting flow". I usually come home from work with a great plan of everything I need to get accomplished but end up spending way to much time on one task. I feel productive, yet somewhat disappointed in myself because I didn't take the time out to do the more necessary tasks, i.e. clean my kitchen, laundry, etc. I think I am going to try to do a similar approach to you and block out times for what I want to do and see how that works.
steelman
2010-12-02T02:42:09ZAs far as limiting is concerned I'd recommend The Pomodoro Technique. With it I can get really wired in and I know when to stop.
David Ing
2010-12-02T08:42:04Z@sachac Having regrets about getting into flow seems strange. We aren't machines, so when we get into the mood, we should go with the flow. It won't last forever. Some people chart their biorhythms, while others just appreciate that up period are followed by down periods.
I'm the other way, in that I try to save mindless activities when I know that I'll be tired and distracted. At that point, I can't choose whether to turn the flow on or off, so I'm reserving the more mindful activities for times when I'm sharper.
Sacha Chua
2010-12-02T16:48:59ZI thought so too - that I should maximize those flow moments when I have them, because they're rare and they don't end. But I find it very easy to get into flow for certain activities, like programming, and I can sustain that for longer than I should. (Fatigue can lead to negative productivity, even when you don't think you're sleepy.) One time I fainted from dehydration, having forgotten to drink enough water while on one of my programming sprints. That was many years ago, and I've learned my lesson since then - I always keep a glass of water close by when I'm on my computer, and I periodically take breaks and check my status when I'm in flow.
Instead of thinking about flow as a rare experience that I need to seize and maximize, I'm experimenting with thinking of flow as something I can easily get into if I've structured enough time for it and cleared the way for it. This makes it easier to resist the temptation to hyperfocus. I'm not trying to avoid getting into flow. I'm getting better at breaking out of it at the right time, when I hit diminishing returns from flow. Yes, it will be fun coding in that one little feature, but spending time elsewhere will result in overall benefits (and the chance for flow from additional activities in the future).
That seems like a useful way to think about it: checking for diminishing returns...
Frances
2015-02-21T17:00:45ZI fainted from dehydration recently while running around one day doing 2 interviews and meeting an old friend in between. I was surprised, because I knew what I was doing was a bit stressful, but I didn't think of it as work at all.