A Practical Guide to Writing a Software Technical Design Document
The Iterative Options Analysis Approach
Disclaimer: The methodologies discussed in this article are a result of my collective experience of all the past years in software, hardware, and engineering in general. They do not represent any view of any company.
(Grab the full version of the guide with a real-life example on Gumroad.)
Design document writing is not only a brain dump of how you design software to communicate to other people (like recipes) but also most importantly, a tool for the software designer to form a concrete idea of how to solve a problem systematically and critically.
Over the years, I have been iterating my methodology for software design writing — I call it, Iterative Option Analysis (IOA). In the article, I will talk in-depth about what it is and how it works. I will use an example of building a transcribing app as an example to illustrate the idea, throughout the article
Document Structure from a Bird’s-eye view
Problem
Background
Goals
Non-Goals
Design Options
Option 1
- Pros
- ConsOption 2
- Pros
- Cons…