Clay Shirky has an interesting article on the collapse of complex business models. Under and around that discussion are several topics of interest to me. Below are some notes I made on related topics while I was reading the article.
Use Layers of simplicity:
Good complex systems are not really complex, they are layers of simplicity. One way I’ve heard that described is as “Simple, Complex vs Complicated”. Simple systems are simple. Complex systems are layers of simple systems, that can be abstracted and used separately, and unwoven. Complicated systems are, rather than a collection of simple parts, are a single complicated system, and are hard to unwind, or reuse just part of.
Complexity often has diminishing returns.
Complexity (and complication) has diminishing returns. Layers if management, interaction, and checking takes more and more resources away from the main goal. While each new layer may be useful, and add to overall quality and stability of the system, it get to a point where adding more takes so much time and energy, the new capabilities are not worth the cost.
No matter how simple you want a system, complexity or complication will creep in.
Simplifying is hard
In a lot of cases, removing complexity (or complication) from human systems is difficult. Often systems will rather collapse, than simplify. I think this is more a ‘human nature’ than ‘all of nature’ issue. People see cutting back a budget as a failure, rather than a success. They often see doing fewer things better as second to doing a lot poorly (I know I’m in that category). Simplifying something is harder than making it more complicated.
I think all of these are as true for human systems, as they are for computer systems. I hope in the future to write a bit about how to manage these issues for people, and code.