Project management for people who like flow and hate project management
Joshua Mitchell / April 16, 2020
10 min read
If you care about being productive even a little bit, you've probably checked out the project management scene on the web.
Maybe you've read about and tried a few systems (monday.com, Asana, Trello...), hoping they would illuminate your work flow instead of adding extra complexity.
I did, and found that none of them worked for me. They were either too complex or too simple.
The too complex ones had a large learning curve or felt bloated. I'm not a project manager nor am I managing tasks for a team, so I didn't use lots of that functionality.
The too simple ones just.. didn't help. I'd use them to make to do lists, which was nice, but I kept running into scenarios that the systems didn't support very well.
- I'd like this done by this date, but it's not an official due date.
- I thought this task was for this project, but now it's for this other project. Is moving it seamless?
- This is now a slightly lower priority, but still higher priority than this other thing. How do I make that obvious to myself tomorrow when I start working instead of derailing myself by having to think about project management?
The solution came to me in the form of Roam Research. You can be really productive only knowing a small percentage of its functionality, but it gives you the tools to design your own system.
I use Nat Eliason's Goal and Project structure with a different workflow and prioritization queue, which I'll explain in detail below.
If you're new to Roam Research, I have a few resource recommendations for understanding what Roam Research is, how to use it, how I adapted it for taking notes, and why I think it could change the world.
Project Management in Roam#
I'll give an overview here, and then I'll add a FAQ to address granular questions.
This system is built on a few principles:
- creating is fun, project management is not - so let's make it take as little time and effort as possible
- life is dynamic, so let's make it really easy to switch gears on a dime without interrupting flow
- batch processing = good, context switching = bad, so let's make it into a pipeline with well-defined, small, self-contained steps
There are two modes:
- Real Work Happening Here, Can You Feel It mode (where you do needle-moving work)
- Housekeeping mode
In practice, life will force you to switch between the two modes (hey, we're all out here fighting entropy), but the more you can batch, the more cognitive load you spend on needle-moving work.
I prefer to do real work during the day and housekeeping in the evening. This also functions as a declaration to my brain that I am done with the day and I have permission to relax.
Real Work Mode#
This section will seem unusually short and simple - but that's because all the hard work happens behind the scenes in Housekeeping mode. If you're in this mode, you want to get stuff done, and this system supports that by getting out of the way.
Step 1: Go to the Master Priority List
Step 2: Click the first thing that doesn't have a prioritizeme tag.
Step 3: Start working
That's it! These pictures might look intimidating, but, in practice, this takes <5 seconds.
Once you finish:
- Mark it as done
- Put the date
- Put the time
- Remove it from the Master Priority List
- Move it from undone tasks to done tasks in your project (My "project" is One Off Tasks)
Open your relevant project in the side bar (search for it and then click it):
Move the task to the "Done" section.
- Finally, go back to the Master Priority List (search --> Master Priority List). I also recommend favoriting (clicking the star) this page.
Rinse and repeat until you're done for the day. Again, this process might seem complicated, but only takes a few seconds once you get the hang of things.
Each of these steps can be done in isolation (depending on what needs to be done), but to keep things running smoothly, they should be done, in order, at some regular interval. Ideas and tasks come when they come, but I do labeling and prioritization every week day in the evening to reinforce the habit.
Let's talk about each stage of the CLP (I remember it as "clap") pipeline:
It'd be nice if we could instantly retrieve, from memory, everything that needs to be done. Most people can't do that - it takes time to process, and stuff often pops up at inopportune times.
You might be on the toilet in between meetings when you remember you need to do X.
You haven't triaged yet. You have no idea what its priority is, what its dependencies are, its due dates - you barely just thought about it and you have other things to do.
Maybe you get distracted and forget about it.
Or, if you're like me, you'll lie to yourself and tell yourself you'll remember it, and then you don't.
This stage accounts for the fact that, whenever these ideas form, you want to account for them, but you don't want to deal with them right this second.
Step 1: An idea forms in your head.
Step 2: If you're at your computer, go to the Uncategorized Tasks page.
Add whatever comes to mind, and tag it with #prioritizeme at the end.
If you're on mobile, just add it to your daily note with a tag that indicates it should be thought about later. I use #[[Captured Notes]], since it's the default.
Once you've added it, press "Add Block" and wait for it to sync.
That's it! Go about your day knowing that it'll be taken care of (by you, later).
In theory, during the day, you've thought of new things you could do, or things that need to be done.
You have also, in theory, done the Task Conception step of getting their foot in the door, so the system can can account for them.
At this point, these nascent tasks exist in two places:
- the Uncategorized Tasks list
- in your daily notes with the #[[Captured Notes]] tag (or whatever tag you use)
Step 1: search for any notes tagged #[[Captured Notes]]
Step 2: move them to the Uncategorized Tasks list
Also, mark them as TODO and tag them as #prioritizeme.
Step 3: move all your tasks from the Uncategorized Tasks List to the task lists of their respective projects.
First, search for Projects using the search bar (i.e. pages tagged with the Projects tag).
Then, open the Projects page in the side bar.
Pick the project relevant to the task.
Finally, move the task (NOT a reference - the task will live in the project) to that project's Undone bullet:
You might have a slightly different system. Maybe you don't have goals or projects.
The only thing this assumes is that you have different categories (or labels) of work each task could fall into.
This is the stage where you give those tasks a home both physically and psychologically so you can scope them properly. Of course, feel free to modify this system as you see fit!
This is the stage where you decide the order in which the tasks on your plate will be done.
Step 1: Go to the list things tagged as #prioritizeme
Step 2: Move a reference (remember, they live in your project) of each one into the Master Priority List.
This is done by Option + Clicking (on a Mac) on the black bullet to the left of the task, and then dragging it to your Master Priority List in the sidebar.
You can also go to the Master Priority List, start typing /ref, select "Block Reference", start typing your task, and then select it.
Step 3: Rank them in rough order of importance so that the most important is at the top. Once you feel a task is in its proper place, remove the #prioritizeme tag.
Now, at any point you want to start working, just look at this list and pick the first thing that doesn't have a #prioritizeme tag.
Frequently Asked Questions#
This is a list of questions I imagine the audience might ask (with their respective answers).
What If You Run into a Roadblock with the Task? Or Priorities Change?#
No worries! Go to the task in question, add the #prioritizeme tag, and either add a new task or start the next one.
If you're inclined, run a Prioritization stage.
What If the Task You're on Is Too Vague?#
If the task I gave myself seems too vague or too daunting, I break it down into more just manageable sub-pieces, like so:
And consider it a mini-todo list.
The point is to remove the friction from starting the task, so I only get as specific as I need to before I know what to do.