System Design Documentation
The system design documentation is intended to record the decisions
made during the process of system design.
It should record the arguments for and, just as important, against any
major decision, and the factors influencing the final choice.
It should record CRC cards for the major components.
It should maintain a log or diary of the process schedule.
It is Important to produce this while the ideas are fresh, not in hindsight when
many details will have been forgotten.
Note that code is an artifact, and only records the outcome of decisions,
not factors that lead up to decisions being made. It is important to
record process as well as outcomes.