I’ve been using the Pomodoro Technique for over a year now. The Pomodoro Technique is a way to divide your day into a several sets of time and (try) to focus on one task at a time without distractions. It has worked great for me with a graph paper notebook.
This morning though, I was wondering if there was a way to do the planning digitally in Emacs. I didn’t want a timer, just a simple way to allocate my pomodoros (chunks of time). Asking on Twitter, I had two people suggest using org-mode. So I dug into the org-mode manual and hacked something simple together using it’s tables.
The screenshot is a perfect example of a single day:
- using org-mode’s folding I can hide all of the other days except for today (2011-05-05 is hidden). I also have a section for Help where I’m keeping my notes
- the columns in the table are
- category – G(eneral), M(arketing), C(lient), E(mail), O(SS).
- name of the todo item from my other todo list
- the number of pomodoros I’ve allocated (empty [ ]), spent ([X]), and ones I didn’t need ([-])
- completed todo items are crossed out the as I go
So I’ve finished everything I wanted to do today except for “Write about pomodoro in org mode” and I still have one pomodoro left for it. I also set aside 2 pomodoros for the Redmine Tip today but only need to use one.
To make it easy to add a new table and allocate pomodoros, I recorded a few simple macros:
;; Emacs macro to add a pomodoro item (fset 'pomodoro "[ ]") ;; Emacs macro to add a pomodoro table ;; ;; | G | Organization | [ ] | ;; | | | | (fset 'pomodoro-table [?| ? ?G ? ?| ? ?O ?r ?g ?a ?n ?i ?z ?a ?t ?i ?o ?n ? ?| ? ?\[ ? ?\] ? ?| tab]) |
This lets me add a block of pomodoros with something like C-u 5 M-x pomodoro
. I also set up a macro to add the entire table, M-x pomodoro-table
which should save me time each morning.
Playing with org-mode and it’s tables was really useful. I really like how you can tab through a table and let it auto-format the column width. Finding this out will save me a bunch of time editing some of the wiki pages in ChiliProject.
Another option would be to use column view mode with properties. That way, it would be more integrated with the default TODO entries.
This is very cool. One question though, how are you keeping track of interruptions?
Don’t get interrupted…. ;)
I was never able to track them that good (might start). I work from home so my main interruption is from checking Twitter or chat. I was thinking about adding a quote next to the task when interrupted (e.g. webinar | [X][X] ‘ ‘ )
Nice. Thanks :). This should work well also with VIM and VIM Outliner.
As long as vim has a table mode it should. It is possible to do this manually too if someone really wanted to.
By the way, do you have any scheme for tracking internal and external interruptions as per the original Pomodoro Book by Francesco Cirillo. For example, he uses ‘ to mark internal interruptions and – to mark external interruptions?
I was thinking about using quotes and backquotes to track interruptions (‘ or `). Check the comment I made to Seth Mason below too.