Tech News
← Back to articles

Meta-analysis of three different notions of software complexity

read original related products more articles

A meta-analysis of three different notions of software complexity

I want to discuss three different notions of software complexity:

Rich Hickey’s notion of complexity, as explained in his talk Simple Made Easy.

John Ousterhout’s notion of complexity, as explained in his book A Philosophy of Software Design.

Zach Tellman’s notion of complexity, as explained in his newsletter Explaining Software Design.

I’ve picked these three because I’ve found them to be at least somewhat coherent, and the former two to be (relatively) well-known; this blog post is not meant to be exhaustive of all different definitions of complexity that have been offered over the years.

The definitions summarized

(Formatting note: exact quotes are taken from the above-mentioned work.)

Hickey complexity

Hickey defines something as being simple as having some kind of oneness - he uses the phrases “one fold/braid, one role, one task, one concept, one dimension.” Hickey states, “When you’re looking for something simple, you want to see it have focus in these areas. You don’t want to see it combining things.”

... continue reading