Writing a good design document | Hacker News
Each section should follow from the previous. The design doc should justify to the reader (and author) that the problem is understood, the requirements are necessary and sufficient, the functional spec meets the requirements, and the technical spec implements the functionality and non-functional requirements. As a corollary, if one section has a fatal flaw, there is no need to read on. If the problem is misunderstood, then the functional spec is likely wrong. If the functional spec doesn't meet the requirements, then the implementation is moot. The issue I see very frequently is technical design documents that provide only the final section—a simple description of the system that will be built. As a design reviewer, there is limited feedback I can provide on such a design. Sure, it's a system, but will it solve the problem? Does the team even agree on the problem to be solved? Layer one also explicitly identifies stakeholders, and describes the current (AS-IS) situation with annonated
The structure I prefer for a technical design document is like a three-layer onion.The first layer is the problem statement, goals, non-goals, and requirements, both functional and non-functional. The next layer is the functional specification, which describes precisely how the system will work from an external perspective. The third and final layer is the technical specification, which describes the internals. Each section should follow from the previous. The design doc should justify to the reader (and author) that the problem is understood, the requirements are necessary and sufficient,…
saved by
related reading
- How to Write an Effective Software Design Documentrefactoringenglish.com
- Design Docs at Googleindustrialempathy.com
- Writing a good design documentgrantslatton.com
- Understanding Technical Design Document and Writing Guidekimi.ai
- Design Engineeringfloguo.com
- Karl Koch | Write-first designkarlkoch.me
- The Surprising Power of Documentationnews.ycombinator.com
- System Design Delivery Framework | Hello Interview System Design in a Hurryhellointerview.com
- System Design in a Hurry | Hello Interview System Design in a Hurryhellointerview.com
- Speculative Everything : Design, Fiction, and Social Dreamingreadings.design
- Design Engineering at Vercel: What we do and how we do it - Vercelvercel.com
- Wonder Blocks: on the creation of Khan Academy’s design systemdesignsystems.com