"Getting Things Done" is a book by David Allen in which he describes a work-life management system developed after twenty years of consulting work. The promise of GTD is "Stress-free productivity" and developing a calm state of mind in a state of readiness. Allen's second book, "Ready for Anything" elaborates on these principles in a series of essays.
The effectiveness of GTD lies in taking a complete and current inventory of all your commitments, then organizing and reviewing this information regularly in a systematic way. Your work and life can then be viewed from different levels of detail allowing you to make choices about what to do (and not do) at any moment.
The GTD system has some key practices that make it efficient and effective:
The benefit I have gained from using GTD is confidence that I haven't forgotten to do something because I regularly capture my thoughts, commitments, ideas and "to do" items in a trusted system. This allows me to think more clearly and not be stressed worrying about what I may have forgotten.
My job is developing classroom training materials and E-Learning solutions for a software company based in North Sydney. Most of my day is spent at the computer using a variety of programs including Microsoft Word and Powerpoint, Adobe Captivate, Articulate Presenter, and Audacity (sound editing). Our company uses Outlook for email and calendaring which I use for my office time meetings and appointments.
I am married with two teenaged children. We have a varied and busy home life with a house and garden to maintain. My hobbies include watching movies on DVD, listening to music, reading, Toastmasters, and learning Japanese. My home computer is used extensively for my activities of enjoying movies and music, communicating, planning, writing, blogging and researching on the Web.
My trusted GTD system is a set of text files managed with Emacs, org-mode and Remember mode. The remainder of this article shows how I configured these tools and structured the text file contents.
My org mode files are as follows:
newgtd.org file. This
is the history of all completed work.
The main file is structured into five main sections: Tasks, Calendar, Projects, Borrowed and Financial. Each heading is followed by a category label for identification of items in agenda views.
This is the traditional "To Do" List functionality. When I think of
something that needs to be done, I add it to this section using
Remember mode with the command C-c r t. I enter a brief description
of the task, select a tag for the context (HOME, OFFICE, etc), enter
any additional notes then file it with C-c C-c.
The beginning of the task section looks like this:
* TASKS
#+CATEGORY: Tasks
** Tidy out the middle desk drawer :HOME:
** Read the Training Objectives :OFFICE:
** Watch Star Wars IV :DVD:
SCHEDULED: <2009-01-14 Wed>
The context of a task is a GTD practice to define where a task can be performed, for example HOME or OFFICE.
The process of adding a task is very fast and non-disruptive to my work. The Remember template includes the date added. This is useful when reviewing tasks to see how long the task has been on the list and if I have been procrastinating. I leave the tasks in the sequence they were added to allow regular review - especially of older tasks.
("Todo" ?t "* TODO %^{Brief Description} %^g\n%?\nAdded: %U"
"c:/charles/GTD/newgtd.org" "Tasks")
Each task is written to begin with a "Next Action" Verb and an object or target of the verb. It is much easier to take action if you know what you need to do without reassessing the task. For example, "Weekly Report" is unclear whereas "Compile weekly call statistics" tells me what needs to be done.
Here is my list of action verbs:
Address, ask, avoid, buy, change, clarify, collect, commend confront, consider, create, decide, defer, develop, discard, do again, download, enter, file, follow up, hire, improve, increase, inform, inquire, maintain, measure, monitor, order, paint, phone, prioritize, purchase, question, reduce, remember, repair, reply, report, research, resolve, review, schedule, sell, send, service, specify, start, stop, suggest, tidy, train, update, upgrade, write.
This area is used to store information about public holidays, school terms and milestone dates and special events. Date specific activies are stored in the Tasks and Projects area and will be visible in the agenda views.
Here is the public holiday section:
** Calendar
#+CATEGORY: Calendar
*** Public Holidays 2009
**** Australia Day (Holiday)
SCHEDULED: <2009-01-26 Mon>
**** Valentines Day
SCHEDULED: <2009-02-14 Sat>
**** St Patricks Day
SCHEDULED: <2009-03-17 Tue>
**** Good Friday (Holiday)
SCHEDULED: <2009-04-10 Fri>
This section is used to store details of each project I am working on. A project is a group of activities with a specific outcome that requires more than one action step and usually has a target date for completion.
Each project is stored as as heading with a subheading to contain a description of the project, and a work breakdown structure.
I use a set of Project Verbs in a similar manner to how I write Tasks (Next Actions):
Finalize, resolve, handle, look into, submit, maximize, organize, design, complete, ensure, research, roll out, update, install, implement, set-up.
* Projects
#+CATEGORY: Projects
** Implement Brian Tracy Focal Point Program :PROJECT:
*** Outcome
DEADLINE: <2009-09-30 Wed>
Make the Focal Point methodology an ingrained part of my being
*** TODO Detailed study of Health and Fitness Chapter :READING:
DEADLINE: <2009-01-19 Mon>
*** Detailed study of Business and Career (Focal Point) :READING:
*** Detailed study of Family & Personal life (Focal Point) :READING:
*** Detailed study of Money and Investments (Focal Point) :READING:
*** Detailed study of Personal Growth and Develop (Focal Poin :READING:
*** Detailed study of Social and Community (Focal Point) :READING:
*** Detailed study of Spiritual Dev & Inner Peace (Focal Point) :READING:
I use this section to record reminders of bills to pay, and reminders to pay bills and credit cards.
** Financial
#+CATEGORY: Financial
** TODO Prepare a Budget for 2009 :COMPUTER:
** Pay Credit Cards :COMPUTER:
SCHEDULED: <2009-01-22 Wed +1m>
** Pay Mortgage :COMPUTER:
SCHEDULED: <2009-01-22 Wed +1m>
The last two items show the use of repeating tasks for a monthly event, in this case paying off my debts.
I am a regular user of the library near my office and my home, so I usually have at least twenty items on loan due within the next 3 or 4 weeks. I borrow books, DVDs, CDs and occasionally magazines, so I use org-mode to manage the deadlines.
** Borrowed
#+CATEGORY: Borrowed
*** Stanton Library
**** TODO Watch Mikrokosmos :DVD:
DEADLINE: <2009-01-30 Fri>
**** TODO Read Parrots of Australia :READING:
DEADLINE: <2009-01-30 Fri>
**** TODO Watch The diaries of Vaslav Nijinsky :DVD:
DEADLINE: <2009-01-23 Fri>
The last part of the file contains the org-mode configuration directives. These follow a headline which means they are usually hidden.
** org-mode configuration
#+STARTUP: overview
#+STARTUP: hidestars
#+STARTUP: logdone
#+PROPERTY: Effort_ALL 0:10 0:20 0:30 1:00 2:00 4:00 6:00 8:00
#+COLUMNS: %38ITEM(Details) %TAGS(Context) %7TODO(To Do) %5Effort(Time){:} %6CLOCKSUM{Total}
#+PROPERTY: Effort_ALL 0 0:10 0:20 0:30 1:00 2:00 3:00 4:00 8:00
#+TAGS: { OFFICE(o) HOME(h) } COMPUTER(c) PROJECT(p) READING(r)
#+TAGS: DVD(d) LUNCHTIME(l)
#+SEQ_TODO: TODO(t) STARTED(s) WAITING(w) APPT(a) | DONE(d) CANCELLED(c) DEFERRED(f)
I use the #+CATEGORY lines at the beginning of each major
section for display in the agenda view. This shows me if an item is part
of a project, a task, a borrowed item (requiring completing in the near
future) or a financial activity.
Since I wrote this article it was pointed out to me that multiples occurences of #+CATEGORY are discouraged. Instead, a PROPERTIES entry is created as follows.
:PROPERTIES: :CATEGORY: Projects :END:
Here is a sample agenda view showing these Category tags. This display is sorted first by context tag.
Tasks: TODO Write descrip of my GTD / orgmode :COMPUTER: Tasks: TODO Study the Inkscape Tutorial Book :COMPUTER: Tasks: TODO Write an article about org-mode vocabulary capture :COMPUTER: Projects: TODO Write notes and lists of Japanese adjectives :COMPUTER: Financial: TODO Pay Mastercard :COMPUTER: Projects: TODO Tidy up my GTD web site .. directory on display :COMPUTER: Tasks: TODO Watch TOKYO STORY :DVD: Projects: TODO Daily Hiragana review on Anki :HOME: Projects: TODO Daily Katakana review on Anki :HOME: Projects: TODO Study - Beyond Words: A Guide to Drawing Out Ideas :HOME: Projects: TODO Read TALE OF THE GENJI :READING:
In the GTD system, contexts are used to define where a task can be done. The idea of a context is to narrow down your to-do list so you can focus on the work you can do at the present moment.
When I am at the office I look for "Office" context tasks, but when I am at home I look at "Home" or "Computer" (the Home computer) contexts. I read books during breakfast or on my daily train commute, and this context is "Reading".
Using contexts allows a larger list of tasks to be segmented into areas of focus. My contests are implemented as the following set of tags:
#+TAGS: { OFFICE(o) HOME(h) } COMPUTER(c) PROJECT(p) READING(r)
#+TAGS: DVD(d) LUNCHTIME(l)
Here are brief description of these contexts.
Tags are selected with the C-c C-c command then choose the letter
next to the full tag name.

I use the following set of To Do states, modelled on those described by John Wiegley in his blog post.
#+SEQ_TODO: TODO(t) STARTED(s) WAITING(w) APPT(a) | DONE(d) CANCELLED(c) DEFERRED(f)
The tags are used as follows:
I set the org-use-fast-todo-selection variable to true for fast
selection of tags. The C-c C-t command displays the following
selections:

At the beginning of the day I review the agenda for the day all my
context lists using the command C-c a H. This shows first of all any
time specific activities for the day, then tasks scheduled for the
day, followed by items for each tag. The custom command for this view
is:
("H" "Office and Home Lists"
((agenda)
(tags-todo "OFFICE")
(tags-todo "HOME")
(tags-todo "COMPUTER")
(tags-todo "DVD")
(tags-todo "READING")))
Next I can see the deadline warnings for upcoming events so I can decide to schedule the activity. For example, my home building insurance policy is due in 5 days time:
Financial: In 5 d.: NRMA Home Building Renewal due :OFFICE
I received the reminder notice about 4 weeks ago, but since it was not due until the 18th January, I created a task when I received the bill then placed the document in my bills to pay folder:
** NRMA Home Building Renewal due :OFFICE: DEADLINE: <2009-01-18 Sun>
Therefore I didn't have to worry about forgetting to pay the bill as I
knew my system would remind me closer to the event. Now I can decide
to pay this bill on Thursday, so I enter the command C-c C-s to
schedule the event, and select Thursday's date by entering Thur then
pressing Enter. The item will be updated as follows:
** NRMA Home Building Renewal due :OFFICE
DEADLINE: <2009-01-18 Sun> SCHEDULED: <2009-01-15 Thu>
After reviewing the date specific items I review the items grouped by tag. The GTD system says you should work from context lists, so when I am at the office I should look at the OFFICE list and just keep working through that.
What I like to do is to select the items i feel I MUST complete today, then shedule them for today. This gives me a list of things I want to achieve today, and as I work through the day I cross off the items and can see progress being made. I strive to have no more than about 15 items on the list otherwise I feel overwhelmed.
Once I have reviewed my lists I create another agenda view which shows just the items scheduled for today but sorted by context. Sometimes I print this list to have a daily plan for crossing off completed items with a highlight pen. I can then carry this printout in my pocket when I am away from my desk, or commuting. This custom command is:
("D" "Daily Action List"
(
(agenda "" ((org-agenda-ndays 1)
(org-agenda-sorting-strategy
(quote ((agenda time-up priority-down tag-up) )))
(org-deadline-warning-days 0)
))))

Knowing what needs to be done is all very well, but how long will it take to complete all these tasks? This is where I use the org-mode feature of adding time estimates to each task. The following line configures the time values I use for estimating task durations:
#+PROPERTY: Effort_ALL 0 0:10 0:20 0:30 1:00 2:00 4:00 6:00 8:00
Tasks that take several days to complete, for example reading a book will be given an estimate of how much time I can commit today. For example, I may allocate 4 hours to a major task for the day.
The best way to enter task estimates is to use Column View, so I
switch to this view with the command C-c C-x C-c.

The time estimate is updated by moving to the appropriate row and column then using the shift-Left arrow or shift-Right arrow keys to cycle through the range of values in the EffortALL property
Alternatively, a single digit can be used as a short cut. The number corresponds to the position in the list:
#+PROPERTY: Effort_ALL 0 0:10 0:20 0:30 1:00 2:00 3:00 4:00 8:00 Short cut ------> 1 2 3 4 5 6 7 8 9
The total time for the day is updated and visible at the top of the agenda window. Typically I allocate around 6 to 8 hours of tasks per day.
I use the Clock mode to record the duration of the task. This gives me feedback on how much time a task actually took which I can compare to my estimate. It is surprising to find how little time some tasks require (paying a bill) and how some tasks take much longer than estimated.
When I start work on a task I move the cursor to the task in the
agenda then issue the command I . The clock has started
and I can see the active task in the Emacs window along with a current
duration. This is a useful reminder of what I am working on (even
when I am not using Emacs) and how much time has been spent in this
current work session.

When stopping work on a task, I clock out with C-c C-x C-o, or enter
the command O in the agenda window. The total accumulated time is
displayed in the agenda view.
I often turn on the display of completed tasks to view the completed
tasks. The command is the letter l which toggles the view. This is a
good way of displaying when the task was done and to observe how I
have been working during the day.

Part of the GTD workflow is to do a weekly review of all the active projects and to get my system up to date. I created the weekly review file to use as a checklist of things to do.
The reminder to perform the weekly review is in my calendar as a repeating item. I have a link to the checklist file and I use clock in/out to record how long it took me to do the weekly review.
* TODO Review Weekly :HOME:
SCHEDULED: <2009-01-16 Fri +1w>
- State "DONE" [2009-01-10 Sat 21:46]
CLOCK: [2009-01-10 Sat 20:37]--[2009-01-10 Sat 21:44] => 1:07
:PROPERTIES:
:Effort: 1:00
:END:
[[file:weekly_review.org][Open Weekly Review Checklist]]
As part of the weekly review, the "Someday/Maybe" list of ideas and projects is reviewed to see which items (if any) should become active. Such a task should be moved from the "someday" file to the "active" file. It is sometimes necessary to copy items from the active file to the someday file.
The Someday.org has level 2 headings for the categories
* Someday ** Books to Read ** Films to Watch ** Things to Do ** Things to Learn ** New Projects
This is where org-mode refiling is used. The C-c C-w file is used
to prompt for a new location of the current headline. The targets for
refiling are stored in the variable org-refile-targets. I have
customised my variable to:
'(org-refile-targets (quote (("newgtd.org" :maxlevel . 1)
("someday.org" :level . 2))))
This gives the effect of showing second level headings in the
someday.org file and top level headings only in the newgtd.org
file.
The C-c C-w command will display the headings and the filename in
parentheses. This display will be different depending on which file is
being edited. In the following display I am about to transfer the
task of reading a book to the Tasks section of my newgtd.org file.

Throughout the day I take notes and capture ideas using Remember
mode. At work I have a file called privnotes.org and at home I use a
file journal.org.
The heading of my journal.org file looks like:
#+STARTUP: overview #+TAGS: DIARY(d) READING(r) FILMS(f) #+TAGS: IDEAS(i) WEIGHT(w) CONTACTS(a) PYTHON(y) * December 2008 * January 2009
I create top level headings for each month, and journal item headings have two asterisks. This allows me to organise my notes by month. The various Remember templates add the appropriate tag, so I can quickly create a list of Films I have seen, books I have read, or monitor my weight loss goal.
My newgtd.org file needs to be accessible at home and the office. I
have a directory of files on both my home and office computers and use
a USB drive and a Python script to synchronise the files.
I have a desktop shortcut "GTD Backup" which runs the Python script and gives a simple menu.
GTD directory is C:/charles/GTD/ USB directory is e:/GTD/ ---------------------------------- 1. Copy files from USB to disk 2. Copy files from disk to USB 3. Backup USB directory 4. Backup Disk directory Q. Quit ---------------------------------- What is your choice:
The script copies files using preconfigured directory and file names, performs backups to Zip file format. A very important part of the program logic is to stop me from accidentally copying an older version of the file over the newer version!
Date: January 2009
HTML generated by org-mode 6.17c in emacs 22