I don’t know about you, but I want to organize my day’s work as it suits me. Sure, there are the inescapable meetings, which block part of your day, but the rest of it (hopefully most of it) should be under your own control.
Issue Tracking as Pull System
To enable developers and sysadmins to be able to organize their day, we established a pull system for tasks to be done. We usually do a weekly planning meeting where the team takes on an amount of work, which the team feels comfortable of being able to deliver. Out of this pile of work, which we manage in an issue tracking system, everyone can “pull” a task whenever he likes during the week. This sounds like a pretty optimal process, right? But this is where real life kicks in: During the course of a week a lot of new, urgent things pop up, which need either immediate, or at least short term, attention. Often, these things can’t even wait a week to go into the next planning cycle.
Disturbance costs speed and quality
I’m totally happy with dealing with urgent issues. Very often such issues bring tremendous value to our users and that’s why it’s worth doing them as soon as you find out about them. On the other hand, it can become quickly overwhelming. If you try to stick to your promised weekly goals and new stuff keeps cutting in line through various channels, you lose a lot of focus on the current task at hand. Just getting a new request via email instead of as a new issue in the issue tracking system (not to talk about the more invasive ways), harms you in multiple ways:
- You have to watch at least two channels for new tasks instead of one. If you add Instant Messaging, Skype, your mobile, your pager, etc. to the mix, you suddenly end up having six or more channels to monitor for new task assignments. Constantly checking each channel and responding to all incoming requests costs a lot of time.
- You have to track the status of tasks in different, and very often, completely inadequate ways. Imagine a task for the team coming in via IM. It’s not a given that you are the best person to deal with this issue right now. You might be busy or someone else might know more about it than you. But you have to interrupt your work to think about it, maybe ask around who else could deal with it and redirect the requester over to that person. If you are the right person, you’ve got to acknowledge the task, remember to do it and give feedback on the current status. That’s exactly what issue tracking systems are made for, but now you’re doing it all with Instant Messaging! That sucks!
- You have to enter it into the issue tracking system. This is a no brainer and might even take only a few seconds, but still it harms you. You have to think about it. You have to understand enough about it to be able to open a ticket for it. You have to give feedback to the requester that you moved it to the issue tracking system, and you have to resume your work. Such a task switch can easily break your concentration and cost you up to 15 minutes to get back in your groove. Were you in “the zone” when you got this new issue? Even worse.
- You start to wonder, “Do people really value my work?”. You have the right to manage your own work, so why do others not respect your need for delivering high quality? Instead, they disturb you by putting a minimal, but noticeable, additional burden on you for managing issues. This shows they don’t value your work enough to stick to the agreed upon standards like using a issue tracking system. I’ve seen this dumb feeling cripple productivity of people worse than any of the other issues.
Smooth flow maximizes speed and quality
To avoid all the aforementioned issues, it is essential to stick to a very strict process of pushing new work orders. Only if everyone is using the standardized way of recording, tracking and managing issues, is it guaranteed that everyone involved can optimize his own work accordingly. Such a standardized process ensures that nothing is lost. People know where to find the information they need and the right triggers for urgency are learned by all. Such a trigger could be a certain issue status like “blocker” or a separate issue type like “Critical Incident”. This forces people to think twice before creating a super urgent issue request, because it will be visible to everyone and they will be held accountable for their decision to stop the complete team’s work. If they just send an IM, no one besides the recipient will ever know. In the worst case, the guy who worked on the issue might even let down the team because he dropped other, agreed upon, tasks to work on a chat request.
The silently humming productivity your team achieves when working at their own pace continues to amaze me. To keep up this flow within your organization, I’ve found it very important to simplify things by allowing only one way of dealing with task assignments: a simple issue tracking system.