For the last year I’ve been on a contract job at a large company documenting internal processes on a wiki. The wiki is my employer’s choice, but it has become the bane of my existence because of the formatting freedom it gives to writers, most of whom are engineers by trade. Its contributors imitate the norms of technical writing, but they don’t really know how to do it. Every writer imitates it differently, sometimes badly. Learning all the rules of technical writing isn’t something an engineer is likely to do.
That has me pondering what should be in a minimal set of writing rules for engineers? This isn’t road tested. It’s just off the top of my head.
Look Around
Before committing anything to screen, look at the pages adjacent to where yours will be published and imitate their formatting. Look at the parent page and at the eventual siblings of your work. Over time content consistency manages expectations about content and will make it easier for readers to find information.
Write in Complete Sentences
I don’t know why I need to say this and I now have sympathy for all of the language teachers I had in school who sounded like a broken record.
A complete sentence is the complete expression of a thought. It avoids misinterpretation. In an age where many of your colleagues are likely to speak and read English as a second language, it gives such readers the best chance of understanding it.
Don’t Put Extra Formatting in Titles
The purpose of formatting in technical works requires a longer explanation than I can give here. One of its purposes is to make a document easy to scan so that a reader doesn’t need to read an entire page to find one item within. Generally, you only need one kind of formatting to make something scannable. Headings have three: they’re in bold type, in larger text and are generally set off with extra space.
Programming terms don’t need to also be in monospaced type. Yes, I know that’s inconsistent with what you do everywhere else. Get over it. Typical technical documentation already has a tendency to look like a ransom note from an old crime drama. This just cuts that down.
Don’t Put Links or Images in Titles
This is corollary to the previous guideline. The point of a link is to take your reader someplace else. A heading introduces text. You made it a heading to attract the reader’s attention. Instead of letting them read what you drew their attention to, you want to take them someplace else?
The images I’ve seen in titles are typically emojis. The Elements of Style has a rule to ‘omit needless words’. This means eliminating words that don’t add meaning to a sentence.
I have yet to see an emoji contribute meaning to a technical document. There’s no doubt that an emoji can add emotional nuance in a text to your best friend. You’re not texting your best friend. You’re writing about constructors or system architecture. Where’s the need for emotional nuance?
Take Screen Captures with Default settings
A picture is worth a thousand words, but not if it appears to show something other than what your text is describing. Readers are looking at your document because they don’t know how to do something. An illustration that looks different from their screen is potentially confusing and increases the cognitive load on someone who is already cognitively loaded.
Yes, the reader may have changed the settings in their installation. They’re a minority and have proven an above average level of comfort with technology merely by the fact that they’ve changed the settings. Write for the average reader.
Procedures
Here are a few guidelines for procedures.
- Title the procedure with a gerund that describes what the procedure will accomplish. “Starting a car” is a good title. “How to start a car” is not.
- Always begin a step with a number.
- A step is user action followed by the system’s response. The response never gets its own number.
- Put interface elements in bold type and programming or command line elements in monospace type.
Reference
Some places are claiming they’re using AI to document APIs. From what I’ve seen, they just write circumlocutions like “Use the Widget class to create and manage widgets.” Great! What’s a widget?
- Write an introduction that describes its intended use.
- Begin definitions with a sentence fragment. This is a well established convention for definitions of any kind. If you don’t believe me, open your dictionary to any page and read any definition.
- Use the same structure throughout.
- DontInfoDumpTBD
- Code examples should be short to illustrate characteristics of the API. Production code is often bad for this since it’s intention is to do work for humans not communicate information to humans.
- Define all arguments and return values.
- Don’t rely on the API’s source code.
- Document all errors that it throws.