I found this task management system useful as an Engineering Manager and Program Manager at Apple, as a student pilot, and now as I study to teach others how to fly. It helps align tasks with priorities, then focus on completing them efficiently.
Let’s start with a rough overview. (We’ll walk through an example later.)
- Set a budget for how much work you can do in a day/week. (The next section covers how to set and measure this budget.)
- Select the most important tasks to be completed at the start of each week–and each day–until you’ve hit your daily/weekly budget.
- Execute those tasks. And don’t worry about any non-prioritized items–you’ve already determined what to focus your effort on.
This ensures you’re reaffirming the most important tasks at a regular cadence, without the overhead of worrying from other work yet to be done.
It also allows you to balance multiple priorities. For instance, if recruiting is meant to take 50% of your time, you should see 50% of your budget dedicated to recruiting.
Measuring Work (Effort) Required
It’s natural to estimate effort in hours required to complete a task. But this doesn’t match how humans actually think. More specifically:
- Humans are bad at absolute estimates (number of hours), but great at relative estimates (Task A is twice as much effort as Task B).
- Humans interpret a ~60% increase in size as differentiable (it’s hard to say a 5-hour task is notably different from a 6-hour task, but 5-vs-8 hours is a clear step up).
For these reasons, many task management systems use an abstract measurement: story points.
Measuring Tasks With Story Points
To use story points for effort estimation, first choose a task that is approximately the smallest unit of task effort. Give this an effort estimate of 1 story point.
Since everyone has a different smallest unit of effort, the meaning of 1 story point will be different for everyone. (For instance, “make toast” could be a 1 story point task in your system.) That’s ok, the goal is to develop your own scale to estimate effort.
All other task efforts can be estimated relative to that 1 story point. If a task seems like ~3x as much effort, give it 3 story points.
But, to avoid indistinguishable effort estimates, make sure the story points have ~60% increases between them. Typically, I use 1, 2, 3, 5, 8, 13, or 21.
Story Points In Practice
Together, these ideas address both concerns above.
- Story points are relative estimates (we expect a 2-story-point task to be ~2x more effort than a 1-story-point task), which makes us more accurate in judging them.
- By picking story points that are spaced in roughly 1.6x increments, we can differentiate the level of effort required for particular tasks.
Estimating how much effort a task will take, and how much effort is available to spend in a given day/week, takes a bit of practice. Don’t worry if your estimates are wildly off at first–you still gain benefits from this task management system even while your effort estimates are improving.
Example During a Week
Let’s see this in action over the course of a week. Here is an example sprint board, with definitions below.
Elements on the Board
- Task: Work to be completed.
- Sprint: A length of time in which to complete work. (Here, we’re using daily sprints nested within weekly sprints. This is the key innovation of this system.)
- Daily/Weekly Sprint: A set of tasks scoped to what is realistically achievable in a single day/week.
- Board: A physical or digital space to see tasks in the current sprint and their status.
- Story Points: An estimate of the relative effort required to complete a task. For more information, see the plausibly useful idea for this post.
- Story Point Budget: How many story points you can pull into the Daily or Weekly Sprint. Set this based on your average story points actually completed each day/week. (On your first day/week, guessing a budget is fine.)
Task Statuses on the Sprint Board
- Daily/Weekly Backlog: Incomplete tasks prioritized for this day/week. Any tasks not in the Daily/Weekly Backlog should not be worked on.
- In Progress: A status to make active work more clear.
- Daily/Weekly Done: Completed tasks. (Nice!)
Not Yet Prioritized Tasks
- Project Backlogs: Tasks intended for future sprints, roughly sorted into priority order. Tasks can be grouped however you prefer. Personally, I use one list per project or topic.
- On Ice: Special backlog of tasks you want to keep, but won’t happen in the near future.
At the start of each day:
- Write down the sum of story points for each column. (This records how many story points you finish each day/week, to recalibrate story point budgets.)
- Move all Daily Done tasks to Weekly Done; move all incomplete tasks to Weekly Backlog.
- Pull tasks from your Weekly Backlog into your Daily Backlog until you fill your daily story point budget.
At the start of each week:
- Follow the Daily Workflow for Daily Sprint tasks as described above, and record story points.
- Archive all Weekly Done tasks.
- Move incomplete tasks to the proper Project Backlogs, roughly ordered by priority.
- Use this step to organize any new tasks that popped up through the week.
- Your board should be clear now.
- Pull, in priority order, tasks from your Project Backlogs to your Weekly Backlog until you fill your weekly story point budget.
- If you want to pull in a task from the Project Backlogs without a story point estimate, add it now.
- This is a good time to recalibrate your daily/weekly story point budgets, based on your records.
- You may also decide to reserve a percent of your budget for unexpected tasks, depending on your work environment.
And you’re set for the week! Now you can rest easy knowing the work you’re doing aligns with your priorities.
Situations You May Encounter
You’ve completed all tasks in the Daily Sprint: Nice! You can pull from the Weekly Backlog column, one task at a time. If you’re regularly over/under budget, this will be tuned when you next recalibrate.
An unplanned task arises: Add it to your Weekly Backlog. Normally, it shouldn’t go into today’s sprint–otherwise incoming tasks will regularly derail what you’ve already decided the priorities should be. As a bonus, you can compare the board’s story point total at the start of the week to the story point total at the end of the week to see how many unplanned tasks emerged.
Tools I Use
You could run this task management system using post-it notes on a wall if you’d like. (Plus, there’s something very satisfying about moving a physical note to the ‘Done’ column 🥰)
If you’d like something more high-tech, I use:
- Trello for my digital board, because of their free offering and simple interface
- Agile Tools power-up to track story points and for quickly summing story points per column
- Obsidian to record story points per column as a Daily Note, although you could jot this information anywhere
That’s the whole idea! Feel free to comment if you have any questions or thoughts. And if you’re in the Bay Area, let me know if you’d like to learn how to fly!
All the best,
- If it helps, you could think of this as a greedy algorithm for task management.⌃
- Miranda, Eduardo. “Improving subjective estimates using paired comparisons.” IEEE Software 18.1 (2001): 87-91.⌃
- Stefan Döbrich’s article captures the reasoning well.⌃
- Story points are a fascinating, nuanced, and frequently debated topic. I’ve tried to focus this post on the practical application, but if you’d like to learn more, Maarten Dalmijn’s post is a nice starting point.⌃
- Story points, and the advantage of relative measurements generally, are the plausibly useful idea for this post.⌃
- This is the Fibonacci sequence, which turns out to converge to the golden ratio, ~1.6 (e.g. 8/5=1.6). Notice that all my numbers in the example boards are from this sequence.⌃
- Consider setting work-in-progress limits for this column, to limit the number of tasks that can be simultaneously tackled. I use a WIP limit of 2, meaning I can’t start a third task until I’ve finished one of the existing tasks.⌃
- That said, I’ll keep a task in the Weekly Backlog if I know it needs to be done this week. Just don’t let a task sit in the backlog week after week.⌃