My tech-write wife says the Engineer-writer fault she most often encounters is the 'mystery story'. That's hiding the lead down at the bottom of an argument. Because Engineers like to show their work and don't want to 'give away the ending' until they've proved it right. So put the conclusion right at the top somewhere! Sometime its as simple as putting the last sentence of every paragraph at the beginning of the par…
I think it's less about "give away the ending" and more about construction, and wanting to avoid making a claim just from authority/status. This sounds like a good piece of advice to keep in mind. It's nicer for the reader to not have to wait till the end to get what's going on.
Undervalued Engineering Skills: Writing Well
181–190 of 385 posts
Re: Undervalued Engineering Skills: Writing Well
#182Earlier quoted context omitted.
“Writing is nature's way of telling us how lousy our thinking is.” ― Leslie Lamport
I love that quote, but Lamport actually says in the Specifying Systems book that he got it from Dick Guindon. I mention this purely in the interest of pedantry.
I think the ideas are related.
Re: Undervalued Engineering Skills: Writing Well
#183I agree with the author that writing is one of the most undervalued skills for SWEs, but for a completely different reason - it forces you to reason things through properly, even if nobody else will ever read what you write. Writing a couple of pages of design docs or an Amazon-style 6 pager or whatever might take a few days of work, but can save weeks or more of wasted implementation time when you realise your syste…
>Writing a couple of pages of design docs or an Amazon-style 6 pager While we are on this topic, how does one design things? I am very new to this and would love some references. Mostly I implement other’s design in code but I have never designed anything myself. I am always fascinated by the idea of writing an RFC like document but even that seems a little too far fetched for me as of now.
After many years in the industry, I've actually found that it's better to quickly prototype the various "big pieces" of whatever it is you are designing and learn the constraints of the space you are in first. (You're never going to get everything right with that first attempt at a design.) You can write documents up front explaining what you think your code is going to do, but I would actually not recommend going into too much detail because you only really learn about the problem space you are in by doing.
In terms of a document, keep the initial design light and explain your assumptions, what the technical constraints you face are and how you plan to mitigate them. This is mostly to share out with other people to see if they have concerns about the approach and if they have ideas to help with the process.
Re: Undervalued Engineering Skills: Writing Well
#184I agree with the author that writing is one of the most undervalued skills for SWEs, but for a completely different reason - it forces you to reason things through properly, even if nobody else will ever read what you write. Writing a couple of pages of design docs or an Amazon-style 6 pager or whatever might take a few days of work, but can save weeks or more of wasted implementation time when you realise your syste…
Just adding the following text seems to upset some people:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
It's like they don't want to be pinned down to an exact meaning in design documents! And don't even think about trying to "force" people to use a style guide like RFC 7322, or even an authoritative list of initialisms, acronyms, and abbreviations.
Is it too much to ask to have people use the same term to refer to a project, environment, component, etc? It saves so much time when you don't have to spend effort tracking down what someone means when they say "stage is broken".
This has already gotten too rant-y but it burns my butt so much! So much wasted effort!
Re: Undervalued Engineering Skills: Writing Well
#185I used to be a huge proponent of learning to write well as the most important skill an engineer can learn. Now, I think it's the second most important skill. The most important skill is sales . The key value of writing well, in a workplace environment (or other environments, really) is to convince others to agree with what you're proposing. Convincing people that something they don't initially understand or trust is…
I disagree that this separate from writing as a skill. I don't think you can characterize any writing as "good" if it fails to persuade the reader to care about the author's message. The audience for writing is humans and the author has to get their message to stick in that human's head. A piece of text that is precise, terse, grammatically correct, and completely uninteresting or persuasive is not writing , it's mer…
Re: Undervalued Engineering Skills: Writing Well
#186In a past life I helped optimize >$1b of online transactions as a CRO professional and learning to objectively "write well" could be quantified in two ways: 1) Message Density - there's a great quote attributed to Mark Twain that nails this "If I'd had more time I would have written you a shorter letter". In practice Jeff Bezo's push to making executives build "4 page memos" for meetings outlines this idea clearly: "…
Surprisingly, there are a lot of good tips in the US Gov's Plain Language Guidelines https://www.plainlanguage.gov/guidelines/
Re: Undervalued Engineering Skills: Writing Well
#187I agree with the author that writing is one of the most undervalued skills for SWEs, but for a completely different reason - it forces you to reason things through properly, even if nobody else will ever read what you write. Writing a couple of pages of design docs or an Amazon-style 6 pager or whatever might take a few days of work, but can save weeks or more of wasted implementation time when you realise your syste…
>Writing a couple of pages of design docs or an Amazon-style 6 pager While we are on this topic, how does one design things? I am very new to this and would love some references. Mostly I implement other’s design in code but I have never designed anything myself. I am always fascinated by the idea of writing an RFC like document but even that seems a little too far fetched for me as of now.
Then figure out what the requirements are that help you meet your goal and write those down.
Once you have a goal and a set of requirements the design is usually pretty easy.
Re: Undervalued Engineering Skills: Writing Well
#188David Perell (host of the North Star Podcast) has been tweeting a lot of good things about the value of writing + writing tips:
- https://twitter.com/david_perell/status/1127348174404890625
- https://twitter.com/david_perell/status/1124002449646395392
- https://twitter.com/david_perell/status/1116485842615377921
Re: Undervalued Engineering Skills: Writing Well
#189I agree with the author that writing is one of the most undervalued skills for SWEs, but for a completely different reason - it forces you to reason things through properly, even if nobody else will ever read what you write. Writing a couple of pages of design docs or an Amazon-style 6 pager or whatever might take a few days of work, but can save weeks or more of wasted implementation time when you realise your syste…
>Writing a couple of pages of design docs or an Amazon-style 6 pager While we are on this topic, how does one design things? I am very new to this and would love some references. Mostly I implement other’s design in code but I have never designed anything myself. I am always fascinated by the idea of writing an RFC like document but even that seems a little too far fetched for me as of now.
You should also write a reference implementation, because actually implementing something will expose a lot of problems in your assumptions, and it will give other implementers something to test against.
Generally, it's 3-6 months from inception to release of a smaller spec if you want it to be solid.
Actually, you could follow along with a couple of specs I wrote since I have a git history of them:
https://github.com/kstenerud/streamux/commits/master?after=7...
https://github.com/kstenerud/concise-encoding/commits/master...
Re: Undervalued Engineering Skills: Writing Well
#190I agree with the author that writing is one of the most undervalued skills for SWEs, but for a completely different reason - it forces you to reason things through properly, even if nobody else will ever read what you write. Writing a couple of pages of design docs or an Amazon-style 6 pager or whatever might take a few days of work, but can save weeks or more of wasted implementation time when you realise your syste…
Until you put something into words, one way or another, then it's just a fuzzy blob of assumptions and halfway articulated thoughts. The better someone is at writing, the better they're able to articulate their thoughts, even if it's just to themselves.