Biting the bullet

So after much waffling between solutions (see previous post) and many uncomfortable showers thinking way too hard, I took the opportunity on my Thanksgiving vacation to bite the bullet and switch over to Todoist. I’ve spent the last couple weeks getting used to the new workflow and ironing out some kinks.

While I’d like to switch over to something like Vikunja eventually, the fact is that it’s not there yet. Trying to manage my own text-based system is a pipe dream, especially given my general lack of programming experience, and the requirements I’ve put on the system. I could mostly manage with pencil and paper, and do a hell of a lot better job of it than I had previously, but there’s a lot of overhead involved with writing and rewriting that I wasn’t too keen on. I also didn’t want to carry around an 8.5x11 notebook or three ring binder, but also figured I wouldn’t have enough space in a pocket sized notebook.

This time I did something that I haven’t done previously: I committed. Todoist was going to have to meet my needs.

Some factors that influenced this decision:

  • I’m already paying for Todoist.
  • I’m already used to using Todoist, and my core workflow was already there.
  • Some features of Todoist are, to me, indispensable:
    • Smart date recognition (and all the other bells and whistles for quick add)
    • Mobile widgets
    • Reminders (desktop AND mobile)
    • Reliable syncing between devices
    • Quick Add global hotkey on Windows - absolute lifesaver!
  • It supports the requirements outlined in The Cycle

Workflow changes

Initial changes

Honestly, my Todoist was a mess. I’ve been using it for about a year and a half up until this point, just for managing my personal life. And I use the term “managing” loosely there.

Initially, I decided to rely more on the core features built into Todoist, like the Today view, Inbox, and Upcoming, as well as newly added Calendar view, as opposed to building complex filters, tagging, etc. Tasks tended to get lost, the overhead in terms of complexity was too much to manage.

I built out the following to get started:

  • Calendar - tasks due at a specific date and time, at a specific place, for a specific duration.
  • Habits - recurring tasks due on specific days, but not at a specific time or necessarily location.
  • Goals - tasks generally containing subtasks that represent things I’d like to accomplish at a certain point in the future.

I had several other projects in the meantime, while I figured things out. For example, Calendar was broken down into Appointments, Reminders, One-off, Recurring, and a couple others. Eventually I decided to prune those and just stick everything into one project for that type of task. Same went for Goals (personal) and Goals (professional), which were initially two separate projects - I eventually merged the two, and have a Goals (work) project now, which we’ll get to in the next section.

I also have various other projects for tracking miscellaneous things, that aren’t the core of my daily workflow. For example, shopping list.

Separating work tasks

I fought this for a while. I don’t want my professional tasks to filter into my personal life. But I also don’t want the overhead of adding @work to every single work task, or putting them in a specific project, or what have you.

On the first day back at work that I tried this, I decided: why have any separation at all up front? Stick everything into Inbox. Organize them later.

At the end of the day, work tasks will have one of three statuses:

  • Completed - so they won’t filter over into personal life.
  • Due at some point in the future - so I won’t see them until they’re due.
  • Incomplete, and due today, so still just sitting in my inbox staring at me.

The only issue is that last one. Granted, the second one will still be in my inbox.

The solution for me has been this:

  • Add duplicate projects for work, name them something like “Calendar (work)” or “Goals (work)” or “Habits (work)“.
  • Add a recurring task to take 15 minutes at the end of the day and categorize all work tasks that remain in Inbox - put them into the correct project, and reassign due dates where applicable and as necessary.

For example, if there’s an Inbox task due on Friday that got added to Inbox and didn’t get done, I reschedule it for Monday, and move it to the “Tasks (work)” project. Using the core views of Todoist - namely the Today and Inbox views - I can safely ignore that task until it is due on Monday, whereupon it shows up on my Today view.

Categorize based on attributes instead of based on content

Instead of trying to define an up-front structure based on the types of tasks, I decided to manage tasks based on their attributes. Everything should come back across my desk, so to speak, precisely when it needs to. I can’t go back and review 10 different projects and categorize accordingly, I can’t manage 20 different filters to view all the different types of tasks, and my needs are going to change all the time. But certain attributes of tasks are consistent. For example: they’re either due on a specific day, or they aren’t.

With a couple weeks of trying this out, and going off some tenets defined in Time Management for System Administrators, I came up with the following “rules” for managing tasks:

  • No overdue tasks. At the end of a day, an incomplete task should either be rescheduled, due date removed and moved to a review project, or archived.
  • No tasks without a due date, except in a specific subset of projects that get reviewed regularly. (Really just two projects, Goals and Review, but separated logically into personal, work, and shared.)
  • Don’t use filters! I know they are tempting, and powerful, but absolutely do not! Use Inbox, Today, and Upcoming if you must.

The daily workflow

The hardest part, really, was converting all my tasks to this “format”, for lack of a better word. Once I had done that, had a few days under my belt, and followed my few rules, the workflow really manages itself.

This workflow has a few different parts to it. I’ve kept them un-technical intentionally. Tasks will be different per day, but their attributes will not change.

  1. Plan the day.
  2. Do the day.
  3. End the day (Inbox Zero).

Plan the day

At the start of the day, I go to the Today view. (This is a new-ish feature of Todoist, and basically gives you an agenda in 15-minute increments. Really a life-saver, and this implementation of the Cycle would not have worked as well as it does a year ago, before Todoist implemented this feature.) All my tasks due today are displayed there. For things due at a specific time, they are either 1) already scheduled and time-blocked, or 2) I can click and drag them onto the calendar and time-block them. For tasks that aren’t necessarily due at a particular time, I prioritize. Todoist has 4 levels of priority: 1 (red), 2 (orange), 3 (blue) and 4 (default gray). I try to avoid anything other than 1 or 4, although more recently I’ve implemented 2. For my unscheduled tasks (due today but not at a specific time), the higher priority ones automatically float to the top. Brilliant!

In Time Mgmt for Sysadmins, Tom Limoncelli defines a task as either due now, due soon, or everything else. I try to take this tack when approaching priority. 1 is now, 2 is soon and can be rescheduled if necessary, and 4 is everything else.

Do the day

Throughout the day, reference the Today view, and complete tasks based on time and/or priority. In my particular workplace, requirements change, new tasks come in. And always, always, ideas are coming into my head. I try not to worry about having everything perfect, but I do try to record everything that comes in unless it’s a task I can do right then in under two minutes. If I’m at my desk, I use the desktop Quick Add; if I’m out and about, I use the Quick Add widget on my phone. I use the following rules of thumb to add tasks:

  • Due now: add “p1” and “tod” to tasks so it shows up in Today as priority 1.
  • Due soon: add “tod” to task so it shows up in Today and worst case scenario will get managed at end of day. (optionally, add “p2”)
  • Everything else: whack it out on the keyboard and hit enter. Add just enough context to be able to decipher what I’m referring to when I revisit it. It’ll be there waiting in my Inbox at the end of the day.

With this approach, I am certain that as long as I add a task to my tracker and follow my self-imposed rules, it will get managed later when it needs to be. Most tasks just get done and marked complete, and I don’t have to worry about them after that point. If not, well, they aren’t going anywhere.

End the day (Inbox Zero)

Take 10 minutes at the end of the workday to do the following:

  • Reschedule any due tasks that did not get done. If something is priority 1, take any necessary actions (send an email if necessary, provide an update as to why it didn’t get done, or maybe it wasn’t that high priority in the first place), then reschedule. Everything else, simply 1) reschedule, 2) remove due date and categorize into “Review” or “Goals”, or 3) archive if no longer relevant.
  • Move any tasks in Inbox to their appropriate places. If it has a due date, move to “Tasks”, if it doesn’t have a due date, move to “Review” or “Goals”.

I can rest assured that my tasks will show up when I sit down for work the following day, and they won’t take up valuable brainspace in the meantime, either by trying to remember them or leaving them sitting there overdue or in my personal workspace because I’m afraid to lose them.

I think this, or workflows similar to this, are pretty common. “Inbox Zero” or some equivalent. I’m amazed that 1) it’s taken me this long to implement and 2) how ultimately simple it is. Removing the hemming and hawing about how exactly to categorize a task based on its content and instead categorizing it based on its attributes has done wonders for my ability to get things done.

Also worth mentioning, I’ve simplified this slightly. Since I use this for my personal tasks as well, I have two separate recurring tasks for this “end the day” process: one around 5pm when I typically leave work, and one at 10:30pm to do the same thing for my personal tasks. I achieve “Inbox Zero” for my work tasks before I leave work, and true zero before I go to bed.

This also works for weekends! On Friday, I simply reschedule any work tasks to Monday, and I can safely ignore them until they come across my desk Monday morning.

Planning the day works regardless of whether it’s a weekday or a weekend - on weekends I simply don’t have work tasks to schedule.

Where do I go from here?

I’m still working out a few kinks. I still find myself wanting to categorize based on task content, it’s been a reflex for so long.

The Goals project is something I’ll probably make a post about later on. I use subtasks, project sections (short term, long term, vision), and due dates to “sprinkle in” tasks to achieve a greater goal over time. (This is per the advice in Time Mgmt, and I’ve found it to work very well.) But I also find myself overloading the Goals project with tasks that are probably less important, and it’s something where I’m trying to find a balance between getting things done and tracking what I’m doing. Using subtasks, I find that invariably I want to categorize something based on its content, as it makes more sense to do so - if I have a task for “document this particular process”, I want to put it under the goal for “catch up on documentation” - or what have you. I have a lot of things related to this blog or my home LAN that start as ideas, get dragged to the goal project, then get dragged under a subtask, then turns out I probably could have just left it in the Inbox and taken two minutes to complete it, and so I spend more time categorizing it than I did actually doing the thing.

But hey, it’s a work in progress.

Remaining agenda:

  • Streamline shared tasks. (See project layout below.)
  • Continue to work on Goals project process.
  • Streamline project process - for tasks that are more in depth, especially for work projects. Create a project that is named and dated, and archive afterwards?

Snapshot - my current project layout

  • Personal
    • Tasks (MUST have a due date)
    • Review (do NOT have a due date. I review this project weekly.)
    • Habits (recurring tasks with due date, I use the Habit Tracker extension for a lot of these. Divided into three sections: Morning, Afternoon, Evening.)
    • Goals (tasks, generally with actionable subtasks, that I want to get done within a certain time frame, and generally more long term than a single task. Divided into four sections: Short term - 1 month, Mid term - 3 months, Long term - 1 year, Vision - 5 years. I review this project weekly and monthly.)
    • Archive (basically my solution for Todoist lacking custom statuses. Tasks that are no longer relevant but I don’t want to delete go here. Example, a task that I “won’t do”.)
  • Calendar (Events, basically. Tasks with a certain date, time, place, and duration. The only filter I use is based on this project, just to separate shared and work events.)
    • Shared Calendar
    • Work Calendar
  • Work (catch-all for work tasks. I use a parent project as alas, Todoist does not have project folders (yet?). This project does not contain any tasks. The child projects are structured the same way as the foregoing, just for work tasks instead of personal.)
    • Tasks (work)
    • Review (work)
    • Goals (work)
    • Habits (work)
    • Archive (work)
  • Shared (I got my girlfriend to start using Todoist, and this works similarly to work. We use the share and assignee capabilities. This is also categorized the same as personal.)
    • Tasks (shared)
    • Follow-up (shared)
    • Goals (shared)
    • Habits (shared)
    • Archive (shared)
  • Lists (miscellaneous trackers)
    • Shopping
    • Books
    • Meals
    • Household
    • Gifts
    • Wants
    • … etc
  • Later (working on moving these to Tasks, Follow-up, and Goals)
    • Server (will move)
    • Peruse (links, to read, etc)
    • Remember (probably will delete or move to Lists)
  • Templates (tasks with subtasks that I do often but are not recurring - so that I can duplicate, move to correct project, and set other attributes, instead of having to remember the entire process. These are generically named and don’t have a due date, and don’t get completed - they get duplicated.)
  • Trackers (miscellaneous tracker projects such as a reading tracker or a car maintenance tracker - they’re fine where they are for now.)

EOF