Everybody says "Write simple code". Everybody says "complexity is bad". But we don't have a "concept" of complexity. We can't "do" anything with it besides say it's bad. There's only two popular treatments of complexity as a concept, and neither goes deeper than a basic level.
The first popular treatment is Fred Brooks' "No Silver Bullet" ( http://worrydream.com/refs/Brooks-NoSilverBullet.pdf), which divides complexity into "essential" to the system and "accidental". It doesn't do much more than that.

That's from 1986. The second treatment only came out a quarter-century later.
It's a bad analogy. What's your shirt made of? Complected things are far more flexible and durable than simplected things. Same is true for code.
We need better terminology to talk about complexity. I want separate category-terms for "complexity from complying with regulations" and "complexity from making the system deal with timeouts". They're both essential complexity, but also different kinds. Different effects.
The only other serious treatment of complexity I know about is feature interaction complexity ( http://www.pamelazave.com/faq.html  and http://www.pamelazave.com/fi.html ). It's pretty obscure though.
You can follow @hillelogram.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.