I go
through 50 or so support tickets, and Nagios alerts that must
be acted on, in a given shift. There's also long term projects to
manage. That's a lot of work, and a lot of
distractions for a single work day. To keep it all under
control I turned to the book
"Time
Management for Sysadmins" after enjoying some other books of the
author. The book promotes a "cycle" system, with one TODO list/sheet
per day, where all unfinished items from the previous day are
transferred onto the next, and a few minutes invested in prioritizing
and planning the day. There's much more to the method, but that's the
gist of it, avoiding the "never ending TODO list of
DOOM".
Tools of choice for the author are pen and paper, or a PDA is
suggested as an alternative. I wouldn't carry a journal and don't own a
PDA, but I already depended
on org-mode heavily for my personal
projects management and nothing could replace that, really. So while I
was planning how to apply this new found wisdom and pair it with
org-mode I came up with a system I wish to describe here. I
wanted to do that for a long time, even though it's very specific to
my needs, so most likely nobody can make use of it as is. But perhaps
it gives you ideas, and even that would be great
Org-mode is a top notch project management tool, inside a good
editor. Great tools for the job. Yet it's very easy to fall into the
"list of doom" trap. In the context of org-mode its gurus actually
recommend keeping big lists with a small number of files, because of
good agenda overview and unlimited possibilities of org-mode... but I
decided to avoid it and imitate the system the book promotes with one
list per day, and project in my case (author splits them into
sub-tasks, for day lists). If you're familliar with the cycle system
and thinking it doesn't make sense read on, org-mode agenda view is
the key.
I start my day with a terminal emulator, and I realized it would be
best to have a dedicated tool that can be used from the command
line. So I
wrote mkscratch,
a simple tool that sets me up with a scratchpad for the day, helps
managing the old pads, but also pads of long term projects. It's not
actually that specific to org-mode, yet it was written with it in mind
so headers and file extensions reflect that. But it is easily a
general purpose editor wrapper for creating scratchpads or project
pads.
This is how I tie it all together, day-to-day pads are
in ~/work/pads, and once invoked mkscratch creates a
pad for the day, if one doesn't already exist, and
links ~/pad.org to
~/work/pads/MM-DD.org. Then it starts Emacs if not already
running, and opens the pad for the day. I might have scheduled a task
days or months in advance and created a pad for that day, then only
linking of ~/pad.org is performed and editor is opened. Long
term projects get their own directories below
~/work/projects (because projects have other files as
baggage), with some project identifier as the directory name, while
the main pad for every project is
called project.org. This is of some importance (see
the .emacs snippet below).
A good part of the author's cycle system is maintaining a calendar
with meetings and project deadlines meticulously marked. From the
calendar items are copied onto the list for the day when their time is
up (during those few minutes of planning, before the day starts or at
the end of the previous day). While contemplating how to translate
that to org-mode I realized using the Agenda View as is will
do just fine, if only I could gather all scheduled items and
approaching deadlines from all the files (pads and projects) into this
single view. Even though it's not a very conventional usage pattern
for org-mode (remember, we have up to 300 files near the years end),
it can be done easily in .emacs:
;; Files that are included in org-mode agenda (setq org-agenda-files (cons "~/work/pads/" (file-expand-wildcards "~/work/projects/*/project.org")) )One of my past articles described connecting my window manager with org-mode for taking quick notes. I use the same method now for appending to pad files, not always, but it's very useful to quickly store a task when you're in the middle of something.