Pomodoro For Programmers

Hello, my friend.

Today I want to tell you about a very well known productivity technique, which has not yet gotten a wide adoption in the programming community.

The technique is called pomodoro.

If you have never heard about pomodoro, have a look at the official page.

I will not repeat the same stuff you can find in any article on the topic. Instead, I will share my personal experience with it and try to show how can it help you to be a better programmer.

Benefits

Let's talk a bit about benefits you can get if you will adopt the technique.

These are the low-hanging fruits you will get pretty soon:

  1. Helps measure a real amount of work done.
  2. Trains your focus and focus on a single task.
  3. Trains planning and prioritisation.
  4. Helps to make breaks and rest (you feel much better in the evening).

On a higher level, pomodoro is quite an interesting beast.

Pomodoro is a set of focused micro-deadlines. And having a deadline is a pretty good motivator for getting things done, as you may know.

Also, practising pomodoro will give you a sense of control and autonomy over your work. And autonomy per se is one of the key things for a motivation and better performance.

Every 4 pomodoros form a Deep Work block. This is a state, where you can be on top of productivity peak making things happen!

All in all, pomodoro trains your grit and discipline, which are two great traits to have!

Downsides

Pomodoro requires some initial discipline. If you get distracted all the time and cannot control your urge to check Facebook and email, it will be very hard for you to stick to the technique.

Also, originally pomodoro is a very strict technique, which may be quite stressfull. You have to stop the timer every time you get distracted by something or someone, and at the beginning it is literally every 10 minutes!

Also, you need to tweak your mindset a bit:

  1. You need to understand why you are using a technique like that.
  2. There is a thing called "too much control". Do not get into that trap.
  3. Do not measure your efficiency only by the number of pomodoros done!
    It's the same as measuring your productivity by the number of lines of code!
  4. Ignore multitasking.

And a final note:

If you will adopt pomodoro, in 3 months you will be promoting this "silver bullet" like a fanatic in Twitter and bugging all your friends with it.

Don't be like that! Chill out. It's not a "silver bullet".

Roadblocks

There are obviously some roadblocks on the way to adopting pomodoro.

First and foremost, you need to start consciously thinking about all the interruptions you have: facebook, youtube, twitter, colleagues coming and asking, checking your email and phone, messengers, all those notifications and reminders...

Yes, you will fight all those things back!

Second, pomodoro requires planning. If you are not yet used to plan your work and split your tasks, it may be harder and more stressful for you to start using pomodoro.

Third, the technique does not work in every context.

Pomodoro is ideal for those types of work which require focus and flow, and do not require collaboration.

Though, you could (and should) time box your meetings, lectures and pair coding using pomodoro.

And the last, but not least, roadblock is that you need to spend some time adhering to the technique before your will see the first results.

How do I start?

Ok, now we get to the most complex part!

Starting pomodoro is hard.

I've been doing pomodoro with relative success for 3 years, and I have not yet turned the technique into a habit...

But I am getting better and better at it!

These days, I can do 8 pomodoros every day, and on a good day it is up to 12 pomodoros (which translates to 6 hours of a purely focused coding)!

So, here are my tips:

  1. Start small.
    Do not set a goal of doing 8 pomodoro per day.
    Start with a humble and reasonable number - aim at 4 pomodoros in a single block.
    At the very beginning, you need to train how to deal with distractions and you need to feel what is it like to be disciplined and how it enhances your productivity.

  2. Talk to your colleagues and make them aware.
    People need to know that you are using some technique for limiting your distractions. They are usually reasonable and helpful!

  3. Move all possible "distractors" to a second screen, turn a silent mode on your phone and forbid notifications.
    You will check all of those things (messengers, phone, email) during your pomodoro breaks.

  4. Plan tasks before diving in pomodoro sessions. If planning takes a lot of time, it can be a first pomodoro in a run.

Do not follow prescriptions blindly

One of the most common reasons I was dropping pomodoro several times was stress, caused by resetting the timer on small interruptions.

To be honest, I was more interrupted by the irritation of resetting the timer and making a forced break, than by a small interruption itself!

Here is an example.

A colleague of mine asks me something related to our shared expertise and current work. I have the knowledge cached in my "fast-access memory" and I do not need to switch my attention and make a conscious effort to give an answer.
I am not really interrupted after I have answered. I am still in focus. But pomodoro guidelines say "You have to reset a timer!"

How did I get past that? Simple!

I just do not reset a timer if I feel that I am still in a focused mode!

Your work is not only coding!

This is one of the biggest misconceptions I hear in the context of pomodoro!

I will repeat it again:

Do not measure your efficiency only by the number of pomodoros!

You work as a programmer is not only coding!
It includes:

  1. Communicating with other people (meetings/emails/small talks).
  2. Helping other people (actions).
  3. Designing stuff.
  4. Paperwork.

Pomodoro helps you to organise your time and work more efficiently, but does not help you get rid of those "non-sexy non-coding activities".

Those activities are actual essential for teamwork and collaboration!

Let's have a look at one more example.

You are and expert in a given domain/feature/technology. And people often come to your place to get your advice and get your help on various stuff.

Congratulations! You are a leader!

So, one of your tasks is to help other people.

But there is a problem: you cannot do your 8-10 pomodoros of coding a day anymore!

Let me say this loud:

You need to relax your coding quota!
Make it 4 pomodoros.
You work as a leader is to help others and not just solve problems by code!

Yep, that's it! Simple!

What tool do I use?

I use Pomodoro One for Mac and pretty happy with it.

For pairing and public speaking I use Focus Keeper on my iPad.

What makes it very useful is that it changes the color during breaks and pomodoro sessions. Which makes it much easier to notice that you need to make a break. Also, other people can easily see that you are in a focused mode or free for chatting.


That's it, my friend. I hope I have shed some light on this topic.

I'd like to hear from you!
Do you use pomodoro? What are your impressions?