07 Design Docs
-
Types of documentation
- Reference documentation (incl. code comments)
- Design documents
- Tutorials
- Conceptual documentation
- Landing pages
-
Design documents
- Code review before there is code!
- Collaborative (Google Docs)
- Ensure various concerns are covered, such as: security implications, internationalization, storage requirements, and privacy concerns.
- A good design doc should cover
- Goals and use cases for the design
- Implementation ideas (not too specific!)
- Propose key design decisions with an emphasis on their individual tradeoffs
- The best design docs suggest design goals, and cover alternative designs, documenting the strengths and weaknesses of each.
- The worst design docs accidentally embed ambiguities, which cause implementors to develop contradictory solutions that the customer doesn’t want.
-
Common parts/templates
- Metadata: version, date, authors
- Executive Summary: problem being solved, project mission
- Stakeholders (and non-stakeholders)
- Scenarios / User Stories
-
User Experience
-
High-level Requirements: Functional • Global Requirements: Quality, Security, Privacy, Ethics
- Features and Operations
- Design Considerations and Tradeoffs
- Non-Goals
- Roadmap / Timeline
- Open Issues
-
Examples: SourceGraph RFCs
- RFCs (Requests for Comments) within the context of SourceGraph.
- Sourcegraph Handbook