A Philosophy of Software Design

A Philosophy of Software Design , by John Ousterhout describes Ousterhout's general strategies for designing software.

Documentation

A Philosophy of Software Design , video, Talks at Google, 2018-07-20
A presentation about the book.

Strategies

Define Errors Out of Existence
Various examples of this surface in Tcl.