Do you Pomodoro?

! Warning: this post hasn't been updated in over three years and so may contain out of date information.

"Pomodoro" (ie tomato) kitchen timerThis week, I have been experimenting with the pomodoro technique to see if it could help me better manage my time when working. For those unfamiliar with pomodoro, take a quick read of this Pomodoro technique cheat sheet.

Like many people who work at a computer, I find it hard to stay focused on the task at hand. I get easily distracted and find myself reading emails, checking on twitter etc the moment I hit a bit of code that requires thought. So something that can help me stay focused would be a real boon to me. The pomodoro technique is a simple one, when one cuts away all the fluff: focus for 25 minutes; play for 5; repeat. The idea is that you have some sort of timer that you set to 25 minutes and you work solidly on a task for that time. Then you take time out for 5 minutes to read email, check twitter, make a cup of tea etc. After five minutes, you start the next 25 minutes of focusing.

So this week I have tried this technique to see if it would help me. It has yielded some mixed results. On the one hand, I have found it helps prevent me “self interrupting” (eg giving in to the impulse to write a tweet half way through writing a line of code.) I found that it only took a couple of days to suppress those impulses until the 25 minutes was up. On the other hand, it just doesn’t seem to fit into the work I do.

As a senior (more in age than skills I suspect) member of a development team, my day consists of developing aspects of our company’s products, discussing solutions to problems and supporting more junior members of the team. These duties pose two problems that – as far as I can see – the pomodoro technique cannot solve.

1. Developing products. Our products tend to be large “enterprise” solutions. These take many minutes to run through the compile/ automated test cycle. So during a 25 minute period, I often might spend 5-10 minutes staring at the screen watching it compile. I found that if I remained focused on the task, then I was unproductive for that time. If I tried to do something else, then I’d become distracted from the task and I found I had to try and do another task and watch the first one for when it ended in order to focus straight back on it.

2. Helping others. A considerable part of my day is spent discussing things with other people. According to the pomodoro technique, if a junior member of staff comes to me during the 25 minutes, I’m supposed to tell them to go away until that slot is complete. There is however no quicker way to discourage people from seeking your help than to be inflexible over responding to them. They need help now, so they get my help now. Telling them to wait is just an unacceptable restriction imposed by Pomodoro as far as I’m concerned.

Over the course of the week, I found myself adopting a semi-pomodoro approach. I split each half hour into 25 minutes work, 5 minutes other stuff. During those 25 minutes, I would code, read and respond to work emails, and talk to others in the team. Then during the five minutes, I’d read twitter, look at websites, make tea etc. The exception was when talking to people, the five minutes would go out the window.

This approach has helped me focus better, but it both feels clunky and I’m aware that I’m not really following the pomodoro technique. So I’ve not yet decided whether to carry on with the experiment next week, or whether to find an alternative approach to focusing better.

6 thoughts on “Do you Pomodoro?

  1. Do you really need to frequently compile and run your whole test suite / product?

    Or am I misunderstanding?

    One of the advantages of TDD (not sure if you can work this way in test-after style) is that I only compile the tests for the code I’m writing most of the time. I might test a single method, test case or by package – or I can filter using test names and wildcard matching, but anyway, the full test suite is something I run during my breaks a few times a day – I pick up the results after the break. Most of the time I know whether my code is working without having to compile anything outside this one class – which takes seconds.

    I also work with people who frequently need my input. They email me and when I hit my break I ask them what the question is (or answer it by email). If a question can’t be answered quickly then my next pomodoro (or a later one if it’s not urgent) becomes a ‘teaching’ one.

    I don’t think you’ve really understood the spirit of the idea though to be honest – it’s not just about focus, it’s also about goal orientation, getting started on tasks that we feel hesitant about and so on. If you approach it purely as a time management and focus technique then you’re kind of asking the “Is the iPhone a good phone?” question… whether the answer is ‘yes’ or ‘no’, the question misses most of what’s interesting about the iPhone.

    You haven’t told us any of the important stuff:
    Did you set goals for your 25 minute tasks?
    How frequently did you achieve them?
    Did you find yourself mini-sprinting to get there?
    Did you get more done within the 25 minutes as a result?
    Did you tackle anything that you’d been putting off?
    Did you manage to do any time-draining tasks (eg report writing) more efficiently by restricting them to 1 or 2 pomodori?

    Your description of “Work for 25 minutes, play for 5” missed the “Set a goal for this 25 minutes of work” part. If you didn’t actually do that part then you weren’t doing Pomodori. If you didn’t reflect on that part then you also weren’t doing it!

  2. good read man. thanks for sharing. I’m about to start trying this technique as well. when my RL timer gets here 🙂

    I’d say give it another week bro. one week isn’t enough to make a solid assessment imo.

    thanks again for sharing. if you continue please let us know how it goes!!

  3. @Stray,

    Thanks for taking the time to give such detailed feedback. You seem to know me too well. I indeed ignored all the goal-orientated aspects of Pomodoro. I tend to work in sprints, with 1-3 day tasks. I do not want to break those tasks down into 25 minute chunks. So I experimented with just using it to provide focus.

    Maybe that is my mistake: by trying to just cherry-pick the part I wanted, it didn’t work so well for me.

  4. @Sean,

    I reckon I will give it another week. I’ll either have to take Stray’s comments to heart and embrace more of the full Pomodoro technique, or experiment more with moulding it to my needs. Either way, it’s worth experimenting with for a while longer.

  5. It’s really interesting that you don’t want to break your tasks down any further than 1-3 day chunks.

    I think this is genuinely a test-first / test-after distinction: with TDD I *always* know what my goal is right now. It’s no big deal (no thought required at all) to set a goal for my pomodoro because TDD draws them out anyway.

    Perhaps this is a case where TDD fits and test-after doesn’t fit so well? (I’m refraining from using any value words here, just asserting the possibility that the techniques compliment each other).

  6. Perhaps this comes into it’s own more when you work from home and are less accessible?
    Also – perhaps use the compilation time to do some documentation – although that does have the disadvantage that your code may immediately be out of synch with the binaries should you want to do some debugging.

Comments are closed.