Both the person giving support and the person being helped should follow the code of conduct
- If you're helping someone change a config file, always get them to make a backup first
- If someone else is helping a user, try not to cut in. Having too many people supporting a single person can be confusing for the user in question.
- Always use your common sense
- Clarify what it is the user wants help with - sometimes the question they ask doesn't quite reflect what they want to do, especially for newer users who lack the vocabulary to ask the right question.
- Try to find the correct level at which to talk to a user, if you're unsure ask them. Try not to talk down to people.
- Keep support within a public channel (irc, forums, mailing lists and launchpad etc)
- If you don't know the answer but the user is worried about not getting a response, rather than trying to help (and potentially making the issue worse), suggest they wait / try the channel at a busier time or point them the direction of a user (or channel) you know can help.
- It would also help if you use people's nicks, (with assistance of the tab button), so that it is always clear who is talking to whom, both the new user as well as the person helping. So communication is always as clear and as effective as possible.
Use of Documentation
Supply links to documentation when appropriate. If the user asking for help seems confused by the documentation, offer to help them go through it or try and offer more direct help. At all costs, avoid telling people to "Just Google It", it only takes you a minute to do a quick Google search yourself and pass on a few links that may be relevant, or suggest some keywords that might help in a users search.
If there is a relevant walkthrough available, offer to go through this with them.
Use of IRC Bots
It has been suggested (possibly by someone venting) that use of the bots can confuse new users. If this appears to be the case, go through the information supplied by the bot calmly and at the users speed.
Apt or Aptitude
The official documentation uses apt-get, it is recommended that this method is used to help prevent any confusion on a new users part. However, command line methods should only be employed if the situation demands it, please consider using the available GUI tools if possible.
GUI and Command Line
If appropriate, direct people through a GUI based method of solving a problem. Some newer users may not be comfortable with using a terminal, but gently help them do things there if it is needed.
Dealing with frustrated users
If a user is angry or frustrated, try not to take things personally. Everyone get's angry now and again. If possible, suggest they take a short break before going further. It's easier to help a calm person than an upset one.
If you have tried to support a user and have failed to resolve the issue. Suggest to the user to file a bug, either using the ubuntu-bug command or just clicking 'Report Bug' in launchpad. It would be best to advise the user that this isn't going to be a quick fix. Advise the user the correct package to file the bug under and any supporting information that would be required. The best place to look if you're unsure of what is required will be DebuggingProcedures.
If a user is asking for support with a known issue, make the user aware of the launchpad bug number. If applicable, point the user towards a work around. Check to see if they are happy implementing the workaround themselves, or offer support to do so if needed.
Problems That Can't Currently Be Solved (Compatibility Issues)
If the user's problem can't currently be solved - for example if their hardware is not compatible with Ubuntu, or they want to use an application that can't run under Ubuntu, then suggest a workaround (perhaps dual booting or a VM), and point them towards a resource they can use to check compatibility issues in the future.
Finally always remember that patience is a virtue