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.