I've been doing technical support for more than 10 years and I feel that I've gathered a few ideas about what great tech support would be. And doing tech support the right way can be great both for product users and for the product developer as it provides lots of opportunities to further enhance and steer the application.
- Never say never. Never assume for certain that a feature request will not get implemented. Just register it and wait for feedback from others. I've had so many cases in which requests which initially seemed not worthy of implementation became important features in later versions.
- When asked for a solution to a specific problem, give the solution but also provide a sequence of deductive steps you took in order to find the solution. So give them the fish but also discuss about how they can fish for themselves. Help people evolve and you will have less tech support to do.
- Try to steer conversations as much as possible from private emails to forums and public user lists. These become repositories of knowledge and you'll avoid explaining the same thing multiple times if there is already a place on the web explaining it.
- In order to avoid answering the same question multiple times you have the following
- Add a topic in the product's User's Manual explaining the problem
- Improve the product so that it becomes easier to perform those particular tasks.
- Some of our users know more and work more with certain aspects of the application than we do. So when certain work-flows are not appropriate for them, it's important that you listen and possibly change the application accordingly.
- Whenever an older behavior is changed in the application, even if you consider that the change is for the better, you will get complaints. And you will need to decide if users just need a time to adjust to the changes or if you've taken the application in the wrong direction.
- You may get asked questions which are not particularly related to what the application does. But you might still be able to give your personal opinion and a few useful links to get your client moving in the right direction.
- You will gain access to various user samples and work with the application to reproduce certain problems. Various times while working with the application to reproduce a problem you will also notice other behaviors which can be improved as well. Contribute all those side-effect suggestions to your issues list as well.
- Make it as easy as possible for people to report problems or to ask questions about the product. For example in Oxygen in the Help menu we have a "Report Problem" action which can be used to quickly report to us any issue which may arise while using the application.
- Always try to provide a feasible workaround for a bug or for a lack of functionality.
If you have more ideas about this, please share them with me.