Taskwarrior – Automate managment

Life is work, work is tasks.

In your head right now there is probably a list of tasks that you should have done by tomorrow, the end of the week or until your next meeting with a certain person. Not handling these tasks can lead to failure, missed opportunities and a halt in progress. So it’s up to you to make sure that tasks are completed and some tasks are done before others because they are more important.

The burden of keeping track

Sometimes the actual work can be a smaller burden than management of the work. Keeping a mental todo list is a burden on your mental capacity. Wouldn’t it be great if you could automate all this management? A classical virtual todo list will not handle the complexity of whatever subjective arbitrary way of prioritizing your tasks that you personally use.

Let’s automate task management to the point where you register the task and then forget about it. Forget about it until you are ready for a new task, then queries your task system and it tells you it’s time to work on that task. This way you can focus on work, rather than trying to puzzle together an optimal way of scheduling all your work. There are tools that can do this, in this article we will look at one of them: Taskwarrior.

You can get taskwarrior in many forms, but a standard installment gives you a CLI program executed with the command task. When you execute the program, it will output your tasks in an order that it determines to be the most important.

Usage

Adding a task is done with task add followed by parameters to fill in the details about your new task. Check out man task, it is informative and lists all of the features and attributes.

In this image two tasks are added with the attributes project and due. These do exactly what you would suspect they do, and they will be taken into account when taskwarrior is determining the urgency of the task. The text +math means the tasks are stamped with a tag math.

The last command in the image outputs the list of tasks ordered by their urgency. As you can see, doing homework is more important since it has a closer deadline.

Attributes

There are a lot of attributes that can be used to detail a task. The due attribute is probably the one with the most impact. Tasks overdue will get extra high urgency. priority is also useful. If you want to tell taskwarrior that you’ve began work on a task, use the command task [task(s)] start.

The user can specify urgency factors for specific tags by writing it in the configuration file ~/.taskrc. For example this article uses the tag in to mark high urgency tasks that are yet not fully detailed with task attributes.

To further customize taskwarrior to your needs, you can add UDA:s. These are attributes a user can create that has its own meaning and impact on the urgency of a task.

Utilities

Taskwarrior gives you some good ways of visualizing your progress over time. The command task burndown prints a graph showing how many tasks you’ve created and completed. task timesheet gives you a weekly report of completed tasks.

Misc

This 5 part series has a lot of good tips. I personally tag people and locations. So if a task involves someone called Daniel, the task is tagged with daniel. Same goes for locations. This is useful if you are going to meet someone or visit a location. Next time you meet Daniel, just run task +daniel to get all tasks involving Daniel.

I’ve been using taskwarrior for about 5 months now, and it has made prioritizing much easier for me. As mentioned before, I don’t have to keep a mental todo list in my head all the time. Just make sure the task in registered with the right details, and you can forget about it until you start working on it.

Dare I say; a good configuration and usage of this program could potentially automate big parts of your project management.

Taskwarrior is fully open source and costs nothing. Try it out if you think this kind of thing is interesting and you have the time for it!

Leave a Reply

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