Three Laws of Software Complexity

Exploring the inevitability of software complexity in engineering.

The post is available here.

  • First Law: Well-designed systems degrade over time, becoming difficult to change.
  • Second Law: Complexity acts as a moat, reinforced by leaky abstractions.
  • Third Law: Software complexity has no upper limit, driven by human creativity and organizational dynamics.
  • Engineers often work on complex systems due to these inherent laws.