Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

60%
+1 −0
Q&A Strategies for writing software design documents

I personally like design documents that are short and fat-free. What are you trying to accomplish? What is your main idea and why? Main decisions Main challenges you encountered What will I - as ...

posted 6y ago by manduca‭  ·  last activity 5y ago by System‭

Answer
#3: Attribution notice added by user avatar System‭ · 2019-12-08T11:00:04Z (about 5 years ago)
Source: https://writers.stackexchange.com/a/42565
License name: CC BY-SA 3.0
License URL: https://creativecommons.org/licenses/by-sa/3.0/
#2: Initial revision by user avatar manduca‭ · 2019-12-08T11:00:04Z (about 5 years ago)
I personally like design documents that are short and fat-free.

- What are you trying to accomplish?
- What is your main idea and why?
- Main decisions
- Main challenges you encountered
- What will I - as newcomer to your project - find surprising?
- What are the 3 classes I should look at first?

To get into the mood:

- Imagine we are sitting and having a beer. You are telling me about your project. 
- Imagine you are giving a one-hour presentation about your project. What would you tell?
- Imagine I just downloaded your stuff off github. What do I absolutely have to know before I start looking at the code?

Keep it short and remember to update it once things change. Do NOT write a 100 page design doc. Nobody will read it and it will always be out of sync with the code. Do concisely comment every class and function and write your code in a self-evident manner (short functions with clear names, clear names for variables, etc.). Your design documents should be 3-page affairs. Major components can have their own design documents.

#1: Imported from external source by user avatar System‭ · 2019-02-24T13:17:16Z (almost 6 years ago)
Original score: 5