Getting Things Done, Kanban, Emacs and org-mode

I started using GNU Emacs when writing
my PhD thesis in LaTeX and ironically that was probably the time, at least up
until recently when I knew most about emacs and was capable of writing bits of
elisp to customise my environment. After finishing my PhD I still used emacs
but not exclusively and gradually forgot everything except the basic set of
text editing commands.

All that changed in 2010 when I started attending the Clojure dojos organised
by the London Java Community
where emacs is the default development environment and learning a bit more
about editing lisp code in emacs comes in useful. I also attended an emacs
showcase
in November 2010
where I learned about org-mode for emacs.

What is Emacs anyway?

Before I go any further I should probably say a bit about GNU
emacs
for any of you who’ve never used
it. Emacs has been in existence for decades and was written to very extensible
and customisable. It is based around an implementation of lisp referred to as
emacs lisp (or more simply elisp) with some built-in functionality to support
text editing. Emacs runs on just about every platform out there and has a huge
number of extensions (or modes) that support almost every programming language
I can think of as well as other tasks such as reading email, reading usenet
news, interacting with version control systems (there are mods for CVS,
Subversion, git, bzr and others). Emacs can manage multiple windows and can
split each window into multiple views - this makes it easy to have parts of
many files visible at once as well as different sections of the same file -
I’m so used to how easy emacs makes this that I feel restricted using IDEs
such as eclipse even though they have the ability to split the main editing
window. Emacs has a reputation for being difficult due to the huge number of
key commands that exist but it is an immensely powerful system if you’re
willing to spend the time to learn the basics.

org-mode

org-mode is “is for keeping notes, maintaining ToDo
lists, doing project planning, and authoring with a fast and effective plain-
text system.” org-mode works by using a number of simple textual conventions
in ordinary plain text files. For example asterisks () are used to indicate
headings with the number of asterisks indicating the depth of the header (

for level 1, ** for level 2 etc). The tab keys allows you to fold/unfold
headings making org-mode an easy to use outline editor (I’ve started using it
for note taking based on this ability alone). However there is much more to
org-mode than just an outlining editor: it can create sparse views showing you
only the parts of a document that match your criteria; you can add tags to
items; it can manage to-do items with arbitrary states (eg TODO, PLANNED,
DOING, DONE, CANCELLED) and that’s just getting started. org-mode also has an
agenda view that can pick todo items out of a file and show them based on date
and tags. This is powerful as it means you can mix to-do items in with notes
on a subject and still have a view showing only to-do items with a selected
state (ie show only the in-progress to-do items that are due before Monday).
org-mode has excellent documentation and there are many tutorials out there
(see references at end of this post) so I won’t say any more about it’s
features - suffice it to say that org-mode has got rave reviews and is one of
the things that convinced me that I need to improve my emacs-fu.

Getting Things Done

For several years I’ve been interested in ways of using my time more
effectively. I’ve used various combinations of software, text files, paper etc
but nothing has quite worked out for me as either the method seemed too
heavyweight and I spent a disproportionate amount of time working the system
or planning or the method itself was lightweight but not effective.

For a couple of months I’ve been trying the Getting Things Done (GTD)
methodology
by David
Allen
. I think the key concepts are to get
everything written down in a way that both makes it clear what you need to do
to resolve an item and in what context you can take that action. So that in a
given context (eg at the office) you can easily see what are the actions it
makes sense to do now and ignore everything else. This is effective because,
if done well, the lists of items should make it clear what action needs to be
taken (so you don’t waste time working out what you need to do) and when you
can do it (so you don’t waste time looking at things you can’t take any action
on at the moment anyway). I first learned about GTD by reading David Allen’s
excellent
book
and using plain text files in emacs to make my lists of “stuff.” Later on I
wondered if org-mode would help manage the lists I was creating and, guess
what, there are several excellent tutorials on exactly that (see references).

Kanban

This week I went to see John Stevenson talk about
Personal Kanban at Skillsmatterin London. I’ve heard of
Kanban before but never used it. John
did an excellent job of explaining the basics of Kanban and gave plenty of
examples of how he used. At the core Kanban seems to be a technique for
allowing you to focus and limit the amount of work in progress at a given
time.

After the talk I was convinced of two things:

  1. I should try using Kanban both at home and with my team at Ecube Ltd
  2. GTD and Kanban have enough in common there should be some synergy in using the two together

GTD and Kanban

And so finally we come to the point of this post! It seems to me (as a
neophyte of both GTD and Kanban) that both techniques are about focus: that is
your view is limited to what it makes sense to do at any given time and
avoiding the need to keep thinking about what to do next. GTD makes a greater
emphasis on organising things by context and Kanban is a purely visual
technique. It also occurred to me that maybe the org-mode agenda view could be
made to behave like a kanban board and so it would be possible to have the
graphical simplicity of Kanban and still take advantage of all org-mode’s
features and avoid being locked into using any proprietary software.

At this point I would like to conclude with a rousing story showing how I
successfully fused concepts from GTD and Kanban to revolutionise the way I
work. However, it’s way too early for that so I’ll write another post once I
have anything more worth saying on the subject. In the meantime I would
definitely encourage you to take a look at the links below and see if Emacs,
GTD, Kanban or all three could be of use to you.

References