The Pragmatic Engineer

The Philosophy of Software Design – with John Ousterhout

530 snips
Apr 9, 2025
John Ousterhout, a Stanford professor and creator of the TCL scripting language, shares his insights on software design in the age of AI. He argues that as AI tools advance, strong design principles become even more crucial. The discussion covers the pitfalls of prioritizing speed over quality in coding, the value of deep modules, and the importance of empathy in design. Ousterhout also critiques common practices like TDD and emphasizes the need for a balanced approach to design. His 'design it twice' principle offers a fresh perspective for developers.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
ANECDOTE

Tactical Tornadoes

  • John Ousterhout describes "tactical tornadoes" as prolific programmers who prioritize speed over code quality.
  • These individuals often create technical debt, leaving others to clean up their messes.
ADVICE

Design It Twice

  • Design things twice to overcome the tendency to implement the first idea that comes to mind.
  • The second design is always better, even if the first seems good initially.
INSIGHT

Deep Modules

  • Deep modules, with simple interfaces and hidden complexity, provide leverage against complexity.
  • They offer substantial functionality with minimal cognitive load for users.
Get the Snipd Podcast app to discover more snips from this episode
Get the app