Ted Wang a master of none

Task Management as a SDE

How many tasks you need to complete as a software development engineer in a week? A lot… At least for me. I sometimes feel overwhelmed by all the tasks with different priorities thrown at me at the same time. Although each company must have some kind of task tracking system, either sending ticket or sprint management, it is still a hurdle to know exactly what to focus on everyday. I know that people with different position have their own way and tool to manage their task, but as a SDE, I prefer the most geeky way possible, command line. That’s right, I use command line to manage my todo list. It is fast and easy for me, since I always have several terminals open. Of course, you have to use some kind of tools for that, or if you are really good and have a lot of free time, you can create your own wheel. I don’t, so I use a tool called Task Warrior. It’s very easy to setup and use. Let me show you what I mean.

Install and Setup Task Warrior


Well, you can follow their own documentation to install and setup for different OS. I use a MacBook for development, so I will just quickly write the setup for MacOs here:

Install the package (I hope you have brew as a Mac user…)

$ brew install task

Verify that the package is successfully installed

$ task version

Then… Euh… That’s it…

Create Your ToDo List


Add task to your todo list

Let’s say I have a task, which is to write a blog about task management. This is whay I do:

$ task add Write a blog about task management tool

Now to see my ToDo list:

$ task next
ID Age Description                                Urg 
 1 13h Update external api                           0 
 2 13h Synthsize external service pipeline           0 
 3 13h Sync with Jack about documentation            0 
 4 13h Review a bunch a of code review from Chris    0 
 5 43s Write a blog about task management tool       0 

5 tasks

As you can see, “Write a blog about task management tool” is added to my todo list as task number 5.

Set priority for task

You can set priority to your task

$ task 5 modify priority:H

Of course, you can also create the task with priority directly

$ task add priority:H Write a blog about task management tool
ID Age  P Description                                Urg 
 5 7min H Write a blog about task management tool       6 
 1 13h    Update external api                           0 
 2 13h    Synthsize external service pipeline           0 
 3 13h    Sync with Jack about documentation            0 
 4 13h    Review a bunch a of code review from Chris    0 
 
 5 tasks

Set a due date

You can also set a due date for your task

$ task 5 modify due:27th

Or you can setup due date during creation of this task as well

$ task add due:27th Write a blog about task management tool 
ID Age   P Due Description                                Urg 
 5 15min H 10h Write a blog about task management tool    14.6 
 1 13h         Update external api                           0 
 2 13h         Synthsize external service pipeline           0 
 3 13h         Sync with Jack about documentation            0 
 4 13h         Review a bunch a of code review from Chris    0 
 
 5 tasks 

Finishing a task

When a task is completed, simply

$ task 5 done

See completed tasks

$ task all status:completed
ID St UUID     Age Done P Due        Description
 - C  235e5e56 1h  16s  H 2020-09-27 Write a blog about task management tool   

1 task

Delelte

You can also delete a task when it is not needed

$ task delete 1
ID Age   P Due Description                                Urg 
 1 15h         Synthsize external service pipeline           0 
 2 15h         Sync with Jack about documentation            0 
 3 15h         Review a bunch a of code review from Chris    0 
 
 4 tasks 

Well, there are more features that you can explore in here, but those are pretty much everything that I use daily. I hope this helps you on task-managing and keeping a high efficiency everyday.