Technical documentation is often authored by either a subject matter expert (i.e. someone who understands what they're talking about) or a technical writer who has been educated to convert complex product knowledge into language that end users can understand. The choice of who writes the documentation depends on the nature of the project. When you write your own application or web site, it's usually best to select a role and have them fulfill it. For example, if you are writing documentation for your own project, try to find a way to include your own comments in the code or documents so that you aren't just copying information from one place to another. This not only makes the process easier, but also allows you to be more accurate when describing how your project works. If you are working on a large product that will have user-generated content, such as a forum or wiki, then it may make sense to hire a subject matter expert to write the documentation. These people could be employees of your company, contractors, or even customers who have been given access to certain parts of the software. Their input helps produce content that is accurate and useful. Finally, if you are working with third-party products and you need to explain how they work together, then you will probably need an expert on hand to translate the knowledge you have into language that both you and they can understand.