I have a fairly strong background in cloud system and application architecture. However I feel that I’m sometimes limited by my technical writing skills to communicate my ideas and concepts. Any advice on how to take ones technical writing skills to the next level?
I’m willing to do what it takes, being online courses, contributing to OSS process work or what else you might suggest.
Looking forward to tap into the HN hive mind on this topic!
Thanks, Max
The absolute, invariable first rule in tech writing is to know your audience.
Understand not just their technical problems but take the time to empathize with why they have these problems in the first place.
Tech writing isn't about documenting, it's about finding the best way to explain something to people so they can solve their problems.
Oh, and use an editor (the human kind, not the digital kind.)
This is so important (IMNSHO). It's fairly obvious, that editors are becoming a "lost art."
My mother was a scientific editor, and she was brutal (she edited some of my work).
It's really hard to find fiction books, that are less than 500 pages.
I read a story about Stephen King. Apparently, he hates being edited (most writers don't like it).
When he was just starting out, he was forced into being edited. I remember reading 'Salem's Lot, back in the 1970s. It was an awesome book (Relatively short, succinct, scary as hell), and made me suddenly become a Stephen King fan.
As he got more and more famous, he started being able to bully his editors, to the point where his work is barely edited at all.
And it shows.
I really can't read him, anymore.
For SF & F this seems to be a deliberate choice, from what I understand. This is from an iterview with Ted Chiang:
TC: I think the reaction varies, because science fiction is a more commercial genre. There are a lot more people in science fiction whose goal is to make a living from writing fiction by publishing one or more novels a year. And people who enter science fiction generally receive more messaging about fiction writing as a sole source of income than, say, people entering mainstream fiction. The messaging there is different: get an MFA, teach; it’s understood that your teaching position supports your career as a writer. For writers entering science fiction, that’s not really a thing yet. We’re maybe getting there, but the messaging they receive is mostly: Be very prolific.
https://culture.org/an-interview-with-ted-chiang/
>> As [Stephen King] got more and more famous, he started being able to bully his editors, to the point where his work is barely edited at all.
Yeah, I kinda noticed that too. I picked up a book of his and couldn't finish it because it felt like every episode in the story was written so that it took maybe ten, maybe fifty more pages than it really needed to. Extreme padding.
I think Liu Cixin also went through something similar. The Dark Forest was lean and mean. The next two books were progressively fatter and more verbose and full of aimless meandering. Though maybe that was an attempt to complete a trilogy to capitalise on the first book, if I'm more cynical.
I've grown to love it. It was a long road. Once you start disciplined writing an editor becomes like a personal trainer who helps you be your best. Until I learned to write with more steel and less fire, ego ruled my writing. The familiar sins are;
- loving the sound of your own (inner) voice
- showing off what you know rather than considering what the reader might care to hear (and muddying waters so as to appear deep)
- pretentious talk (circumlocutory linguistic gymnastics)
A good editor gets to know your weaknesses and corrects them gently.
Compare "Foundation" with "Foundation and Earth" or "Foundation's Edge". Or "The Philosopher's Stone" with "The Order of the Phoenix". The former were well-edited and succinct. The latter were overly long, in some cases sorely repetitive with large amounts of padding, and a good editor could have cut them down by at least half without losing much.
And let's not even get into Robert Jordan...
Even the best authors need an editor.
To play editor for a moment — your sentence needs no comma, and it’s easy to find fiction books with fewer than 500 pages ;)
Was a clause omitted?
Allow me to introduce you to the myriad Maigret novels by George Simenon. :) They are my favorite filler books when I want something good at only 150-200 pages.
Examples include Robert Heinlein in Science Fiction, James Michener in general fiction, Herman Wouk in general fiction. For Wouk, his well known Caine Mutiny is a fairly long book, but it's tightly written. Later works not so much.
The more effectively you can imagine perspectives other than your own, the more easily you can come up with creative solutions, communicate well, and overall just be a more pleasant person to be around.
While that’s definitely true for tech writing generally, I feel it’s usually not the best advice for someone wanting to improve their technical writing.
Tech writing is first and for all “writing”. I feel that’s where a lot of people are struggling already: they may know vocabulary and grammar, but they have difficulties to write a well structured text. Even a single paragraph consisting of two or three sentences can be very hard for many people to actually think about. They may have been focusing on “shortcut” rules such as “maximum X words per sentence” or “maximum Y sentences per paragraph”. But those are more often than not a distraction to actually think about a logically structured text.
It’s important to have a narrative to guide the reader through the text, presenting new pieces of information in a logical sequence, and anticipating how a reader could misunderstand what you’re trying to say. For fiction writers, coming up with a narrative feels natural (even if it still can be hard). However, non-fiction writers may not even realise that they need some kind of narrative.
You do need to know your audience to anticipate how your reader could misunderstand your text, but I think it’s best to start practising by writing for yourself or someone like yourself. Write something about a topic you know pretty well, but do not master perfectly. Then, read what you’ve written one or two weeks later, and see if it still makes sense to you. If some parts seem confusing, try improving them.
You could do the same with texts written by someone else: whenever you think the text is confusing or unclear, try improving itself.
Do not just quickly add a word or sentence that specifically addresses your confusion, but take a step back and try to understand what caused the confusion. Try to really think about the order in which information is presented, whether that information is explained clearly, and whether all information in your text is necessary to understand the point you’re making.
https://web.archive.org/web/20170816111301/http://serenity-s...
https://web.archive.org/web/20170619192710/http://www.sereni...
Too bad Serenity Software appears AWOL.
The most effective way to improve your writing is through improving your reading.
I’m a literary nerd as well as a technologist, and will tell you it’s easy to spot an English Lit graduate by their universally good documentation skills. Not because they use fancy words, or exotic expressions, because they use simple deadpan and well measured (never crowded) sentences. These tend to always write as though they’re explaining to an intelligent child (with a pleasant unassuming and direct simplicity.)
I’m sure you have read those great todo articles on medium or log rocket or whatever.
The problem with citing good professional documentation is that this is usually or inevitably taken on by a team, so docs are really a standard of a good editor.
The problem with stuff in the wild is it can be too bloggy or conversational.
What you need is awareness and purpose. Stop reading junk as soon as you identify it (skim junk for take always ;).
Cherish and reread somethings that “speak to you.”
Ironically, the best technical documentation is dry and to the point (without sounding as though generated from already inadequate code comments [glare].)
Edit out sarcasm, sentiments, and unnecessary references or language.
Explain what is happening, show an example and stop. You’ll do fine!
Do read one of those boring grammar/punctuation books. Just being aware of good sentence form will make you a better writer.
I did all this stuff over a decade ago, so I don’t have a link off hand.
Personally, my process after this is to express my thoughts in bullet points, followed by inserting any placeholders and captions for any graphics (e.g. charts or diagrams), and then finally I start rewriting my bullet points into proper sentences, expanding my examples, and adding any interstitial text necessary to make things flow.
Also, I see some comments on keeping things short and to the point. In general, I agree with this, but depending on the medium, sometimes it doesn’t hurt to inject a bit of personality into your writing. Technical writing can be dry at times, and this can deter engagement. Try to use concrete examples whenever possible or refer to other supporting texts.
I think this is true. Another way of saying it might be to write things intentionally and make sure each sentence contributes to a goal. You can have humor and personality in the paper, but make sure you don't have filler or meaningless words that you're just writing off as personality.
I love when a document is easy to read and is thorough.
Side rant: I hate when people use an acronym in a document and never state what the acronym stands for. Take the extra 10 seconds and type it out the first time you use it with the acronym version in parentheses directly after.
While my professional writing has been mostly academic, I find the progression is similar to tech writing.
First you learn to show your erudition and command of the ingroup speech.
Then, if you have a genuine desire to communicate, you progress to simpler yet precise language, stop using the big words when not necessary (often, they are just signaling and gatekeeping) and develop empathy for and understanding of the audience.
1: https://cdn.static-economist.com/sites/default/files/store/S...
clearly mark twain took the orwell advice to heart.
To some it will be too obvious. But English speakers (especially English as a second language people) outside the US have often never heard of it.
Just the audio version is sufficient, especially if you can listen to it on a daily commute. They give specific advice on how to simplify sentences that have multiple dependent clauses into a more compact form, which can be particularly useful for technical writing.
https://www.chronicle.com/article/50-years-of-stupid-grammar...
"The Elements of Style does not deserve the enormous esteem in which it is held by American college graduates. Its advice ranges from limp platitudes to inconsistent nonsense. Its enormous influence has not improved American students’ grasp of English grammar; it has significantly degraded it."
Probably a more brutal takedown than deserved but I'm not at all sure it's wrong.
It's a great book to use for guidelines to start with when building out your own style. If youre an editor and want to use it to compell others to write with a style, it's less useful.
And "Bugs in Writing", which I've been pressing into people's hands for twenty years now. https://www.amazon.com/BUGS-Writing-Revised-Guide-Debugging/...
About a year or so ago I read through a bunch of that course and it seemed like it would be okay for someone who is new to writing in a business setting. But generally the summary was said: be concise as possible while still getting the message across to the appropriate audience.
Looking at it again, the "organizing large docs" is pretty good. https://developers.google.com/tech-writing/two/large-docs#pr...
"Choose a heading that describes the task your reader is working on. Avoid headings that rely on unfamiliar terminology or tools."
Products on Amazon even get the Hug of Death™.
I have realized that written/technical communication is a great differentiator.
I journal every day but specifically to your question I would say just start writing.
Knowing your audience is key. I usually include an executive summary section at the top of any design document or product requirements document for a high level view of why people should care. Then I dive into a background or history to give context. At the end of the day it's a narrative and follows similar arcs - just with more direct prose and specific facts. I'll also drop this resource here from the Pragmatic Engineer newsletter. [0]
[0]: https://newsletter.pragmaticengineer.com/p/software-engineer...
Replying to an email? Do the short summary at the top, then write a paragraph or two about the reasons/details/etc - these are also great references.
Encounter an issue and solve it? Write up what it was and what fixed it on a wiki, blog post, even just an email to yourself.
Hacker news? Write comments that are detailed.
Improving open source project READMEs and documentation is another great way to practice writing.
I am writing an O'Reilly book now and having a professional editor will help you learn the common errors you're making.
You should try to write short paragraphs, short sentences, and at a 4th-6th grade reading level. Good writing for literature is a lot different that good technical writing.
A good novelist may write at a 12th grade reading level, may use complicated words, and will use literary devices like allegory and foreshadowing.
A good technical writer should explain a concept in the most simple way possible. They should explicitly avoid literary devices like foreshadowing - their goal is to explain the concept in a straightforward manner. They should also avoid big words and long sentences. A large portion of technical readers are not native English speakers, so only the most basic words should be used.
How do you come up with "at least 5 minutes for a blog post"
A blog post should be as long as it needs to be - and no longer
In many cases, people want the tl;dr only, so I try to give them that first.
Joseph M. Williams, Style: Ten Lessons in Clarity and Grace.
An old edition is fine. There are many editions with slightly differing titles (Toward Clarity and Grace, The Basics of Clarity and Grace), all of them are fine. Get the cheapest or fastest to deliver or whatever. Don't think about which one to get.
The other great book about writing is Thomas&Turner's Clear and Simple as the Truth. It teaches Classical Style, which is less fitting to technical documentation, as the authors discuss themselves.
Write on paper first.
Paper is more immediate and has fewer distractions, fewer ways to go back and edit at once, and leaves a bit more time to think. It doesn't require looking at a screen, which you probably do enough of already.
Sure, typing it up is an extra step, but it can be a good editing step. Having edited (to the best of my ability) some of my wife's writings, I have been able to correctly guess when she wrote directly into the computer simply by the writing being less coherent.
If you are up for it, you could try moonlighting as a writer for technical content marketing agencies. You get paid on the side, while also subjecting your writing to editorial criticism until it is ready for publication.
https://twitter.com/no_identd/status/1220913617408864257
Prompted by my discovery of this book:
https://link.springer.com/book/10.1007/978-3-030-10756-7 "A Math-Based Writing System for Engineers: Sentence Algebra & Document Algorithms", by Brad Henderson
Edit:
Altmetrics just revealed to me that apparently a cheesy corporate marketing video for it exists:
Amazing.
There exist only so many ways in which to formally answer arbitrary instances of the 7 fundamental questions (yes, 7, not 5—or six, like IBM's Zachman framework would have one believe.).
¹ the Dalai Lama walks into a pizza place and asks: Can you make me one with everything?
Be prepared for several rounds of fine-grained heavy editing process. FWIW, I benefited greatly from my interaction with the LWN editors by contributing a handful of articles. Here's a somewhat recent example[2].
[1] https://lwn.net/op/AuthorGuide.lwn
[2] "A QEMU case study in grappling with software complexity" — https://lwn.net/Articles/872321/
Article-length (i.e. ~ 1K word) pieces for a publication where editors will actually take time and care to work with you--which is by no means a given these days is definitely the path I would recommend. Note that this is different in a number of ways from technical documentation. At the same time, it's also closer than something more literary or (for the most part) something more like reporting which has its own style (and other rules).
It's a much better experience and result than reading on a screen, editing it while you're reading, getting distracted, jumping back and forth between doing other things.
Before writing down a long form doc, make a quick mondmap answering the following:
1. What are the three core ideas you’re writing about? 2. What are the three main criticisms / counter arguments against your ideas? 3. How do you plan to respond to the criticisms?
Depending on the subject matter and length of the doc, you may need more or less than three. But see if you can get this mind map written first. Then, see if you’re convinced the ideas are worthy of writing. Only then write the long form.
Benefits: You get prompt feedback as to the quality of your writing. You may build a reputation.
Downside: That feedback may not exactly be sugar coated.
- why does a document need to be written? Is it to be discussed, debated, just documentation? Let this drive what really needs to be written. Often I’ve seen design documents with lengthy sections on information that is already well agreed upon or commonly understood, just adds noise for the reader.
- consider the audience. Engineers may read a document and have specific prior context that can be omitted, whereas a product manager may get lost in too much technical detail. Tailor your document to your audience, and use the appendix for extra details if someone wants to dig in further.
- keep it brief. Focus on information required to get the necessary outcome and convey the information clearly. Starting with an outline of headers is helpful as well.
- think of good writing you’ve come across. It was likely clear and succinct enough. In my own writing I used to include every last detail to make sure the reader was the most informed about how I reached some conclusion, but then realized too much info becomes counterproductive and doesn’t focus the reader on what matters.
And I'd add to that: Be reasonably consistent. Don't be belaboring what a microprocessor is and what it does in one sentence. And then throwing around jargon like registers, branch prediction, and hyperhtreading in the next without any explanation.
One thing I miss writing for the web is that footnotes don't work very well. When I was writing research notes, I really liked footnotes for--among other things--providing some parenthetical detail about technical terms and the like in a way that didn't break up the flow. Unfortunately, on the web, footnotes generally break up the flow more than just adding the detail inline.
Pick a product/ technology you’re familiar with and which has great documentation.
Go to their docs, and pick a page that is on a topic you know well.
Read only the title of the page.
Write the documentation.
When you’re done, compare your results with theirs. What headings did you choose vs theirs? Why do you think they chose the ones they did? How does your document flow vs theirs? How’d they illustrate the concepts vs you?
It’s an informative and fun exercise, at least to me.
It’s no different than writing code or writing a book. It takes time, iteration, and focus.
Personally happy to review a doc or two and provide feedback if that is helpful. I run a docs site for my company.
Our brains only have so much space in them so you only get to cram a small number of words into someone else's brain; make them the most productive words possible.
When writing, it's harder to remove words than write them.
I now regard it as a minimum bar that I can explain the broad outlines in plain language.
Anyone who can’t is is a fucking fraud.
Books that influenced me:
Style, by F.L. Lucas
Simple and Direct, by Jacques Barzun
For technical writing, I recommend four additional disciplines:
1.) Keep the documentation up to date.
2.) Allow and encourage your readers to give you feedback about what's unclear. Then make revisions based on this. Also, re-read what you wrote periodically, and make revisions whereever you think you can improve clarity and usefulness.
3.) Provide copious examples where you show how to accomplish useful things.
4.) Use the tool you're documenting. Find errors, corner cases, and things to be aware of and document them as comprehensively as possible.
As is George Gopen who also has a wonderful book that is more into the finer points of where to stick which part of the sentence. Williams and also McEnerney's lecture are much more motivating.
- just write and then edit - better to have written something (even if it's not great) and then make it better. Especially in writing perfect can be the enemy of good.
- step away - sometimes it helps to review your writing after maybe 1 hour or a day or a few days
- READ MORE - reading well written stuff really helps
Related: Do not be precious about what you've written as you rewrite. "Kill your darlings", as the saying goes.
https://www.masterclass.com/articles/what-does-it-mean-to-ki...
I've been doing this for 1-3 blog posts per month for the last 4 years and I think my writing is decent now.
It didn't come naturally. I hated editing all my life until I took a course in college and realized I could actually write clearly if I just spent a little time reading and reworking what I wrote.
The only directly related book I'd recommend is On Writing Well.
I'd also suggest reading clear and simple authors like Hemingway (A Movable Feast), Antoine de Saint-Exupéry (Wind, Sand and Stars), and Beryl Markham (West with the Night).
But fundamentally: consistent practice, rereading, and editing.
Anyone looking for a good system of producing documentation should check out:
https://documentation.divio.com/
Which has a 30-min presentation:
https://m.youtube.com/watch?v=t4vKPhjcMZg
Prior HN posts on the system are here:
https://hn.algolia.com/?q=https%3A%2F%2Fdocumentation.divio....
One pesky little detail is that documents take a lot of thought to write and this translates into a good bit of time to get a document out for review. If you have a "how fast are you closing your JIRA tickets" manager, it can be hard to justify and will come back to bite you (unfairly so, but such is the life of a sw. engineer).
Here's some technical writing courses: https://developers.google.com/tech-writing
And here are some examples of good writing: https://news.ycombinator.com/item?id=31630915
In technical writing, clarity reigns. Clarity above all else. Lists? Use bullet points. Topics? Make headings. Do two terms seem similar? Change your wording to make the differences obvious. Is there a technical term? Use it consistently. Are you using the same word in different senses? Use two different words. Using negatives? Use positives instead, they are easier to parse.
If you are good at the details of writing, your thoughts and ideas become clearer, because clear writing exposes the flaws in your ideas.
Recommended book: Style: Lessons in Clarity and Grace.
I also recommend finding a topic to blog about. You don't need to be an expert. Just keeping an active blog teaches you a lot about writing.
When writing about a concept, or a system, do something like
---
This system consists of
- A
- B
- C, (but see notes on C below)
(and then do the same for C further down)
---
Label each section with a header and have a ToC that has every header in it.
All this will let you do two things:
- cut down on bullshit, and be concise and precise.
- see and quickly change the structure of your document
Get to the point. Usually in the first two paragraphs. The entire meat of a memo or chapter is on one page. The rest of the memo or chapter is supporting material with examples, clarifications, diagrams, and context showing how this idea relates to a different idea.
In meetings, I usually present only the first page or one diagram that summarizes the entire memo. I usually tell people to read the whole thing if they want more details.
I am also in the habit of sharing my drafts with a lot of people so they know what I am up to. By the time it’s completed the audience has probably already seen it twice . This helps with buy-in. As I have already met with people who have concerns or objections.
1. Write more.
2. Write clearly.
3. Know your audience.
We're writing for engineers, not for entertainment. Release a technical article every week.1. Write a white paper on the application of a piece of OSS that you like.
2. Write a usage description for one of your one-off projects/scripts.
3. Write a technical paper about an algorithm you used in a specific instance.
4. Explain the solutions to classic interview problems (eg binary tree reversal) in written form.
5. At work, write up brief pitches for new product improvements you have.
In all cases, consider the audience and what needs to come across to accomplish your goal.
Every type of writing you practice makes you better at every other kind of writing. The part of your brain that learns to make fiction flow will do the exact same thing for complex technical documents.
Also, find someone you think is amazing at technical writing and ask them to sit down with you and revise something you wrote. Study what they want to change and why.
https://developers.google.com/tech-writing
Originally, the material was targeted at SWEs, trying to give them pragmatic ways of thinking about the advice you'll read elsewhere in this thread. I haven't kept up with it, so I don't know if that's still the focus.
I also keep a repository of my favourite books and some other resources here [1]
And some very short advice we give to our writers here [2]
[0] https://styleguide.ritza.co/writing-course/
[1] https://github.com/sixhobbits/technical-writing
[2] https://styleguide.ritza.co/improving-your-writing/how-do-I-...
* On Writing Well
* Google's free, self-guided technical writing courses
Using these, you should get much better at refining your writing. Write naturally, then go back and edit when rereading according to the your new skills.
Another thing to get better at is layering your message. Assume that some percentage of people drop off each paragraph. Important details for the entire audience should be front and center. Then gradually get more specific.
Boz has a nice write up on this: https://boz.com/articles/communication-is-the-job
I also try to assume my audience is a moron. Not because they are, but because any time you're doing technical writing, you presumably know more than them. Force yourself to not assume things are obvious just because you're familiar with them. IMO it's better for technical writing to be a tiny bit patronizing than to be lacking in vital detail. One specific example here is to either define any acronym before using it, include a glossary, or both.
>Communication is like selling - it's all about return on investment. And ROI is all based on understanding abstractions (and how they leak). You need to give the reader/listener enough of a promise they're going to get value at least proportional to the time spent consuming what you're trying to convey that they want to stick around.
I don't have a strong background in technical writing, but often get compliments on my documentation and the secret is org-mode; it makes writing structured documents easy, and there are many tool for converting org-mode docs to any format needed, so it adapts to any audience.
In writing, this manifests as not attempting to bring the reader up to speed with underlying concepts. Since they are "known". This can result in texts that only work as a reminder for those who already know the field.
I don't have a great way to "fix" that problem, but the first step is to at least be aware of it!
I found this guide helpful: https://www.knowledgeowl.com/home/three-tips-psychology-docu...
So make sure that things are motivated, and try to not just tell the reader the facts, but take them on a journey such that they will wind up with the right facts AND the right mental model at the end of things.
Docs for Developers: An Engineer’s Field Guide to Technical Writing
As the top poster mentioned, "know your audience". You must pitch your material at the right level for the reader. This doesn't mean dumbing it down. It means not including material which isn't relevant for the discussion at hand, and including material which is relevant. As an example, in some internal documentation for end users, one programmer wrote up details about the I2C bus number and addresses and details of some parts on the bus. Not suitable for user documentation, it's just not relevant at that level. They could have mentioned what the user needed to know e.g. configurable options within the application and their effects upon the device function and behaviour. That could be quite detailed, but it doesn't need to include unnecessary detail about the hardware details.
Structure your documentation to introduce concepts that build on each other in order.
For each topic, write an introduction to provide an overview of the concepts and what you will cover, then go into details with examples in logical order, and then wrap it up with a summary and any relevant conclusions at the end. You're taking the reader on a journey with you through some complex topic and you need to treat it like a story with a narrative. It all needs to fit together as a whole, not just a collection of disjoint factoids.
Have a read through various technical books and see how others structure their writing. See how they break everything down into (volumes!), chapters, sections, subsections and paragraphs, and then look at how you can take the system you are documenting, and break it down in a similar way. In many ways this mirrors breaking down a complex set of requirements into applications, libraries, data structures and functions, and depending upon what you're writing about there may be some commonality there. But you aren't just describing the nuts and bolts, you're describing the whole system, conceptually how it is designed and all fits together as a whole, how it's intended to be used, and bring it together in a logical sequence.
Also, look at effective use of figures and tables. With a few good drawings, even very simple diagrams, you can use them to frame what you'll cover in the text. Likewise with tables, don't write out longhand what can be summarised in tabular form.
Just like doing presentations, effective writing comes with practice. And help with review and proofreading will help greatly to spot and improve weak areas. I was lucky to work with a technical writer in my previous job, and she greatly improved the writing technique of many of the software developers on our team. It's a shame that it's not highly prized in software development, because it's an essential tool for effective communication of ideas, and it's a big part of what we should be delivering to our end users and other developers.