liveBook · Manning

Design document

As explained in Shipping Go: Develop, deliver, discuss, design, and go again

A design document is a written specification that describes a proposed software design, its rationale, and relevant implementation considerations.

A design document is a practical checkpoint against overbuilding. After an implementation became unnecessarily complex and its library was deprecated, the design was captured in the repository so others could review it before development and revisit how the system was built. section 11.3

Use a design document to:

  • Discuss a proposed design with the team before writing the implementation. section 11.3
  • Keep the chosen approach available in the repository for later implementation reference. section 11.3

A repository design checkpoint

Before building a complex feature, place its design document in a repository folder. Invite review, challenge whether the design solves the customer’s actual need, and use the accepted document as a reference during implementation. section 11.3

How Shipping Go: Develop, deliver, discuss, design, and go again covers it

How deep it goes
Explains purpose, placement, and timing but stops short of prescribing a document template or detailed design method.
Examples
Uses an overengineered implementation, a deprecated library, and a repository folder containing reviewable designs.
What you can do after
Evaluate and discuss proposed designs before development, then consult the accepted design while building the system.
How it connects
Connects design documents with RFCs, planning, team discussion, customer needs, and implementation.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Shipping Go: Develop, deliver, discuss, design, and go again. The section links point to the parts of the book it draws on.