Skip to content

Instantly share code, notes, and snippets.

@gabipilegi
Last active March 23, 2020 12:46
Show Gist options
  • Save gabipilegi/a075e0cc3c428d9f1569320e4846120f to your computer and use it in GitHub Desktop.
Save gabipilegi/a075e0cc3c428d9f1569320e4846120f to your computer and use it in GitHub Desktop.
Technical Writing

Technical Writing

summary of what I found relevant in this course

Words

Define unfamiliar terms

Using one of this techniques:

  • If the term already exists, link to a good explanation
  • Otherwise, define the term. If there are many new terms, create a glossary.

Use the terms consistently

Apply unambiguous terms consistently throughout the document, don't change the definition's references. e.g (wrong):

Protocol Buffers provide their own definition language. Blah, blah, blah. And that's why protobufs have won so many county fairs. e.g (right): Protocol Buffers (or protobufs for short) provide their own definition language. Blah, blah, blah. And that's why protobufs have won so many county fairs.

Use acronyms properly

Define the full term along with the acronym in parenthesis, both in bold

This document is for engineers who are new to the Telekinetic Tactile Network (TTN) or need to understand how to order TTN replacement parts through finger motions.

Keep in mind that the readers will mentally translate the acronym in ther mind before they get used to it, so in fact, it takes a little more effort in the beggining, therefore, only use acronyms when there are considerably shorter than the original term and it will be frequently used throughout the document.

Disanbiguate pronouns

Using pronouns instead of reusing a noun might create ambiguous scenarios as in the phrases:

e.g:

Aparna and Phil share responsibilities with Maysam and Karan and they are the next ones on call.

The pronoun they could refer to any of the following:

  • Aparna and Phil
  • Maysam and Karan
  • Aparna, Phil, Maysam, and Karan

e.g:

You may import Carambola data via your configuration file or dynamically at run time. This may be a security risk

The pronoun this could refer to any of the following:

  • importing via the configuration file
  • importing dynamically at run time
  • both

Make the reference clearer:

Aparna and Phil share responsibilities with Maysam and Karan which are next in line

You may import Carambola data via your configuration file or dynamically at run time. The second option may be a security risk.

Prefer to reuse the noun

e.g:

Be careful when using Frambus or Carambola with HoobyScooby or BoiseFram because a bug in their core may cause accidental mass unfriending.

==>

Be careful when using Frambus or Carambola with HoobyScooby or BoiseFram because a bug in HoobyScooby's core may cause accidental mass unfriending.

Active voice vs passive voice

Sentences in a technical document should be in the active voice most of the time.

Active voice : An actor acts on a target

actor + verb + target

e.g: "The player kicked the ball"

Passive voice : a target receives an action from the actor

target + verb + actor

e.g: "The ball was kicked by the player"

We should identify sentences in passive voice and convert them into active voice

Code is interpreted by Python

==>

Python interprets the code

Benefits of the active voice:

  • Most readers convert passive to active voice mentally
  • Passive voice reports the action indirectly
  • Some passive voice sentences omit the actor altogether
  • Active voice sentences are generally shorter

Clear sentences

Use strong verbs

Techinical documets writers should aim to the clearest version of the sentences.

Avoid imprecise, weak, or generic verbs such as:

  • forms of be: is, are, were, was [...]
  • occur
  • happen
weak verb strong verb
The error occurs when clicking the submit button Clicking the submit button triggers the error
This error message happens when... The system generates the error message when...
We are careful to ensure... We carefully ensure...

Reduce there is/ there are

Replacing there is/are with a meaningful subject create a clearer experience to the reader.

e.g:

There is no guarantee that the updates will be received in sequential order.

==>

Clients might not receive the updates in sequential order.

There is a variable called met_trick that stores the current accuracy.

==>

A variable named met_trick stores the current accuracy / The met_trick variable stores the current accuracy.

Minimize certain adjectives and adverbs

Adjectives and adverbs tend to be too loosely defined and subjective for technical readers.

e.g:

Setting this flag makes the application run screamingly fast.

==>

Setting this flag makes the application run 225-250% faster.

Short sentences

The idea:

  • Shorter documentation reads faster than longer documentation
  • Shorter documentation is typically easier to mantein than longer ones
  • Extra lines of documentation introduce additional complexity and more points of failure

Focus each sentence on a single idea

A sentence should contain a single idea, thought or concept. We should find ways to transform long sentences with multiple ideas into multiple sentences with a single idea.

e.g:

The late 1950s was a key era for programming languages because IBM introduced FORTRAN in 1957 and John McCarthy introduced Lisp the following year, which gave programmers both an iterative way of solving problems and a recursive way.

==>

The late 1950s was a key era for programming languages. IBM introduced FORTRAN in 1957. John McCarthy invented Lisp the following year. Consequently, by the late 1950s, programmers could solve problems iteratively or recursively.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment