Categories
Production

How I used an algorithm in Notion to prioritize my work

Reading Time: 10 minutes

Notion is a supremely powerful tool for creating wiki pages and databases. I use it to keep my tasks organized, compile notes on my narrative, and even for writing this article. With just a few tweaks and my custom template, you can make Notion work for you as your project manager and let it help you prioritize your tasks and maximize the impact on your projects.

I’ve written previously about how clearing my schedule allowed me to focus on doing deep work for four hours every day. But that raises an interesting question: how does one determine what the most important work actually is?

My free Notion template for a Project Management Dashboard

This project management dashboard is a system I’ve developed in Notion to help me figure out how I can maximize my output. It also makes it much easier for me to decide what to work on next.

You can find my free template here.

About my game

Screenshot of an early alpha build of Up There They Love

I’m using this system of task management for my game Up There They Love, an adult visual novel combined with a character management sim and a card game. Because I am the game’s sole developer, I have to wear many hats. I am the project’s programmer, designer, writer, and (begrudgingly) artist. But when I work on one area, another inevitably falls behind. That’s why it’s so important for me to constantly reevaluate my priorities and make sure that I tackle the work that has the most impact at any given time.

I’ve had a lot of difficulties juggling the work on my project over the years. Estimating the time required on individual tasks can ironically be very time-consuming. That’s why I’ve started to come around to the idea of not estimating time on tasks at all. Instead, I track how much effort a task will take and how much impact I think it will have on the project.

In my last article, I wrote about how I had six weeks between jobs to experiment with how I want to work. This time, I want to dive into how I actually track my work in Notion and get things done.

Prioritizing the work

Back in mid-December last year, my big goal for the game was to get it playable without having to use debug commands. When I started working on the game in earnest in mid-December, you could assign crew members to locations on the spaceship, but you couldn’t execute their tasks and the dating gameplay wasn’t implemented. I had previously designed and tested the dating gameplay on paper, so I knew what I wanted to do.

The problem was that there was a daunting amount of work involved in all of that: creating temp art, implementing game mechanics on the server, building a robust widget framework on the client, the list went on and on. The difficulty was not in finding something to do, but what to prioritize. I needed to find a system that would allow me to track the work without too much administrative overhead.

Planning in Notion with Marie

Marie Poulin shows how you can do project and task planning with Notion

Enter Marie Poulin, an absolute juggernaut when it comes to making you more productive with Notion. Her videos are often a starting point for me when people ask me about how I use Notion and this video is no exception!

In the video I linked, Marie demonstrates how she divides her work into what she calls “projects” and “actions”. Projects are high-level goals she’s working towards and actions are the tasks she needs to execute to achieve them. I will be using “tasks” instead of “actions” throughout my article, but the principles remain the same.

Marie’s dashboard was in turn inspired by the book Making Ideas Happen, which she has distilled into practical and actionable advice when it comes to managing your life with Notion. I highly recommend checking out her channel if you want to learn more about working with Notion!

Making it practical

After watching the video, the first thing I did for my game was to divide the work into projects.

For example, I have a project called “Night Gameplay” where I put all the tasks related to making the characters dateable. All in all, I tracked the following projects and tasks in the project manager dashboard I created for my game in Notion:

Overview of projects and tasks I tracked while working on my game

This simple overview allowed me to quickly see where I should put my attention next. Most importantly, it meant that I had more mental capacity for making decisions on my game.

Energy levels

Each project has an energy level. This is an easy way to keep yourself organized at a high level. Simply put: projects with a higher energy level should receive more of your attention. Energy levels can have one of the following values: Extreme, High, Medium, Low, and Idle. Extreme means that you intend to give it most of your attention, while Idle means that the project is either on the backburner or completed.

I use a Kanban board in my template to make it easy to swap projects between energy levels

The level you assign to a project might change every week or even every day, the important thing is that it gives you a global idea of where you want to put your focus. I use the following rules of thumb when assigning the energy levels:

  • Just one (1) project at Extreme
  • Only three (3) projects at High
  • No more than five (5) projects at Medium
  • Idle projects should get no attention

These rules are all about preventing “priority inflation”: if everything is at priority 1, nothing is. When I set a project at an Extreme energy level, it means that I intend to give it most of my attention. But as we’ll see, that doesn’t mean that other tasks won’t get done as well.

Writing good tasks

Each of Marie’s tasks on her dashboard has an effort and impact value and a number of other properties. My tasks have properties that are very similar, but what I would like to add to the conversation is that I use these properties to determine a priority score. By scoring each task with an algorithm, I can effectively outsource the tough decision of which task to tackle first. And of course, the algorithm is weighted towards making sure that you do the most impactful work first.

But for the algorithm to do its work, you need to provide it with good data. So let’s first go over how to actually write tasks. There is lots of literature on this subject, but a good starting point for me was this short article on the Amazing Marvin blog. I won’t rehash its advice here except to stress that a task should be small enough that you can give it a binary done/not done state.

Defining what done means

But I do want to talk about what I consider an important quality of a good task: that has an easy-to-follow definition of done. A solid definition of done means that you can determine whether the task is completed just by looking at the written description.

For example, let’s come back to the Dating Gameplay project from before. A poorly-written task for that project would be:

  • Play card from hand

This task is vaguely written, which makes it hard to decide when it is actually completed. Is it done when the player can click the card? Or when the card effects are actually applied? If you’re anything like me, you’re likely to forget about the details of your task if you have to turn your attention to another project for a while. So if I have two questions about the task as written, it should probably be split into two:

  • Click a card in your hand to play it
  • Apply card effects to partner

Note that these tasks still might not make a lot of sense to you. But that’s only because you lack the context for which it was written. These descriptions are enough for the intended audience (me) to remember what I wanted to do. Similarly, tasks that you write for your project might not make immediate sense to other people either.

Splitting tasks

You can of course keep writing more and more specific tasks, but you have to draw the line somewhere. And I would say that the important thing is that both of these tasks now have a binary done/not done state.

I do want to throw in a last bit of advice: try to avoid the word “and” in your task description. Its use in grammar is to connect two related sentence fragments, so if you’re using an “and”, you’re most likely dealing with two tasks instead of one:

  • Click a card in your hand to play it and apply card effects to partner

See what I mean?

Effort and impact

Now that we have an idea of how to create good tasks, we can start getting into the real work. For each of my tasks, I set an effort and an impact score.

Impact specifies how much getting this particular task done would help the game as a whole, while Effort is about how much sweat and tears are involved. Both properties have three possible values, ranging from high to low. Impact and effort are multiplied into a numerical score for each task. We can then already order tasks by score, from highest to lowest.

This scoring system gives a good idea of what we should work on next because the best tasks are the ones with high impact for only a little bit of effort. In fact, if we put the possible values for both properties into a table, here’s what the scores look like:

I’ve ensured that every combination of the properties results in a unique score by using primary numbers. That’s just math, baby!

Applying your fair and accurate judgment

You might be wondering how to weigh the impact or effort of any particular task. The trick is that it doesn’t really matter. Just like in planning poker, you should instead consider tasks between each other. The answer usually reveals itself when you do that.

Let’s say that you have added two tasks to the database:

“Add a slider widget” and “Create a widget base class”

You’ve done the first task many times and you know it’s not too much effort. The second task feels bigger and riskier, but it will definitely clean up the code. We can start then by saying that the first is a “bit” of effort, while the second is “lots” of effort. Giving them the following priority scores:

The first task has a score of 11, while the second has a score of 3

But when it comes to impact, we can say that the first task is only “low” impact. Sliders won’t be used much in the project, but it’s nice to have them in your toolbox. The second task is definitely “high impact” because it would consolidate a lot of one-off tweaks you have in your widgets.

This brings us to these scores:

“Create a widget base class” now has a score of 39, while “Add a slider widget” has a score of 11

I hope you can see with this example why the algorithm is so useful for prioritizing your work: by answering just two questions for each of your tasks you can get a rough idea of what to work on next!

The algorithm prioritizes tasks that are high impact and low effort, but that doesn’t always work. Sometimes you need to invest a lot of effort into something now that will save you a lot of headaches later. That’s why we have one more variable to add to the mix.

Project energy

The project already decides how much attention you want to give it. We can use its energy level as a modifier on the task score. The way you do this in Notion is by using a rollup on the task pages, which allows you to extract the energy level property from the associated project. Check out how I’ve done it by inspecting one of the tasks on my template.

Each project energy level applies its own modifier, resulting in unique priority scores for tasks with the same values for effort and impact, but differing energy ones. Extreme gives a +75, High a +35, Medium a 0, and Low a -25. Idle projects give a -1000 because those tasks should not be considered at all for your planning.

When we layout the possible combinations of effort, impact, and energy in a grid, we get the following priority scores for tasks:

The numbers were balanced in such a way that tasks on projects with lower energy levels can still be ranked above tasks with higher energy levels. For example, a task that is (Low Energy/Bit of Effort/High Impact) has a score of 118, which ranks above a (Medium Energy/Some Effort/Medium Impact) one with a score of 49.

I’ve made sure that every combination of Effort, Impact, and Energy Level results in a unique score. This means tasks move around a bit in your priority list when you modify the parameters, for example when you change a project’s energy level.

Putting it all together in your Notion project manager

When you put the three pieces of data together, you get the following formula:

taskPriority = (effort * impact) + projectEnergy

Using this formula gives you a simple but powerful tool to decide on what to work next. When you enter tasks in the database, you just have to consider three things:

  • Is this a concise description with a binary done/not done state?
  • How much effort will it be to execute this task?
  • How much impact will it have on the project?

By filling out these properties, the algorithm will slot it in between the other tasks, giving you a prioritized list of tasks to work on. And when you decide to give a project more focus, its tasks will follow suit.

As a reminder, you can get my free Notion template here.

When to write your tasks

When it came to writing tasks, I would write mine almost every day after lunch. This was often a natural break for me since I would just come out of a hyperfocused work session. I would switch gears, change into more a player’s mindset and evaluate the build. Inevitably, I would find something that was bothering me and I would write it down.

Because the system made it so easy to write new tasks, I would enter them into the database as soon as the thought arose. It then required very little tweaking on my end to make sure my work for the next day would have the most impact.

And I think you’ll find as well that as soon as your tasks are in a prioritized task database, you no longer have to worry about them so much.

Get more done with deep work

This article was kindly sponsored by Winston. They are an online platform for helping you get better at applying deep work to your schedule, which allows you to get more done in less time. If you’ve read my previous article on productivity, you know that this technique has already worked wonders for me.

Readers of this blog can now get 20% off their subscription by using the code “MRHANDS” at checkout. Give it a try!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.