Magicians never share their secrets. But we do. Sign up for our Ruby Magic email series and receive deep insights about garbage collection, memory allocation, concurrency and much more.
We don't like support scripts, so when you send us a technical question, you'll get a response from an engineer who's worked on the code you're talking about. However, switching from programming to support multiple times a day proved to be a distraction from building AppSignal itself.
In order to tackle this battle between productivity and providing service to our customers, we invented our weekly "Koos"-rotation. "Koos" is a Dutch name, and a backronym for "Keeping others off support".
We love to help you get the most out of AppSignal, and we'll even dive into the code with you to instrument custom parts of your application. When you click the chat button on AppSignal.com, or send us an email at email@example.com, your message ends up in our inboxes and in our "#intercom" channel on Slack. We then make sure to get back to you as soon as we can.
Our customers are mostly programmers, and our support mostly consists of technical questions. When you contact support, you'll always receive a reply from an engineer who has worked on the code you're dealing with (and who knows a minimum of two programming languages).
To make that happen, we used to leave technical questions to be answered by the person that was most suited for that particular question. Whoever is working on the Ruby integration answered support questions about configuration in Ruby, for example.
While that made sense, there were some problems with this approach.
There were situations where questions sat in our support inbox for a while, waiting for the one best equipped to handle the issue to finish their current task. When neck-deep in a programming problem, it's often difficult to switch to support.
Having specific questions always handled by the same person prevented other team members from learning how to help with support, increasing our bus factor.
More involved questions can require us to reproduce your problem on our end. This can sometimes take several days, so it became more difficult to plan ahead.
We wanted to keep our fast responses in place without having to distract the same person for the same kind of issue every time. With that in mind, we decided to start rotating responsibility for incoming support in the development team daily.
On support day, you're the designated "Koos". Besides being a Dutch name (and the name of the largest of several small German islands in the Bay of Greifswald), "Koos" is a backronym for "Keeping others off support".
Koos has no other responsibility than helping our customers and the rest of the team. The Koos creates issues and adds them to the list for the next roadmap meeting, and they'll dive into the code when somebody has a problem. If there's something wrong on our end, they'll write a patch to make sure the issue is fixed. When the others on the team need help with an issue or a review for a pull request, they'll ask Koos first.
If something comes up that Koos can't answer, they ask somebody who can for help. Since they're still responsible for the support thread, we usually don't reassign support threads. Koos needs to understand what's happening, so they can properly explain it to the customer.
Doing support like this allowed the rest of the team to work without having to keep an eye on our support channels, and distribute knowledge about the various parts of AppSignal to our team organically.
Rotating support saved us from a lot of distractions, but it wasn't perfect. For more involved issues, we sometimes needed to message a customer back and forth a couple of times to get to the root of their issue. Sometimes, reproducing a problem can take a couple of hours.
Since we rotated daily, Koos either needed to transfer the issue to the next person at the end of the day or keep working on the issue themselves until it was fixed. The first option required the next Koos to read up on the conversation and get an explanation of what happened. The latter resulted in having days with two, sometimes even three people working on multiple support issues.
To battle this, we decided to rotate support weekly. This allowed for even more uninterrupted time for the others, while Koos has time do dive into issues that span multiple days. For our customers, it's nice to get a response from a familiar face when they send a follow-up question.
At our scale, technical support isn't something we can do on the side anymore. Having somebody responsible for support while others can mute the support channel for a while can be a great help in getting work done while answering questions from our customers quickly.