Kanban Warrior

Yesterday I discovered this awesome command line tool called Task Warrior. It is basically a to-do list on steroids; you can define tasks, group them into projects, generate reports etc. etc. (see the website for more information). When I was fiddling around with the program, the thought occurred to me (since I use mostly Scrum+Kanban methodologies in my work projects): Can Task Warrior be used to implement a Kanban board? (for more information about the Kanban methodology see here).

After some thought and browsing through the Task Warrior forum about this topic with some very good ideas, i’d come up with my own workflow. It is actually based on the solution Nikola Petrov posted in the forum. Note that there is no checking on constraints (max WIP items, illegal moves between columns, etc.), so it’s possible to mess up things, that is all up to you. Then again, when using an “analog” whiteboard you can also do these funky things.

Explanation of stages

  • Backlog: Work items defined to be done in this period/sprint/whatever
  • In progress: A queue of work items that YOU are currently working on. See it as your personal backlog. This should be limited to maybe 1 or 2 items (but that is a matter of convention. Can contain active items, i.e. the things you are really working on at this very moment
  • Done: Work items that are done
  • On hold: Work items that can’t be worked on due to an external cause

You can see an example and screenshots below. I used the terminal application found in Xubuntu and for each stage (Backlog, In progress, Done, On Hold) I defined a tab. I use the tab Control for administration, i.e. adding & modifyng tasks.

Add some tasks to the backlog:

task add project:"Starship.Propulsion" +backlog "Implement subspace distortion detector"
Created task 1
The project 'Starship.Propulsion' has changed.  Project 'Starship.Propulsion' is 0% complete (1 of 1 tasks remaining).

task add project:"Starship.Propulsion" +backlog "Implement warp coil heater"
Created task 2
The project 'Starship.Propulsion' has changed.  Project 'Starship.Propulsion' is 0% complete (2 of 2 tasks remaining).

task add project:"Starship.Propulsion" +backlog "Implement warp containment field modulator"
Created task 3
The project 'Starship.Propulsion' has changed.  Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

task add project:"Starship.Defense" +backlog "Implement tachyon beam detector"
Created task 4
The project 'Starship.Defense' has changed.  Project 'Starship.Defense is 0% complete (1 of 1 tasks remaining).

task add project:"Starship.Weapons" +backlog "Improve phaser array"
Created task 5
The project 'Starship.Weapons' has changed.  Project 'Starship.Weapons is 0% complete (1 of 1 tasks remaining).

Moving items from the backlog to the ‘In progress” queue

task 1-3,5 modify -backlog +inprogress
Modifying task 1 'Implement subspace distortion detector'.
Modifying task 2 'Implement warp coil heater'.
Modifying task 3 'Implement warp containment field modulator'.
Modifying task 5 'Improve phaser array'.
Modified 4 tasks.
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

(Re)start working on items in the In progress queue

task 1,5 start
Starting task 1 'Implement subspace distortion detector'.
Starting task 5 'Improve phaser arrayr'.
Started 2 tasks
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).
Project 'Starship.Weapons' is 0% complete (1 of 1 tasks remaining).

Stop working on an item (but it’s not finished yet)

task 1 stop
Stopping task 1 'Implement subspace distortion detector'.
Stopped 1 task.
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

Start working on an item, but then the item is put on hold for some reason

task 3 start
Starting task 3 'Implement warp containment field modulator'.
Started 1 task.
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

task 3 stop
Stopping task 3 ''Implement warp containment field modulator''.
Stopped 1 task.
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

task 3 modify -inprogress +onhold
Modifying task 3 'Implement warp containment field modulator'.
Modified 1 task.
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

task 3 annotate "We can't set the correct delta-factor compensation"

Putting an “On hold” item back to the “In progress” queue and start working on it again

task 3 modify -onhold +inprogress
Modifying task 3 'Implement warp containment field modulator'.
Modified 1 task.
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

task 3 start
Starting task 3 'Implement warp containment field modulator'.
Started 1 task.
Project 'Starship.Propulsion' is 0% complete (3 of 3 tasks remaining).

Setting items to Done

task 1,3 modify -inprogress
task 1,3 done
Completed task 1 'Implement subspace distortion detector'.
Completed task 3 'Implement warp containment field modulator'.
Completed 2 tasks.
The project 'Starship.Propulsion' has changed.  Project 'Starship.Propulsion' is 66% complete (1 of 3 tasks remaining).

Notes:

I used the ‘subproject’ feature to indicate my user stories (so ‘Starship’ is the name of the project and ‘Propulsion’ is the name of the story), so that I can relate tasks to a particular story.

Screenshots

[nggallery id=1]