Pomodoro for Programmers

post by Peter Wildeford (peter_hurford) · 2014-12-24T18:26:49.923Z · LW · GW · Legacy · 19 comments

Contents

19 comments

Unless you’ve been living under a productivity rock, you probably have heard of the Pomodoro Technique, where you use a timer to do 25 minutes of focused work, and then take a five minute break.

I used to use this technique a lot, up until I started doing computer programming.

You see, with computer programming, I get into this mysterious flow that consumes me, and I keep blazing passed the 25 minute interval, and the buzz of the Pomodoro merely distracts me and derails my work.

However, it’s still important to re-focus, even as a programmer. So I’ve tentatively settled on the following: 45 minutes of intense work followed by 15 minutes of intense break, using this custom timer made in a snap. (Inspired by the idea of "tocks", attributed to the co-founders of Beeminder, though I can’t seem to find a canonical post explaining it.  Update: a canonical post was just written, seemingly by coincidence.)

You probably know what happens in the period of intense work — uninterrupted work in a distraction-free environment where I code like a mad man. If anything bubbles up in my mind that’s not a task, I write it down to address later.

But the intense break is important.

 

Here’s my routine:

1.) A bit of rest. Look away from the computer. Let loose. Focus.

2.) Ask myself — am I comfortable? Do I need to do anything to rearrange my working environment? Am I sufficiently free from distractions? Do I need to do anything to address past distractions? Do I need to refill my water bottle? Do I need to get more food?

3.) What did I do over the past 45 minutes? Did I do it right? Does it need revision?

4.) What did I miss over the past 45 minutes? Do I have any important emails that need to be processed right away? Did anyone send me messages over HipChat? Any FB notifications? I disconnect from these services while during my work sprint, but the urgency of work communication requires me to reconnect every once in awhile. I try to put off responding to messages until the end of the day if they don’t require an urgent response, though.

5.) What should I do during the next 45 minute interval? Am I on track to accomplish my goals? Will my next 45 minute interval be distraction-free? Do I need to do anything to address future distractions?

6.) Are there any quick tasks I can accomplish? Any emails I need to send? Any notes I need to take? Did anything bubble up that I should address now?

 

The breaks are just as important as the work, and it emphasizes self-care, which is important and often neglected. I find that each 15 minute break propels my next 45 minute block to be better than if I had spent the entire 60 minutes working nonstop.

19 comments

Comments sorted by top scores.

comment by [deleted] · 2014-12-26T00:47:33.768Z · LW(p) · GW(p)

Eben Pagan has his 60-60-30 technique based around circadian rhythms, may be worth looking into for you:

https://www.youtube.com/watch?v=2XbRYPriDSw

Replies from: peter_hurford
comment by Peter Wildeford (peter_hurford) · 2014-12-26T06:36:25.699Z · LW(p) · GW(p)

Huh, 60-60-30, which is really 50(work)-10(break)-50(work)-30(break). Not too different from my proposal, except for the thirty minute break. I wonder how crucial that part is. Interestingly, I've never managed to do more than two of these 45-15 in a row, so maybe that's something.

Thanks.

Replies from: None
comment by [deleted] · 2014-12-26T21:52:13.332Z · LW(p) · GW(p)

Interesting thing about the 30 is it also has a small healthy meal attached. Eben says it has to do with maintaining blood sugar - could possibly be that without the meal, you're simply depleting your willpower/blood glucose, Which is why you can't do more than two in a row

Replies from: peter_hurford
comment by Peter Wildeford (peter_hurford) · 2014-12-27T05:31:25.779Z · LW(p) · GW(p)

That's a good point. I often eat while working or during my fifteen minute break, and I agree that feels very important for keeping my energy up. I don't know if I ought to dedicate time to eating and only eating, or if I should not eat for the two hour work block, though.

comment by matt2000 · 2014-12-24T22:14:58.229Z · LW(p) · GW(p)

I like to have a 25 minute reminder to stop and think about what I'm doing, but assuming I am, I often blaze through the "break" and only rest after a couple consecutive pomodoros. The 25 minute mark is more a safety net. I.e., if I've gotten distracted or gone down an unproductive path, at least I've only wasted no more than 25 minutes.

Replies from: Vika
comment by Vika · 2014-12-28T05:29:12.262Z · LW(p) · GW(p)

I use a similar approach. I find it too disruptive to interpret the pomodoro break signal literally as "stop what you are doing right now". Instead I interpret it as "take a break at some point in the next while", so I can blaze through it if I am being really productive.

Replies from: christian-hawk
comment by Christian (christian-hawk) · 2021-02-08T13:19:50.787Z · LW(p) · GW(p)

thanks for that, I'm so systematic that sometimes forget that thinks like that can be done.

comment by c_edwards · 2015-01-15T16:06:12.183Z · LW(p) · GW(p)

This seems like a very good idea, but I'm not sure that it fills the same role as the traditional Pomodoro (grain of salt: still new to Pomodoro).

One of the problems that I find when programming (and a lot of other tasks, really) is that it's easy to get wrapped up in "how do I implement this?" instead of "What do I need to implement to achieve my goal?". This is especially problematic when it becomes even finer scaled - "I need to understand/rework this one little part because maybe it's causing the current bug/error" instead of "what is the most time-efficient way for me to try to solve the current bug/error". I've spent many hours banging my head against a wall trying to implement/fix something that was ultimately unimportant. Your technique here seems to be a great solution to this problem - frequently pulling out of tactical mode to think strategically, (plus making sure that you're fed etc, which has a huge impact on my work efficiency).

On the other hand, my impression with the Pomodoro technique is that part of the goal is to make it easier to stay motivated - it's much easier for me to sustain a decent pace of work for a day when I know that every 20 or 25 minutes I'm going to have a 5 minute break to do something fun. I'm looking forward to trying your modification, but I'm wondering if, at least for myself, I'm going to need an additional five minutes to just do something fun (at least if I want to be able to keep up my work all day long). Although, as you point out, 15 minutes is actually a long time, and maybe only 10 minutes of it is really necessary for the strategic thinking and body maintenance stuff.

Replies from: peter_hurford
comment by Peter Wildeford (peter_hurford) · 2015-01-16T03:19:10.466Z · LW(p) · GW(p)

Hey, thanks for the insight! You hit right on the head what benefit I derive from this, and I think you're right that I neglected to notice that the benefit is pretty different from that of the original Pomodoro. And, I actually still do use the original Pomodoro when I need to bust through tasks I really don't want to do, because the "It's only 25 minutes" is pretty compelling. Good point.

comment by bingobongo · 2014-12-24T20:45:31.342Z · LW(p) · GW(p)

In my opinion you are not resting at all, if that's your routine.

Replies from: peter_hurford
comment by Peter Wildeford (peter_hurford) · 2014-12-24T21:48:54.431Z · LW(p) · GW(p)

Different things work for different people. If you need more rest, then modify the routine accordingly. Or maybe this routine simply isn't for you. Consider that it may be for others.

Also, it's not like one would do this 24/7. Longer rests -- "real rests" -- can take place.

You also may underestimate how long fifteen minutes is.

Replies from: VAuroch
comment by VAuroch · 2014-12-26T22:52:33.051Z · LW(p) · GW(p)

From your description, your break looks more like a change in type of work, for the most part. The useful tasks you outline probably couldn't actually fill up 15 minutes, but just from reading the description it looks dominated by things I also wouldn't consider to be 'resting'.

Replies from: peter_hurford
comment by Peter Wildeford (peter_hurford) · 2014-12-27T05:29:39.329Z · LW(p) · GW(p)

From your description, your break looks more like a change in type of work, for the most part.

That's fair. Maybe "work - plan" is a better description than "work - rest"? I personally find the different kind of work still restful, in that I'm getting food, moving around, thinking about different things, not focusing super-hard, but I guess other people might differ on that. Interesting to know.

comment by Christian (christian-hawk) · 2021-02-08T13:18:40.248Z · LW(p) · GW(p)

I love pomodoro when I have to deal with several small tasks during the day, it helps me to focus.

But I'm giving a try for programming and it's really hard for complex tasks. (i.e. using a new language or paradigm that requires deep focus). Everytime I get warmed up, I need to break 5 min.

 

Gonna give this a try.

comment by Andy_McKenzie · 2014-12-24T22:23:01.021Z · LW(p) · GW(p)

Do you walk around for at least a little bit of this 15 minute period?

Replies from: peter_hurford
comment by Peter Wildeford (peter_hurford) · 2014-12-24T23:41:40.522Z · LW(p) · GW(p)

Yes.

Replies from: Andy_McKenzie
comment by Andy_McKenzie · 2014-12-25T00:02:23.110Z · LW(p) · GW(p)

How much? :)

Replies from: peter_hurford
comment by Peter Wildeford (peter_hurford) · 2014-12-25T00:48:19.649Z · LW(p) · GW(p)

It depends. No hard and fast limit yet. I usually have to walk at least to get more food, refill my water bottle, go to the bathroom, etc. Sometimes I walk around more. If I'm tired, I like to take a 5-10min walk outside.

comment by artemium · 2014-12-26T13:59:54.273Z · LW(p) · GW(p)

There is additional benefit of breaks while doing computer work: it helps reduce strain on your eyes. Watching into computer screen for too long reduces your blinking rate and may cause eye problems in future.

A lot of people who work in programming (including myself) have dry eyes condition.

There are good apps for chrome which can help you with this and most of them allow you to customize breaks depending on your schedule.