I'd say audience awareness is a very important factor. Maybe the most important.
Usage instructions for some end-user software product (say, a timekeeping system) need to be written very differently from programmer reference documents (for example a set of in-house developed software components).
Another resource that might be useful to technical writers is all of the "writers' guides" offered by technical publications and websites. Many of these are available over the 'net, and by collecting those covering your subject domain and intended audiences you might be able to synthesize your own "bible" for technical writing.
Some examples:
Those are just a couple quick-links. I'd suggest other sources be used as well. Try IBM, Sun, SourceForge, InformIT, TechRepublic, and others. Many tech sites and magazines offer writers' guides, and some may contain real gems.
You can even find automated aids for narrow types of documentation, such as this one:
This one analyzes the actual compiled code to create standardized, skeletal documents for ActiveX projects. It has the advantage of making sure most relevant, exported methods, properties, events, enums, and so on get spelled out accurately. It also provides a consistent organization for such documents within your organization. Since the source is offered, a programmer could modify it to meet local needs and preferences too.
Then of course a writer needs to take the result and add flesh to these bones.