I work for more than two years at Elastic where I focus on benchmarking, performance analysis and performance tuning for Elasticsearch. In my daily work, I have to deal with many people: our users, various of our engineering teams, support, consulting, marketing, sales, product management and our developer relations team. As you might imagine, these are a lot of balls to juggle.
Often, I get requests that I cannot immediately work on. Therefore, I need a way to organize the incoming stream of tasks. I use a variation of Personal Kanban that I have implemented in Trello.
You can see several columns (from left to right):
- Backlog: I will not work on these in the immediate future.
- Next: Ready for work. I expect to start working on them soon.
- Doing: I am actively working on these items at the moment.
- Blocked: I started working but I need to wait for some external event to happen (e.g. waiting for somebody else to finish a task)
- Done this week: This helps me to see progress.
Handling Incoming Tasks
I think the structure is pretty simple to grasp but another important part is how I interact with the board.
There are several streams from where I get new tasks:
- I get an idea for a new feature, an improvement, a blog post etc..
- A user has a question which requires research.
- Some of my colleagues approaches me on Slack with a request or a question.
- A new ticket is raised on Github (and I intend to work on it soon).
- A benchmark run reveals an interesting result and I need to investigate the cause.
Whenever this happens, I create a new Trello card. Depending on the urgency, the card either goes into the backlog, the "Next" column or I add it to "Doing" and start to work on it immediately. Thanks to my external memory I will never forget anything, even if I will not work on it for a long time.
Suppose, for example that I get an idea for a feature that I could demo for Rally (our macrobenchmarking tool for Elasticsearch):
As you can see from the screenshot, a card does not only consist of its title. Using comments helps me better organize my thoughts around that topic and document areas that I need to look into.
There are several more features in Trello that I use, e.g.:
- Due dates: are useful for tasks that have a hard deadline (like submitting proposals for conference talks).
- Checklists: help when a task has many more subtasks.
At the end of each week, we send a brief update to the rest of the team for which I have setup a notification. I then kick off a script that reads my board and provides a draft report within seconds. Before sending, I just have to prune the list so it includes only tasks that are relevant for the rest of the team. Finally, I archive all cards in the "Done this week" column. That whole process takes at most one minute per week. Another important aspect: Due to externalizing everything again, I don't need to spend any brain cycles on it.