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…
Writing a good design document
11–20 of 152 posts
Re: Writing a good design document
#12We 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
#13Two 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.
Re: Writing a good design document
#14Re: Writing a good design document
#15Two 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.
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
#16Earlier 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.
Re: Writing a good design document
#177.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...
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
#18Earlier 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.
Re: Writing a good design document
#19I'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
#20I 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...