Ousterhout's A Philosophy of Software Design Argues Deep Modules Beat Small Ones

John Ousterhout, a Stanford professor and creator of Tcl, wrote A Philosophy of Software Design, drawing on a course he teaches there. The book argues that software complexity accumulates gradually through small shortcuts, and it identifies symptoms such as change amplification, cognitive load, and unknown unknowns. It contrasts tactical programming, which focuses on rapidly delivering features, with strategic programming, which prioritizes designs that keep future changes cheap. Ousterhout recommends that developers invest about 10 to 20 percent of their time in design improvements. He also advocates deep modules with small interfaces that hide substantial functionality, rather than many shallow modules that add little value.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.


Discussion (0)
Log in to join the discussion and vote.
Log in