adding complexity to reduce complexity

In a recent Software Engineering radio episode Markus Voelter in his interview with a guest described complexity as energy. More specifically he talked about the law of conservation of energy (energy cannot be created nor destroyed, it can only be transformed). The topic of complexity can be viewed similarly.

By addressing some nuance of complexity in a project (e.g. growth of a team) we're applying tactics (e.g. hire a manager) that may solve the issue of coordination, but introduce the issue of bureaucracy.

We have come to accept these unattended consequences (or collateral damage) as a fact of life, but it's good to remind ourselves to question why we choose one tactic over another. Some of our "trivial" decisions are binding with no undo button.


Constantin K.
Firebrand Architect®
SoftwareArchitectures.com
FirebrandArchitect.com

Comments

Nick Malik said…
The metaphor of complexity as energy is flawed. Before Copernicus described the solar system, with the sun at the center, the "scientific" minds of his day had not only placed the earth at the center, but had created complicated mechanisms for reconciling the motions of the stars (and other planets) through what must now be seen as arcane and complex mathematics. In addition to creating these complex notions that described complex pathways through the firmament, the astronomers of the day were frequently perplexed to discover their math was simply inadequate to describe many of the observable phenomena. (bing 'Almagest')

Once Copernicus described a system with the sun at the center, all that complexity fell away. It literally vanished. It was not preserved.

Complexity is not a law of thermodynamics. It is a law of human assumptions, incorrect models, and attempts by well-meaning technologists to compensate for flaws in our underlying thinking that drives most complexity.

Complexity is not the fundamental nature of the universe. It is a necessary artifact in our understanding of the nature of the universe because our models should be as simple as they can be, but not simpler (to paraphrase Einstein). That said, as our models improve, complexity often falls away. There is nothing preserved when an ill-considered complexity is replaced by a well designed simplicity.
I agree that a one-to-one comparison of complexity to energy is flawed.

Perhaps the Newton's laws of motion better describe the real purpose of the post. Specifically the third law: "To every action there is an equal and opposite reaction."

While on the topic ... a recent article in WSJ (in collaboration with MIT Sloan) attempts to address the issue of complexity for the organizations that are Too Big to Manage.

That article invoked a response from a fellow reader who noted: "Complexity is created when clarity is lost." - John Mayberry.

Constantin K.

Popular posts from this blog

Why we do agile

Quality Attribute Refinement