Live data from Hacker News

Writing a good design document

grantslatton.com

11–20 of 152 posts

Re: Writing a good design document

#11
post #7

All of this, plus, writing the documentation before building the app. I remember a Dilbert cartoon making fun of this being about the time I started realizing Dilbert wasn’t as smart as I had thought. If you can’t write the documentation before you’ve written the code, you don’t understand well enough what you’re building the code for. It’s one thing to jump into code because it’s fun to write code. But writing code…

Dilbert was just a normal person with average intelligence. His intelligence was magnified by ppl around him.

Re: Writing a good design document

#12
> Think of a design document like a proof in mathematics. The goal of a proof is to convince the reader that the theorem is true. The goal of a design document is to convince the reader the design is optimal given the situation.

We don't need to veneer technical writing in faux rigour for it to be worthwhile. That's the silly stuff that belongs on LinkedIn.

This kind of psuedo-rigor feels good to nod along to, but it's nonsense.

'We're not writing code, we're programming', 'we're not just programming, we're doing software engineering', and now 'we're not doing software engineering we're doing rigorous proof based mathematics' all of a sudden.

IDK how you write 'Think of a design document like a proof in mathematics.' without feeling at least a little bit silly.

> The goal of a design document is to convince the reader the design is optimal given the situation.

A proposed design may be optimal, or it may not, but the purpose of a design document is not to prove that the proposed design is optimal by any definition.

In a software development setting you're virtually NEVER formally proving anything, nevermind optimality.

You're writing technical fiction based in reality, nothing more. It's not a 'proof' of anything.

You're convincing stakeholders that your proposal can be feasibly built, is viable to run in the ecosystem of the rest of your codebases and infrastructure, and satisfies whatever business requirements that led to someone asking you to create a new $thing the design doc is aiming to propose the technical solution for.

Nothing more IMHO.

If your doc isn't doing those things then it's not effective, if it's giving the illusion of trying to do more than those things then it's just theatre.

The rest of the article is standard good writing advice, but can we not put design docs and PRFAQs on an altar as anything more than technical business fiction to communicate ideas and proposals for scrutiny to stakeholders.

Re: Writing a good design document

#13
post #9

Two quotes from the article stand out. First, from the X screenshot: "something about the process of writing makes your ideas 10x better". Second from near the beginning: "The most important person to convince is the author." Design documents are so essential that even after mumble years in the industry, I am amazed when people, including putative "Product Managers" push back on the idea. As Leslie Lamport noted, "Wr…

> Replace adjectives with data I think this idea got so pervasive all throughout tech that all the resumes that i now get are filled with so many numbers that i don't even know what to make of them.

99% of bullet points containing numbers in a resume are made up, hamfisted BS, the other 1% cannot be attributed to a single individual so putting them in a personal resume is silly.

Re: Writing a good design document

#15
post #9

Two quotes from the article stand out. First, from the X screenshot: "something about the process of writing makes your ideas 10x better". Second from near the beginning: "The most important person to convince is the author." Design documents are so essential that even after mumble years in the industry, I am amazed when people, including putative "Product Managers" push back on the idea. As Leslie Lamport noted, "Wr…

> Replace adjectives with data I think this idea got so pervasive all throughout tech that all the resumes that i now get are filled with so many numbers that i don't even know what to make of them.

If I get one more resume from a “seasoned professional” who has “decreased X by N%” I am going to close hiring, quit tech, and go be a hermit.

N.B. I received such a resume while typing this comment and am absconding to Outer Mongolia as I type

Re: Writing a good design document

#16
post #9

Earlier quoted context omitted.

> Replace adjectives with data I think this idea got so pervasive all throughout tech that all the resumes that i now get are filled with so many numbers that i don't even know what to make of them.

99% of bullet points containing numbers in a resume are made up, hamfisted BS, the other 1% cannot be attributed to a single individual so putting them in a personal resume is silly.

I don’t blame people for doing so. That’s what they have been told by recruiters to do to increase their chance of their resume not being thrown into the trash or be invisible. If there is someone to blame for this, it’s the recruiting industry.

Re: Writing a good design document

#17
post #4

7.5 Years at Amazon, and even for my side projects, I write PRFAQs and share them with my stakeholders to gather feedback. I'm a PMT at Amazon, but in my alternative life, I code on many projects, and develop infrastructure, architecture, etc, and enjoy writing as much of it as I can. That said, work back from your customer!

Hadn't seen it that way - PR/FAQ - Press Release / Frequently Asked Questions https://productstrategy.co/working-backwards-the-amazon-prfa...

I also added an Appendix "Technical Stack Considerations," but I like the PR and the FAQ's to focus on the customer/end-user's needs. The technical details matter, but they serve the customer outcome, not the other way around.

A recent project's tech appendix had headers like "Core Technology Philosophy", "Backend Architecture", "Frontend Architecture", "Service Architecture", "Infrastructure and Deployment", "Security Architecture", "Performance Requirements", "Configuration Management", "Backup & Disaster Recovery", "Development Workflow", "Network Architecture", "Resource Management", "Development Principles", and "Scalability Considerations".

The beauty is that by the time you get to the technical appendix, you've already validated what you're building and why it matters. The technical choices then flow naturally from the customer requirements rather than driving them.

Re: Writing a good design document

#18
post #9

Earlier quoted context omitted.

> Replace adjectives with data I think this idea got so pervasive all throughout tech that all the resumes that i now get are filled with so many numbers that i don't even know what to make of them.

99% of bullet points containing numbers in a resume are made up, hamfisted BS, the other 1% cannot be attributed to a single individual so putting them in a personal resume is silly.

It’s so dumb. There is no way to verify the numbers, and yet, this stupidity weaseled its way into the LinkedIn cinematic universe of corporate bullshit. The same point but without the “X by Y%” hits the same for me— besides I know what questions to ask to judge if you are actually capable of moving the needle, which is all I care about as a conductor of interviews.

Re: Writing a good design document

#19
That note in the tweets above, spoke to me.

I'm usually the only person that ever reads my docs, so I write docs for me.

I also often write design docs during, and sometimes after my projects.

I call it Forensic Design Documentation[0].

[0] https://littlegreenviper.com/miscellany/forensic-design-docu...

Re: Writing a good design document

#20
In my experience, organization/clarity is the biggest hurdle for SWEs trying to improve their doc writing. I like the author's spaghetti code analogy for the importance of idea organization within a doc -- I've struggled to convey the same concept before and I will use this in the future. In the past I've talked about 'ferrying' the reader through your thought process but this post explains the concept in a more familiar way.

I wrote a similar post last year[0] and it was interesting to see the similarities (concision, importance of practice) and differences with someone from a different company. I'm not sure I agree about 'short paragraphs' -- that may be a natural consequence of high information density writing but line breaks themselves aren't much help if the ideas aren't distilled. The 'Editing' section gets at that underlying idea more directly imo.

[0]https://ryanmadden.net/things-i-learned-at-google-design-doc...

Post reply on HN