We circle the on-call responsibility between all the programmers at 37signals. Every day is someone’s day to take care of the technical issues that bubble up from support but can’t be resolved there. And that seemed to work pretty well in the beginning, but we’re starting to think that we need a more systematic approach.

The problem with passing the support monkey around is that everyone just wants to get rid of him as soon as possible. There’s not a whole lot of vested interested in dealing with the root cause of the issues, so you solve one-off problems for individual customers and get on with your day.

For the individual programmer, that approach will appear to work reasonably well because the feedback cycle is so long. You forget next week that you’ve actually already dealt with this problem before. And you certainly don’t get the feedback of knowing that the issue caused three other incidents for other people during the week. So your personal incentive to fix the true cause isn’t building naturally.

I’ve found that to ever get anything done, you really need to align personal incentives with the task at hand. That’s why we’ve been thinking about doing support weeks.

A single programmer gets assigned to work the support monkey all week and have to solve the root cause for every issue he encounters. No I’ll-just-deal-with-this-guy one-offs. But not just because of the directive that it’s what you’re supposed to do, but because it’ll come ever so natural when you’ve solved the same problem three days in a row.

Are you finding the root causes for your daily grind or do the wheels just keep spinning on the same issues?