notes on "the art of getting things done" by david allen
todo
V/EditOps? Class(10812): tickler V/EditOps? Class(10812): separate action from non V/EditOps? Class(10812): one next action for each project V/EditOps? Class(10812): st proj
even unimportant todos written down? 4 mental peac
next action
car tire example. mtng w banquet committee johnnys bday receptionist slide presentation examp
next PHYSICAL action todo by context
purpose values vision
Plans are worthless, planning is invaluable. --Dwight Eisenhower
purpose vision brainstorm organize
(in broad organizational planning, "vision" often refers to what i'm here calling "purpose"; "mission" is then a more specific/narrower "purpose" node that starts the detailed planning process)
even unimportant todos written down? 4 mental peac
next action
car tire example. mtng w banquet committee johnnys bday receptionist slide presentation examp
it's good to have a way to "mail yourself" a reminder that will appear on a particular future date. you can use an auxiliary calendar, or a 'tickler file', which is a file with 31 folders, one for each day of a month, and 12 folders, one for each month. the current day's folder is in the front; each day, you take the stuff out of the current day, put it in your inbox, and put the iempty current day's folder into next month's folder. at the end of each month, you put this month's folder in back, and put next month's in front, and take everything out of it, and put it either in your inbox or in the day folders.
the key metric for how much organizational overhead you need is: you want your head to be completely clear of remembering stuff to do
shortterm projects separate actionable
review
i am put off by the large amount of space spent in the "Welcome" and in Chapter 1 telling you how great the system will be. also, the book itself spends lots of space trying to motivate you rather than just explaining the system, which is annoying (even though it might be necessary -- perhaps disorganized ppl like me already kno what to do, we just dont do it).
when you remember things to do in your head, it creates stress -- therefore, everything should be stored in external memory
there are items that you want to handle but you havent decided what to do with them yet.
some of these, you will eventually decide to ignore.
5 steps of making todo lists: " collect things that command our attention; process what they mean and what to do about them; organize the results, which we review as options for what we choose to do "
3 requirements on todo collection mediums:
tickler file/calender
workflow for "process" step (in psuedo-Jasper notation):
process = collection! processCollection processCollection = collection : collection processItem map [] processItem = it : it whatIsIt actionable it // if action = it nextAction action duration < 2 minutes // if action do action delegable if action delegate [it action] defer it trash? if #no action needed; discard this item it ref? &refFiles += it &somedayMaybe += it nextAction = it : proj = it whichProject # my addition &plans.proj' nil? // if &plans.proj = it plan &plans.proj nextActionInPlan delegate = action : action actuallyDelegate &waitingList += action defer = [it action] : it dormant? calender (&calender += [it action] or (&nextActionsList += [it action])
note: he emphasizes the steps
proj = it whichProject and &plans.proj nextActionInPlan
that is, for each action item, (1) identify which project it is part of or what the desired outcome is, and (2) identify and write down what the next action required is
a data structure from a program i saw for GTD (written in proto-Jasper):
Activeness = ['active 'inactive] could also have said $'[active inactive] or use keywords Activeness = [ACTIVE INACTIVE] could also have said $'[active inactive] Activeness2 = [CANCELLED NOT_STARTED WAITING_FOR STARTED DONE]
many'-1' project.actions action.project many'-1' category.projects project.category
action.name :: str action.status :: Activeness2 action.priority :: [-1 0 1 2] action.note :: str action.duration :: duration action.inactiveUntil :: date
SOMEDAY before this, action doesn't need to be thought about |
SOMEDAY |
category.status :: activeness context.name :: str [] context.location :: geolocation
is incorrect syntax, that's OR |
(action.status in [NOT_STARTED STARTED]) & (action.'project -> action.project.status == ACTIVE) & (action.'category -> action.category.status == ACTIVE) & (action.inactiveUntilDate <= now) |
durationSum = todo (.duration) map sum durationPriority2Sum = (.priority == 2) filter todo (.duration) map sum durationPriority2Sum = (.priority == 1) filter todo (.duration) map sum durationPriority2Sum = (.priority == 0) filter todo (.duration) map sum durationPriority012Sum = (.priority >= 0) filter todo (.duration) map sum
todo (.tillDueDate = .dueDate - now) map !
waitingForList = allAction
(action.status == WAITING_FOR) |
somedayProjects = projects (.inactiveUntil == SOMEDAY) map somedayActions = projects (.inactiveUntil == SOMEDAY) map
nextActions = (.nextAction) allProjects map uniq nonil
in action.status, what is "status"? a keyword (global symbol)? a (local) symbol, taken from the same namespace that "action" was defined in?
/ note: (.x == 5) => (?.x == 5)