DEV Community

Cover image for How I'm Getting Better at Estimating Tasks (with Pomodoros)
Anderson Danilo de Souza
Anderson Danilo de Souza

Posted on

How I'm Getting Better at Estimating Tasks (with Pomodoros)

Estimating how long a task will take is one of the hardest skills for a developer. We're usually too optimistic, and the gap between "this will take an hour" and reality only shows up when it's too late.

Lately I've been trying a simple approach that's been working well for me: combining the Pomodoro Technique with task management.

The approach

Every day I write my tasks down and estimate how many pomodoros each one will take, before I start.

That small step changes a lot. To give a believable estimate, I'm forced to break big tasks into smaller ones. My rule of thumb is that a task should fit in about 4 pomodoros, which is roughly 2 hours with the classic 25/5 setup. If it doesn't fit, it's not a task yet, it's a project, and I split it.

Splitting tasks has a nice side effect: I often discover small subtasks I would have missed, and I can plan them properly instead of being surprised halfway through.

Closing the loop

Estimating alone isn't enough. You improve by comparing your estimate with what actually happened. When I finish a task, I look at how many pomodoros I planned versus how many I used. Over time, patterns show up: which kinds of tasks I underestimate, and which ones I overthink.

The results so far have been encouraging. I'm hitting my estimates more often, and sometimes finishing faster than I expected. On top of that, I get the usual Pomodoro benefits: more focus, regular breaks, and less stress.

The tool: Pomodoro Time Chamber

I built a small app to support this workflow: Pomodoro Time Chamber. The name comes from Dragon Ball's Hyperbolic Time Chamber, a room where a year of training passes in a single day outside. I like to think this app helps you get more done in less time, and with more focus.

It's a terminal app written in Rust. Some highlights:

  • Task list with estimates: set the estimated pomodoros per task and track completed ones (e.g. 3/2 when you go over)
  • Lua plugins: extend it the way you'd extend Neovim, by reacting to events like a pomodoro finishing or the current task changing
  • Neovim and tmux integration: see the timer and current task in your statusline
  • Presets: keep separate task lists and configs, e.g. work and personal

👉 Check it out on GitHub: https://github.com/andersondanilo/pomodoro-time-chamber

Wrapping up

You don't need a special tool to start. Estimate before you begin, keep tasks small, and compare the estimate with reality afterwards. If you live in the terminal, though, give Pomodoro Time Chamber a try, and I'd love to hear how it works for you.

Top comments (0)