On the left we have the process of abstract decomposition, and on the right we have the process of concrete composition:
Note that during the concrete composition from parts to final system on the right, we gracefully transition through two stable, intermediate forms. Some people and communities, especially those obsessed with “velocity” and “time-to-market“, would say “bollocks” to all those value-subtracting, intermediate steps. We no need no stinking intermediate forms:
Some of the parody accounts on Twitter are hilariously creative. Take “InfoSec Taylor Swift” for example:
The key word in Ms. Swift’s aphorism is “irreducible“. Being one of those things that isn’t objectively measurable (it’s funny how many things in real life are unmeasurable), one man’s “irreducible” is another man’s “reducible“.
I’ve discovered that many people, especially penny-obsessed managers, are so quick to assume and accept irreducibility in a complex system that they don’t even attempt to reduce its complexity:
- It takes time (which directly maps into expense) and hard mental labor to unravel complexity.
- In macho org cultures, irreducible complexity is often seen as intelligent sophistication, a badge of honor, a step toward lofty guru status.
Conversely, it is easier and less time consuming (which again directly maps into expense) to concoct an irreducible complex monolith than it is to thoughtfully build a reducible complex system of smoothly interacting parts.
Since I enjoyed reading Tom DeMarco’s “Slack: Getting Past Burnout, Busywork and the Myth of Total Efficiency” years ago, this diagram in Jamshid Gharajedaghi’s “Systems Thinking: Managing Chaos and Complexity” brought back some fond memories of that book:
The diagram shows the slow, insidious erosion in flexibility that occurs in a complex system when efficiency and optimization initiatives are relentlessly applied to the system by its uninformed stewards. As the “slack” is stretched out of the system due to increasing internal pressure, it: 1) loses its robustness to external stressors, 2) the tension between connected nodes increases, and 3) the inter-node couplings harden. At the system breaking point, one or more of the connections crack open, the nodes fly apart, and the conglomeration ceases to function as a whole – a system. I hate when that happens!
To illustrate the difference between analytical thinking and systems thinking (which some people think are identical), Jamshid Gharajedaghi presents these two figures in his wonderful book: “Systems Thinking: Managing Chaos and Complexity“.
Anyone who has been through high school has been exposed to equations of the type on the left. To discover the impact of one variable, say x1, on the system output, y, you simply vary its value while keeping the values of the other (so-called) independent variables fixed. But what about equations of the type on the right? Every time you attempt to vary the value of one variable to discover its effect on system behavior, you unwittingly “disturb” the values of each of the other variables… which in turn disturbs the variable you’re trying to directly control… which in turn disturbs the set of variables yet again… ad infinitum. It’s called the law of unintended consequences.
Nice and tidy equations of the type on the left are applicable to, and only to, problem modeling in the natural sciences in which the players are time, energy, and mindless chunks of matter. Intractable sets of equations of the type on the right, unsolvable messes in which every variable is correlated which every other variable, are applicable to socio-technical systems where the most influential players have minds of their own. System thinkers focus on the coupling and dynamic interactions between the variables in the system to understand emergent behaviors. Analytical thinkers assume away (either consciously or unconsciously) the nasty, non-linear, inter-variable couplings and thus form an erroneous understanding of the underlying causes of system behavior. Welcome to the guild of business management.
Induction is the process of synthesizing a generalization from a set of particulars; a mental step up in abstraction from many-to-one.
Deduction is the process of decomposing one generalization into a set of particulars; a mental step down in abstraction from one to many.
A good personal software design process requires iterative execution of both types of sub-processes; with liberal doses of random reflection thrown into the timeline just to muck things up enough so that you can never fully retrace your steps. It’s pure alchemy!
My twitter bio reads: “Fumbling, bumbling, stumbling, exploring, discovering, and being. So many ings!“. As that “ing-ful” first sentence implies, I’m always poking around for new ideas and alternative ways of looking at various aspects of the world. To BD00, ing–ing one’s way through life is a big part of really living life itself. Life is too short to stop ing–ing. But hey, it’s just badass BD00’s opinion; it doesn’t have to be yours.
When I first discover some novel and interesting work from someone I never heard of before, my levels of excitement and curiosity rise. I then dive a little deeper into the work in an honest attempt at ferreting out and understanding the real foundational substance of the work. If (heaven forbid!) I judge a newly discovered work as “meh“, then I move my attention onward toward the next adventurous expedition. There’s no sense in wasting time on something that doesn’t tingle my nerve endings with new meaning. Again, life is too short, no?
If (heaven forbid!) I judge that a newly discovered work is “good” or “bad“, then I get hooked and my current mental models of the world get rattled to an extent proportional to the work’s influence over me. Hell, my mental model(s) may even move off their concrete foundations a bit. In the areas of systems thinking and institutional behaving, the brilliant works of people like Deming, Ackoff, Argyris, MacGregor, Livingston, Warfield, Powers, Starkermann, Forrester, Meadows, Bateson, and Wheatley have considerably shaped my foundational views.
In the interest of full disclosure, I’ve decided to share with you below the relatively benign (compared to this people-oriented, blasphemous model) state transition diagram model of what I suppose goes on inside BD00’s forever ing–ing mind. As you can surmise, the external behaviors (speaking, writing) that I manifest while dwelling in the “sharing” state are bound to piss some people off. Also notice that, in homage to my man Shakespeare, I have inserted a “pausing” state in the model. It’s purpose, which doesn’t always get fulfilled, is to inhibit “the rush to judgment” malady that we all to some extent exhibit(?).
Essentially, all models are wrong, but some are useful – George Box
What does your thinking model look like? I’m especially interested in hearing from those of you who “think” you have transcended the innate human trait of judging objects – the set of which includes people. What would a world without judging look like? Would it be worth striving toward a world without any judging at all? Is it realistic to think there can be a world where people only judge “non-people” objects? BD00 doesn’t “think” so. D’oh!