As I’ve been struggling to find the perfect task management app for me, I’ve come across some things that I don’t think many task management app designers think long and hard enough about.
(Note: Begin ignores almost everything on this list by design, it’s meant to be overly simple. What I am referring to is the apps that are for “power users” — whatever that means.)
For me, then, the perfect task management app hits on all of these points in addition to what you would normally find in an app like OmniFocus.
I’ve said it before, but it bears repeating: if your app is not built for collaborating with a disparate group ((Not only ‘teams’ or companies, but groups of freelancers, or groups consisting of one or more people not at the same company.)) of users, then you are skating to where the puck was. ((I am beginning to hate that turn of phrase.))
At the most basic level I believe that collaboration in a task management app should be implemented to include the following:
- Assignment of tasks.
- Assignment of a project, with ability for tasks within that project to be assigned to others.
- Commenting on tasks.
- Partial, or progressive, completion indicators. This would be like sub-tasks, but would not need to be implemented from the creation of a task. Meaning, if someone assigns you to ‘create budget’, and you are waiting on items. Then you can link your waiting task to this budget task, and show when that waiting action was completed, thus showing the state of progress on the budget task itself. This idea also allows for marking the task as ‘drafted’, or ‘reviewing’ and thus moving a progress indicator along. Doing this partial progress report removes the need of a manager to bug you about where you are as they can see progress — and removes your need to type explanations as you can show progress through completing the supporting tasks. Hell, even allowing someone to arbitrarily mark a task as XX% complete would go along way towards making life easier.
- Sharing of files within a task/project. Even if that is just a linked Dropbox folder, it would be better than nothing. Not a day goes by where I don’t look at my tasks, then jump into a folder to open the file(s) I need to complete the task.
- Built-in ability to decline an assigned task. Most collaborative task management apps assume you will accept a task without complaint — give us the ability to say “hold the fuck up, whatchyou talkin about”.
- Ability to collaboratively assign time estimates. Going along with the last, if I assign a task I can tell the person I am trying to assign it to two things: how long as a manager I think the task should take, and what the time commitment is. That way the person being assigned not only knows my expectations, but knows the demand which is going to be put on them.
Just the basics here — we don’t need the most massive collaboration features, but we do need a better way of tracking work others are doing, and accepting work from other people.
Project management, or task management
Almost more important than collaboration is to define if your app is for project management, or for task management. Even still, a good app needs to do both well. Project management apps like Basecamp are all about collaborating, but you should also be able to use such an app on a personal basis. In other words I shouldn’t have to copy tasks between systems and check them off both places.
I shouldn’t need two apps: one for my manager to create schedules and assign tasks; and another for me to drill down the task and mini-projects into actionable tasks. This should be done within one app in order, not only for people to work better, but for managers to more easily manage their staff.
Send Reminders For Me
There should be a special class of tasks that is a reminder task, where you want to remind, or follow-up, with another person. You should be able to compose and send that email/text/notification within app, right there in the app. See the task, perform the action, task is marked complete and you get asked if you want to have it pop back up in X days.
Managers, or team leaders, spend an inordinate amount of time checking to see if things were/are done. We need a better way for everyone to manage this. I shouldn’t have to make a call, and you shouldn’t have to answer a call (or email) to let me know that you did go to the store and buy that thing.
Defer / Snooze
I’ve taken to calling the Defer date (formerly Start dates) in OmniFocus as one of the best, yet most under promoted, features of the app (but why doesn’t Forecast view show me every ‘deferred’ task instead of just those coming available today, this drives me nuts). David Sparks will fill you in on why they are so powerful, but it’s like a can of magic when you start using them.
The best way to think about these dates is to think of them as snooze buttons for your tasks. If you can’t, or don’t, want to do a task today then you shouldn’t see it just because you are looking at all tasks due this week. Moreover it shouldn’t be hard to push the defer date off (or the due date for that matter) on any task.
Even the mighty OmniFocus fails when it comes to quickly being able to change the dates on your tasks. ((AppleScripts can solve this, but that’s a hack.)) With Begin that was one key thing we focused on (albeit easier given the two-day-only nature of the app): making it just as easy to push a task off until tomorrow, as it is to complete the task.
Every task management app excels at quickly allowing you to complete a task, but I have to re-assign dates just as often as I have to complete tasks — yet for some reason little thought seems to be given to the workflow of putting off tasks. ((You can argue that this is “for productivity”, but I call bullshit. Sometimes stuff comes up and you need to put things off, it’s highly unproductive to make me jump through hoops to do that. And yes, I use Applescripts to speed this up, but I shouldn’t have to.)) There is immense power as a person, if a task is easy to shove off your plate. Having something on your todo list for today, when you know you won’t do it today, is more distracting.
In a nut shell: help people hide what they can’t act on, and quickly snooze what they can’t get to today.
In an interview with the OmniGroup Shawn Blanc got this nugget about how Derek Reiff uses OmniFocus:
I separate my tasks at the very top level by using two folders: Work and Home. When I’m at the Omni Group office, I enable Focus on the Work folder and every view or perspective I switch to from that point on will only show Work actions and projects.
I think that pretty clearly shows the trouble people have with task management apps: they are personal apps that are used for both work and personal things. One thing I love about Flow is that I can have a Personal and a Work ‘workspace’ — and yes you can do that to a degree in OmniFocus, but these ‘spaces’ should be taken to the next level.
I’d propose a more time-sensitive set of views (not the only views, but perhaps on the level and display ability of what OmniFocus’s forecast view provides):
- Overview: Allow me to see a general overview of my day, week, month. I get to set the time/date range and can easily see what is starting, what is due, etc. This would be the planning mode. You can use it each day, or just at the beginning of the week. OmniFocus’ forecast view does some of this, but it’s only part of the way there.
- In the task: I’d like there to be a view for when I am working on the task. I wouldn’t use that with everything, but for larger tasks this would be great. It could show me the comments, how many times I snoozed the task, supporting documents, etc. In other words: a dashboard for getting that task done. Ideally this would also work with Projects too. This is your organizer for things you need for that task.
- Mid day: I’d like there to be another overview that I step into after lunch. Here I see just the tasks from a subset of projects that I want to see (added by drag and drop and keyboard shortcuts for speed, removed easily from a list somewhere else). I can check in and see what wasn’t done, and what must be done for the rest of today. It’s a view that shows you just the most important stuff — perhaps just flagged items, or some other means. The goal of this view is simply to make sure you plan time for the really important stuff (now that the day is half wasted at least).
- End of day: Here only the important tasks from the last view are shown if they were due and not completed and now I also see my personal tasks that I want to do this evening. This would also be time/location based so once it is past say 8p, or I am at home, I don’t see the work tasks anymore.
- Weekend: No work tasks, just my personal tasks. This view hides anything not personal so completely that I don’t even know I have work tasks and thus I can just focus on my honeydew list.
This all sounds complex, but it should be fairly automated using some AI to figure out where things go for you.
A task management app should integrate with other apps to show me activities, discussions, and emails that I may need to add into my task management system. (Flagging keywords which sound like I need to act on them.) I’d like to see a task management app that plays nice with tools like:
I don’t always want to jump into those tools, but I might be ‘forced’ to use them at the office, so make that easy on me. Make it so that I don’t really have to use those tools — just your app.
Keep Me From Forgetting
Hit me in the face with important tasks. Really.
I should be able to assign things as “must do this today” and have the app remind me constantly so that there is no way to forget. ((Whereby constantly is user configurable — duh.)) This isn’t a feature you use everyday, but you use it when that really important thing needs to be done yesterday. This is great for something like “Today is your anniversary”, or “Taxes Due”.
For the things you are very likely to forget, but are imperative they get done.
Calendar apps have gotten really great at natural language input, and I’d like the same in my task management apps. I should be able to tell a quick entry screen: “Work, Write proposal, start tomorrow, due in two weeks”. That entire string should parse correctly into my app.
Additionally, there should always be two entry modes: hit me with tasks as fast as you can; and the detail “quick” entry you see in apps like Flow and OmniFocus. Allowing me to brain dump if needed, while also being able to add a considered task when I want.
Further the app should be guessing at things like projects and contexts based on my previous usage of the app. So if I say Email as a start, the context is quickly assigned as ‘email’.
Auto Lists and Categories
Or another way to think about it: smart groups. A lot of times I will have tasks to email or call people, but instead of using ‘email’, or ‘phone’ as the context, I will simply do something like ‘office’ because I know I don’t want to make that call unless I am at my office. But I’d still like to be able to see all tasks which have a phone number attached, or ‘call’ in the title together.
There’s a lot of things you can do with such smart groupings that I am only scratching the surface with the above. This should be there already, but I’ve yet to see it anywhere.
It is easy for me to type all these rather obvious things out, but building even a basic to-do app like Begin was really challenging. Just finding what would work isn’t easy — I get that — but at the same time there’s a lot of mature apps that seem to be focusing on the wrong parts of their apps. Making tasks more granular instead of helpful.
The above is simply meant to help some of these apps get back on path — because we, no, I need this app.