Podcast: Software Design with John Ousterhout

on complexity

described at an intuitive level, complexity is:

anything that makes it hard to do your job

  • also see cognitive load associated with doing the work
  • unknown unknowns:

anytime I have to do anything I have to read every line of code.

  • the goal is to reduce the overall complexity of the system
  • John is pro small incremental changes as you work in a codebase

if you take one thing (in attempt to reduce complexity) and push it to the extreme, you’ll probably end up in a bad place