September 24, 2008

Tomatoes

I always receive questions when I say I worked 20 tomatoes on something. How could I expect otherwise? :) So this post is to explain what I’m talking about.

History

The Tomato Technique is an agile practice not yet included in the standard literature invented by Francesco Cirillo at XPLabs. The name comes from a tomato shaped kitchen timer (pomodoro is the italian for tomato) that Francesco and his team used and still use for time tracking. I personally first heard about the tomato not from Francesco himself but from Bruno Bossola when I was an active member of the Italian Java JUG in Turin in 2003. Bruno had the pleasure to work with Francesco as coach and learn about everything agile, tomato included I think around 2000. But Francesco reports on the pomodoro paper about using the Tomato already in late ‘80!

I started using the tomato seriously while working at SourceSense in 2005 but only for personal tracking and not as a team practice. Over the years I collected a huge list of tomatoes in the more disparate forms. As a rough estimate I know I can collect something around 2400 tomatoes a year. For a focused month of work I’m around 200. With a 10 tomatoes a day average there is still a lot of room for improvement!

How does it work

A tomato is a time slot of 30 minutes. The slot includes 25 mintues of single threaded focused work and 5 minutes of mind-relaxing break. Every 4 tomatoes worked a longer break is taken of around 20 minutes. Considering a standard 8 hours working day the potential number of tomatoes is around 14. Is not 16 because every 12 tomatoes 1 hour goes away for longer breaks.

Planning

The challenge mostly consist in creating a task granularity so that you can plan in tomatoes instead of days, half-a-days or hours. For example: this blog post has been estimated as two tomatoes worth of time. I can probably make it, but I can’t be too detailed. Of course a blog post is very easy. The real challenge is on more sophisticated tasks, for example those of an user story belonging to a project. I feel comfortable with User Story estimates in days or points but I go finer grained on tasks with tomatoes. Tomatoes are filling the gap between the user story estimate and the micro-cycle work to get that done.

Getting Started

Passive Observer. First of all observe yourself: track tomatoes and see how much time you spend on what. Don’t try to force yourself to a specific tomato schedule, just take note of what’s happening and the distribution of tomatoes over the day. Put a dot or a number (or whatever) close to the current activity to track how many tomatoes are spent. Try to consistently break between tomatoes. You need to be an observer for at least 2 weeks.

Active Observer. Start now to plan tomatoes for easy and repeatable activities such as a blog post. You can also start planning for a software project: if you already planned for stories try to understand what tasks the story includes and think about how many tomatoes you think you’ll need to complete the task. Start with tasks you’ve already done in the past: create a migration, refactor a string_helper, you name  it.

Tools

Start with paper and a timer. Write what you want to have done today on a story card and your estimated tomatoes on each row. Put a sign for each tomato worked. Start the timer and focus your attention to the main goal for the tomato. Distractions of any kind are handled a-la GTD: remove them from your way as fast as you can. Protect your tomato at all costs.

Go paper-less when you’re more confident. No matter how great a tool is, it will add some more maintenance headache than paper. Do it when your tomato tracking is flowing flawlessly. There are good reason to go paperless: automatic charts generation gives you valuable retrospective information you can’t easily live without.

My setup as of today is: Twidget Dashboard widget to enter tomatoes to Twitter, 3-2-1 widget timer and KeepTempo.com is following my Twitter tracking account to report on tomatoes. I store tasks connected to a story locally, but the plan is to move to Mingle or similar products to store stories and tasks.

Conclusions

There is much more to say. As I said I can only spend 2 tomatoes on this post and I already underestimated of 1 tomato! Poor me. Tomato tracking drastically improves time boxing and gives you a huge history of previous work done that can be browsed to eliminate waste in the lean thinking sense of the word. The next big topic I think is how to apply the tomato technique as a team instead of solo working. I’ll talk about that in the future. And remember: protect your tomatoes!

Comments (View)
blog comments powered by Disqus