Comparing Three Notions of Software Complexity
2025-06-15
This article compares three distinct definitions of software complexity from Rich Hickey, John Ousterhout, and Zach Tellman. Hickey defines simplicity as oneness, emphasizing objectivity; Ousterhout defines complexity as anything making a system hard to understand and modify, highlighting dependencies and obscurity; Tellman defines complexity as the sum of every explanation, emphasizing audience-dependent surprisal. The article weighs the strengths and weaknesses of each, exploring their application to real-world problems. Ultimately, it argues that Tellman's explanation-based approach is superior for capturing subjective developer experience and guiding practical decisions.
Development
software complexity