Overview

The knowledge pyramid is a mental model for thinking about the distribution of technical knowledge, introduced in Fundamentals of Software Architecture by Richards and Ford to explain why architects and developers need different knowledge profiles. It divides all technical knowledge into three levels:

  1. Stuff you know (top, smallest): technologies, languages, frameworks, tools you use daily and are expert in. Requires active maintenance — expertise decays if unused.
  2. Stuff you know you don’t know (middle, large): things you’ve heard of or know exist but have little hands-on experience with. This is the breadth zone.
  3. Stuff you don’t know you don’t know (bottom, vast): the entire body of technologies, tools, and solutions you are unaware of — including ones that would be the perfect fit for a problem you’re trying to solve.

The career goal for any technologist is to move knowledge upward: from the unknown bottom into the middle (“I know Clojure exists but can’t code it”), and from the middle to the top when expertise is needed.

Developers vs architects

For architects, the wise course of action is to periodically sacrifice some hard-won top-layer expertise to broaden the middle layer.

Dysfunctions

Growing the middle

Techniques for expanding “stuff you know you don’t know” (see architectural thinking for details):

Cross-domain applicability

The pyramid applies beyond software: in any knowledge-intensive discipline, practitioners must decide how to allocate learning time between deepening existing expertise and broadening into adjacent domains. The same tension appears in deep work (depth) vs the breadth needed for synthesis and creative cross-pollination.

Resources