My "Working While Standing" Hack
chengsoon.com
chengsoon.com
"Sitting for more than 1 hour has been shown to induce biochemical changes ... leads to the deposit of fats in adipose tissue rather than these being metabolized by muscle, ... heart disease risks". Read the original article for details.
Apparently we have a tradeoff between staying in "flow" and staying healthy. Since that seems to be the choice at the moment then I'll move every half an hour and worry about my productivity using other hacks.
I know I'm not the only person who occasionally likes to get up and walk around as I chew through a problem in my head. Surely this doesn't constitute a break in "flow".
I'm afraid it most certainly does for myself and other programmers I know. My "walking around and contemplating" is a completely different mental state than flow for me, and flow produces an entirely different league of results above and beyond any other mode of working I've been in.
If I could discipline, harness, and achieve flow more quickly (like the people who teach themselves to dream lucidly) I would be a much better programmer.
As it is, I'm currently contemplating how to cope with the apparent health risks of sitting all day vs. achieving flow.
Going even a week without flow tends to depress me, I doubt I could make disrupting my work multiple times daily a regular part of my habits.
Edit: Point being, I've never been in a state of flow that lent me the presence of mind to be able to tell myself, "Time to get up and move around", and any attempts to do so would destroy it.
I could see how some problem domains wouldn't be amenable to this.
I'm into functional languages like you are, but my background is in Lisp and Scheme where the cultural norm is to do bottom-up design and refactor/redesign as you go.
If I feel trapped into my decisions, I've written poor code or made an uncommonly bad design.
What I think makes the difference is that forcing the break, although annoying at first, makes you take the break when things are going well, resulting in eagerness to continue solving the problem after the break. While, if you take a break when you feel you need one, things are probably already stuck and it's harder to start up again.
I do agree with getting away from the computer for a proper break every few hours, but isn't that quite natural already? I can't go without eating/drinking for much longer than that anyway.
For those who like to listen to music while coding, you can use your music to help with this. Simply queue up ~30 minutes worth of songs, and then get to work. When the music ends that probably won't be enough of a distraction to pull you out of the flow, but realizing will slowly bubble its way to the surface that the music has stopped.
When that happens, you can put on another ~30 minutes of music after taking your walk-around break. Repeat.
I find that this doesn't disrupt flow, because the "time to change music" event is not an interrupt. I think being in the flow is a lot like sleep in that it goes through cycles much like the sleep stages, and you become aware of the music having stopped at a stage in the flow where it is easy to stop and restart.
BTW, music also makes a great way to keep track of time for billing. Back in our consulting days at work, I'd keep track of how much time was spent for each client by what CDs I listened to while working on that client's project.
My desk isn't adjustable (atm) and one of the biggest (but unexpected) benefits of standing at my desk is that it tires me. After two hours or so I am forced to go have a sit down _away_ from my computer. This helps my productivity more than trying to take regular breaks when sitting as I find it harder to waste the time browsing the internet or simply skip a break.