The Pragmatic Engineer

The Philosophy of Software Design – with John Ousterhout

402 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
INSIGHT

AI's Impact on Software Design

  • AI tools will likely handle more low-level coding tasks, increasing the importance of software design.
  • Software design, currently neglected in education, will become a larger fraction of developer time.
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.
Get the Snipd Podcast app to discover more snips from this episode
Get the app