November 30, 2010

Limiting flow

November 30, 2010 - Categories: geek, life

Sunday:

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…