The Projects List
The Projects List's purpose is to hold the non-recurrent and non-scheduled tasks; tasks that need to be done once at no fixed time and date. In this system a project is a synonym of "one-time task" or "non-recurrent task" that must be done and has nothing to do with the duration or complexity of the task.
Projects are constantly added to the list on top of previous ones. It is even more accurate to refer to the Projects List as Projects Stack1; a structure where the last item added, is removed first.
New and unexpected projects will always be added on top of the current ones and often the projects that get the most attention is the last project added to the list. There is nothing wrong with that, the newly added projects require attention, but only to decide how to react appropriately. Being reactive in handling the urgent is good, but urgent is not necessarily important2. Most of the time the important projects get put aside and sink to the bottom of the stack. This means starvation for the important projects.
The top of the project list is transient. It is made of new ideas, emergencies,
impulsive decisions, yes that should have been no, ripples from others' actions,
etc. Because the relative urgency and importance of projects always changes,
the list needs to be handled with the right amount of reactiveness and
wisdom to swiftly tend to the most urgent without neglecting the important.
Project Properties
A project is defined by many properties but the most important, at least for this system are the creation date, the priority and the due date; if any. Those three properties allow us to evaluate the projects from four different points of view to decide on which one to focus.
When implementing the projects list, other properties will come handy; they are the name, the expected outcome, the status and the next action. Any other numbers of properties can be added like labels, tags, notes, etc., but the ones mentioned above are the minimum to manage the project list properly.
The Due Date
A due date is the date on which the project needs to be completed to avoid negative consequences or losing an opportunity. This is important, few projects really have a due date.
Warning
Few projects really have a due date. Do not set a due date if not required.
The Creation Date
The creation date is the date when the project was added to the list. It is not a start date and it does not change.
The Priority
The priority is a measure of the relative importance (or value) of a project when compared to other projects on the list. It also reflects required precedence to fulfill projects preconditions so that if A is a precondition of B then priority of A is greater than priority of B.
The Name
It uniquely identifies the project. It should be short, a few words usually nouns and adjective describing the object of the project. It acts as a mnemonic; it makes it easier to recall the project from our memory.
The Expected Outcome
It is a sentence describing what needs doing and what it would look like when it is done. It is a target and need to be specific. The more specific, the easier it will be to decide on the next step and even more important: when to stop. Without a clear end, projects will clutter the list and add toil to the management of the system.
The Status
It represents three possible states of a project: actionable
, current
and
waiting
.
- A project in the
actionable
state is not started yet. - A project in the
current
state is started and something can be done to move the project closer to completion. It is also calledwork in progress
orWIP
. - A project in the
waiting
state means that an ouside event must happen in order to move the project forward.
Projects start in the actionnable
state, then toggle between current
and
waiting
until they are done or discarded.
flowchart LR
A(Actionable) --> C(Current)
C --> W(Waiting)
W --> C
C --> D(Done / Discarded)
The Next Action
The next action act as a landmark of where to pick up work next time.
When the state is waiting
, the next action should include what is being waited
on. Not all project needs to have a next action, only the one in current
and
waiting
states.
Working With The Project List
Each time a non-recurrent task is accepted it must be added to the project list and documented with a name, a creation date, a due date (if any) and an outcome. On a regular basis, the project list is reviewed to:
- remove discarded projects (aka: pruning)
- assign priorities
- define next actions
- select tasks to work on
Pruning is important to keep the projects list accurate and relevant. If not pruned properly, the list can't be trusted to reflect what really need to be done. A good indicator that the list is not pruned properly is that side lists start to appear in an effort to capture what is important.
Finally, tasks are selected to respect our priorities, to meet due dates and balance responsiveness with reliability. The selection of tasks need to consider: the due date, the priority and how long the task has been waiting. Sort projects by:
due date
in ascending order and choose the task with the earliest due date.creation date
in descending order and choose the newest one.creation date
in ascending order and choose the oldest one.priority
in descending order and choose the highest priority.
The selected tasks become current
and constitute the work in progress, the WIP3,
to focus on.
Controlling the Work in Progress
Once a set of tasks has been selected to work on, how is time and energy divided among them? Working sequentially and uninterrupted is almost impossible, so multitasking will eventually occur. Here multitasking means concurrency: having multiple projects ongoing during the same period 4, not parallelism: doing multiple things at the same time5.
Considering the inevitability of multitasking, the most important thing is to control how much work is undertaken at once. Having too much work ongoing will result in many context switches and the overhead, it implies.
WIP should be kept low. So when looking for something to do on the project list, what is already started should have a higher priority unless everything is in a waiting state. And even then, it may be better to wait then start something new.
The Tail
Sorting the list by date of creation and picking the oldest project introduce a first in, first out6 track to ensure that important tasks eventually get done. If the list was regularly pruned, the tail of the list will hold the important projects. Projects in the tail have survived pruning because they are important, but never urgent enough to grab your attention.
Implementation
The Project List
is easy to build and manage in a spreadsheet.
Using a spreadsheet makes it simple to add, remove and search projects.
But most importantly, it allows sorting using different criteria.
The simplest spreadsheet has the following column that corresponds to the project's properties:
Project
: The name of the project.Status
: The status (a
= actionable,w
= waiting,wip
= current,d
= done)Open
: The creation date; when the project was added to the list.Due
: The due date; when does the project needs to be completed?Priority
: The priority; the relative importance or value of the project.Next
: The next action; what should be done to move forward?Outcome
: The expected outcome; what will it look like when it is done?
-
Stack: https://en.wikipedia.org/wiki/Stack_(abstract_data_type) ↩
-
Eisenhower Method: https://en.wikipedia.org/wiki/Time_management#The_Eisenhower_Method ↩
-
Work In Progress: https://en.wikipedia.org/wiki/Work_in_process ↩
-
Concurrent Computing: https://en.wikipedia.org/wiki/Concurrent_computing ↩
-
Parallel Computing: https://en.wikipedia.org/wiki/Parallel_computing ↩
-
FIFO: https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics) ↩