Random Assignment

August 26th, 2010 by Rich Armstrong

Up until recently, our support team used a pick-and-choose-type issue selection, where we go through the Inbox project, browsing through issues, seeing which cases we'll deign to spend our precious mental resources on.

Bad idea. First, by time you evaluate the issue to see if it's something you'll deign to spend your precious mental resources on, you've already spent time on it. So have the other three people who looked at it and decided they didn't want it. Every extra person who looks at an issue wastes their time on it.

Second, you tend to get skewed skills. It's much better to expose the entire support staff to the full breadth of requests coming into a given queue. Otherwise, you get things like one LDAP guy who can never go on vacation.

To mitigate this, we've taken two steps. First, we used the FogBugz Python API to create a random assignment script. This script gathers all the cases that come in via email and via our Twitter feed monitor script.  It sorts them by correspondent. That way, you don't spend twenty minutes answering a question while your colleague has gotten the "never mind, I found it" email. Then we dole them out to the people working in the Inbox at the time. If you're out of the office or working on a plug-in, you have a case assigned to you that takes you out of the pool. We rely on the law of large numbers (and the fact that we're not automatons) to spread out the work.

It's been tremendously successful. We all noticed a big productivity bump.