Deep Work with the Pomodoro Technique: a Software Developer’s Perspective
In a world with so many distractions, especially now that we mostly work from home because of Corona, getting shit done can be really ardous. If you are a Software Developer, it can be even harder. To the usual curriculum of brain diversions, we add the fact that we have to be connected to the Internet around the clock when working, with the inherent realm of diversions that it brings. Not only we can be engulfed by them, but also by other demands of our own work, like other colleagues requesting our attention.
Being programmers, productivity and therefore concentration is key. We should achieve our goals before our deadlines, and moreover, we should do it finding the best equilibrium between efficiency and readability.
In this context it is therefore vital that we equip ourselves with the best ammunition to preserve our productivity. As counter as it might run, rules and discipline will bring us freedom.
“But perfect freedom is not found without some rules. Shunryu Suzuki, Zen Mind, Beginner’s Mind”
The Pomodoro Technique
To boost his productivity, Francesco Cirillo, a businessman from Italy, invented The Pomodoro Technique in the late 1980s. Pomodoro in Italian means tomato; that was the shape of the kitchen timer he used when student.
The approach is very straight forward. Having a big task, you chop that into small periods that we call Pomodoros, surrounded by short breaks. When you do four Pomodoros you have a set, and you can then rest for a longer period. From the wiki:
- Decide on the task to be done.
- Set the pomodoro timer (traditionally to 25 minutes).
- Work on the task.
- End work when the timer rings and put a checkmark on a piece of paper.
- If you have fewer than four checkmarks, take a short break (3–5 minutes), then go to step 2.
- After four pomodoros, take a longer break (15–30 minutes), reset your checkmark count to zero, then go to step 1.
With The Pomodoro Technique you focus on short periods of time, being more resilient to potential distractions because the break, a short or a big one, is close in time. It also helps your accountability of what is done and what needs to be achieved, having an overall perspective of your work. Consequently, planing and prioritisation gets much easier, inducing a growth in your Productivity.
Furthermore, it aids you to enhance your attention span and concentration, and even in a spiritual dimension, your mindfulness, being more relaxed and content in your everyday life. As summing-up, The Pomodoro Technique helps you to:
- Focus on your current task
- Keep accountability of your work
- Plan and prioritise
- Enhance your attention span and concentration
- Be more content in your everyday life
A Developer Perspective
As I mentioned before, this procedure can be advantageous for us programmers, but firstly we have to refine it a bit to make it work.
The first obstacle I found when using it was the code Build times. Yes, being developer of a big project and using Xcode, the Apple IDE, Build times can last as long as few minutes, even more if you have to compile third party libraries. I used to spend that time browsing the internet, switching my concentration focus and making it strenuous to readapt to the task at hand afterwards. On top of that, I used to lose some time because I did not go back immediately after the compilation was finished.
It is important therefore that we avoid it; you should remain patiently with your IDE in screen, using this time to train your patience, or checking your code in search of other things to tackle. This can faulty however, as again it is not convenient to switch task.
Other caveats come in form of an interruption from a colleague. It could be your boss, your project manager or just another fellow developer requiring your help. Ideally this requests should be managed after the running Pomodoro has finished, so you stay concentrated at the current task. You can accordingly let them know your last fancy way to work, making them ready to wait 25 mins max to use your gifted skills. Nonetheless, as in the rest of our life, being open is essential when using Pomorodo. If you have to help them, or if you let your gas on at home with your cat there and you have to run, this technique recommends you to stop the timer, help them to survive, and go back to work starting a new Pomodoro. After all, a developer work is not only coding.
Additionally, if you use music when working you can be compelled to skip songs that you do not feel like listening at that moment. Don’t do that, you will find yourself in a bit browsing Spotify for a new cool song. My rule is no skipping until a Pomodoro is over, i can however turn music off if it is being disturbing at the moment. That way we listen new music that will love afterwards, just as in the old radio times.
And of course, don’t forget about your phone, the biggest source of interferences. With this we have to be equally disciplined: the screen has to be totally covered while working so it cannot draw our attention. I hide it totally from my sight, as still when visible I feel sometimes how my brain keeps looking for it unconsciously. You have to be honest with yourself, everything and everyone can wait 25 minutes. If you are mobile developer and need your phone to debug, turn the notifications off.
Lastly, when a Pomodoro finishes and it is time for a break, I might find myself so absorbed in my work that disconnecting is the last thing I wanna do. Even then discipline is key, in the long term we will be rewarded by a fresh mind and a lack of interest for distractions.
- Build times: Be hard, stay in your IDE.
- Interruptions: If possible to be handled when the Pomodoro is over, otherwise do it and reset your timer.
- Music: No song skipping until a Pomodoro is over. You can just turn the music off.
- Phone: Not visible at all.
- Breaks: Just do them!
To keep track of our work we need to write down our Pomodoros and the tasks implemented during those. This is also useful for the Agile Daily meetings, where you tell your team what you did the day before.
Having record of your work like that, you can measure your efficiency and performance day by day, and challenge yourself to be better everyday. In addition, you can analyze our statistics with graphs or other tools, hence being more satisfied when your curve goes up, as it will surely do. If it is not the case, it also will point you to the bottlenecks and impediments of your productivity. Naming those is the first step to fix them.
Nevertheless, as indicated before, it is important that we stay open, not becoming a slave of rules or self-judgement. This is just a tool in your toolbox, use it if it suits you, otherwise dismiss it and be happy. It is just a mean and not the end: productivity and ultimately contentedness. We must always have that in mind.
As explained before, browsing Internet can be one of the biggest hindrances for optimal performance, that is why any help is welcomed. I use a Chrome Extension that acts as a timer and at the same time blocks those websites I mostly browse for fun. Yes, you can bypass that using another browser or just disabling the Extension, but somehow making it a bit demanding makes your will keep that thought at bay. Besides that, we can also use apps for Mac or iOS that shows the timer and keep track of our work. These are:
That‘s all Folks! I would love to read about your experience with this technique, to learn more on how to keep improving it. Do not hesitate to give it a try and letting us know how it was for you here in the comments section.