I’ve been using the Pomodoro Technique for a good few months now.
The pattern I use is:
- 25 minutes uninterrupted task-focussed activity (no IM, no twitter, no email, no internet) – this is called a Pomodoro
- 5 minute break for checking emails
- rinse and repeat
I love it. And here’s why:
Focus, without neglecting your responsibilities to other people
The intention behind the technique is primarily to improve time management by reducing distractions. I have maintenance contracts with some of my clients, and knowing that they’re unlikely to wait more than 25 minutes for a response allows me to turn my email off while I get on with coding or writing.
Tweet, read the news or hang out on facebook guilt free
During my breaks, any activity except for my task is valid. No more self-loathing. Sometimes I answer a quick question on the Robotlegs forum, sometimes I deal with emails, sometimes I just read the news – knowing that I’m gaining, not losing, from switching my foreground attention to something else, and that when my end-of-break timer goes off I’ll be back on the main task.
Movement is good
My back and my bladder are both appreciating the fact that I don’t spend six hours sitting in one position without moving. I try to leave my desk in every break, even if it’s just for a moment. I’ve got a floor-desk and we share a standing desk in our home-office. I’m trying to make sure that certain kinds of regular task are always carried out at the standing desk.
Less barrier to doing the sucky tasks
My schedule includes a Pomodoro of housework and a Pomodoro of admin every day. I group them together, followed by a Pomodoro of dog walking and then lunch – and I’m feeling great about making sure these happen every single day. I really suck at admin – I tend to end up with huge piles of unopened post, generating an ever increasing barrier to dealing with it. Doing a single Pomodoro of admin is keeping the pile down without feeling like if I start to dig in to it I may never come out. The housework Pomodoro is going down extremely well with my wife!
I’m starting to get a feel for how big a task is in terms of Pomodori. When my client asks for a change I’m able to outline classes, think about how many Pomodori might be required to get each class done, and come up with increasingly accurate estimates.
Micro-sprints improve productivity
I find that setting myself a goal can spur me into sprinting for most of the 25 minutes, getting something done within a Pomodoro that otherwise I might have stretched over a couple of hours. And this is why I think Robotlegs and the Pomodoro Technique are so well suited.
Robotlegs and the Pomodoro Technique: a perfect match
One of the things I love about Robotlegs is that it really encourages you to create many small classes, and yet this seems to be one of the aspects that causes a sad-panda face in many programmers. I’m going to talk more about the neuroscience behind this in my Flash on the Beach session, but in a nutshell I believe the antipathy towards many-small-classes flows out of three issues:
- Naming classes is harder than naming functions
- Developers tend to think in terms of half-day coding problems
- Refactoring relies on comprehensive tests, which most AS3 code bases don’t have
Shifting from thinking in terms of 4 or 6 hour coding sessions has made a surprisingly positive difference to how I program. I group my coding Pomodori together into 2-hour blocks, because I do think they’re more useful that way than scattered between admin and writing tasks, but the combination of Robotlegs, TDD and the Pomodoro Technique allows me to get meaningful coding-work done even in a single 25 minute session.
The many-small-classes approach suits the Pomodoro Technique
Micro-sprints require your brain to accept the possibility that your goal can be reached within the 25 minutes. The many-small-classes approach, which Robotlegs encourages, provides multiple opportunities for meaningful goals that can be attacked within a Pomodoro. Sometimes you can really push it and pick up two or three whole classes, with tests, within a Pomodoro.
If your class was written (nicely) in a Pomodoro, then it’s likely that the future-coder (maybe you in six months time) can grok it quickly too. It *must* have few responsibilities. Of course, not all classes can be written in a Pomodoro, just like not all classes can be kept below 60 lines, but if you have it on your radar, your chances of leveraging the simplicity where functionality can be broken down cleanly are much higher.
A refactoring Pomodoro is a great brain-drain
A few times a week I’ll notice that I’m still slightly fuzzy about the functionality I’m about to tackle, so instead I’ll devote a Pomodoro purely to refactoring code around it. Robotlegs supports refactoring by encouraging flexible, testable code. (If you don’t have test coverage you’re not refactoring – you’re just moving shit around).
So – come on, how do I win a Robotlegs Pomodoro Timer?
I had 50 custom Robotlegs Pomodoro timers made – they’re nice, twist-to-set, old-skool timers, with the Robotlegs logo engraved in to the metal.
If you’re one of the Robotlegs core team, or one of the people who reviewed our Robotlegs book, there’s already a timer set aside for you. I’ve also set them aside for Ondina, Camille Reynders, Paul Robertson, krasimir and Michał W who’ve been giving a lot of time to the forum these past few months. We want to hold some back for people who contribute to Robotlegs 2. The only other way to get your hands on one of these babies is to come to my Flash on the Beach session – Monday at 12pm.
The session will require you to engage your brain (and a pencil and paper) to tackle various exercises – and some of these exercises will give you the opportunity to win a Robotlegs Pomodoro Timer for your own desk. Bribery? For sure!
ps. This blog post, including photos, took exactly 3 Pomodoros.