---
id: "entity-a-philosophy-of-software-design"
type: "entity"
entityType: "publication"
canonicalName: "A Philosophy of Software Design"
source_timestamps: ["00:00:42"]
tags: ["book", "software-engineering"]
related: ["entity-john-ousterhout", "concept-tactical-vs-strategic-programming"]
---
# A Philosophy of Software Design

## What it is

A book by [[entity-john-ousterhout|John Ousterhout]] that introduces the concepts of **tactical programming** (focusing on getting features to work quickly) versus **strategic programming** (focusing on long-term codebase health and design). Also notable for the *deep modules* principle.

## Why it matters here

[[entity-matt-pocock|Pocock]] uses this framework as the central lens to explain how AI changes the developer's role. See [[concept-tactical-vs-strategic-programming]] and the derived claims [[claim-ai-eaten-tactical]] and [[claim-skills-are-ceiling]].
