Customer Support as a Development Tool

We do everything here. Code, build, blogs, coffee. And support. Customer support, that is.

Customer support is part of almost every business. But we’re in a very special business. Our clients are people like us – developers. We all speak dev-ish. If you think about it, mostly that’s not the case. Usually developers are hidden in a corporate building somewhere inaccessible, away from the end-user.

This gives us a unique opportunity. Our customers tell us what hurts them, what they like, or don’t like. And this doesn’t go through 4 layers of translation.

So what does it take to be a good support person? Well, I’m still learning. Here are a couple of things I picked up:

  • Patience. Lot’s of it.
  • Listening and inference skills. Customer says X doesn’t work. But he’s trying to do Y.
  • Turning pain into opportunity.

The last one is the hardest. Well, for everyone who knows me, the first one is not that easy either. But let’s get back to our topic, which directly relates to the third one.

It takes a while, and we are constantly drive our team to identify opportunities. These come in a form of new feature that can help the customer, small fixes we can make that will make he’s life easier, or a grand idea for a new product. And here’s an example.

We had a support post on the forum. This beginner’s question comes up in many forms. Here’s already something we learn from feedback – our API is confusing. And we’re working on that.

Like many others before him, the guy misused Mock.Instance, because lack of understanding between Mock and MockObject. So we answered politely, directed him to the blog post and video on the subject. And then we took a creative 5 minutes of team work, convened by Eli, and came up with a “featurette”.

The problem is that what you see is a NullReferenceException when you use the Mock.Instance property. But we are actually chasing the wrong error. We should be directing the user to the original mistake (choosing Mock instead of MockObject). So what if instead of returning Null from Mock.Instance, we’d throw an exception, with the message “Use MockObject, not Mock!”

Would any idea become a real implemented feature? depends on the idea (we have some really bad ones…). But the fact is, the more we come up with these ideas, eventually we make a better product. Errors like that become infrequent. This translates to cost, better customer satisfaction and better business.

And did I mention we also make coffee?