Daniel Mitterdorfer

Life as a remote worker: Organization

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.

Structuring Work

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.

Overview of my Trello Board

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):

Task Detail: Prepare a demo for Rally

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.

Progress Reporting

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.