I think one of the big conundrums of information technology be it desktop systems or web services is tech support. When everything works intuitively and is stable, all is well and there is happiness in the world but when things go wrong, all hell breaks loose. Despite their complexity, operating systems are becoming more and more stable. Plus the issues that remain are well known enough that online documentation provided by the company and the proliferation of blogs ensure that someone has documented the issue somewhere unless you fudged things in a really artistic way.
Of course, even operating systems like OS X aren’t perfect (in fact, when you do manage to fudge your mac, it can be even more confounding at times) so you’ll still have those moments when everything goes wrong, especially if you are a tinkerer like me.
However, with web services we have another volatile mix. Anybody can put up a really well-designed front end and offer a competitive service. There’s little to tell apart a large, stable corporation from two dudes in a shack cranking out code. About the only thing you have to go on is your own experience and the reputation of the service. Combine that with desktop applications that access the API and when things go wrong it could be a number of things: the web service, your internet connection, or the desktop.
One of the biggest problems with tech support whether it’s for the operating system or web services, by it’s very nature it’s provided by people without an intricate understanding of the system they are supporting. At most, you are dealing with an intermediary that goes between yourself and the people developing the application. For standard trouble reports you get standard automated responses. The ideal situation is for developers to respond in some way but you can’t tie up their precious brain power responding to every single common support requests.
There are only so many ways to scale support (centralizing documentation (that studies show no one reads even if it’s spelled out in a FAQ) or outsourcing support to cheaper countries) but the cheapest way is to build something that’s stable and intuitive to learn.
So what is the role of tech support? To simply act as a filter for common grievances and catch the really important issues that come up?