Archive
It’s What We Do
Error correction is what we are doing every instant of our lives – John Gall (The Systems Bible, P84)
OMG! Mr. Gall’s wisdom is spot on with William T. Powers‘ PCT, which in effect states that:
We are a mysterious stacked aggregate of thousands of little control systems acting continuously on our environment in a manner which corrects errors between what we desire and what is. (BD00 via William Powers)
Need some dorky picture to visualize the undecipherable message? For context, try this one first:
Next try this model of “us” (actually, anything that’s alive):
When we go to sleep, our conscious mental control system building blocks temporarily go dormant. However, those at the periphery of the stack which directly penetrate the physical “us/environment” boundary never sleep – because the environment never sleeps. These unsung workhorse heroes at the bottom of the hierarchy symphonically collaborate to keep our blood pressure, temperature, breathing, heart beat, etc, within some preset genetic limits so that we can wake up the next morning! And the little buggers do this by…. continuously correcting for errors between what the bazillion “controlled variables” are and what they should be. Error correction is what we do.
Note that without nature’s loving cooperation in keeping the variations in the environment within the controllable limits of our little friends, we wouldn’t be here now – we wouldn’t have even “begun“. What a joyous and miraculous dance of life, no?
So, the next time someone asks you what you do for a living, tell them that you correct errors.
Related articles
- Command Vs. Control (bulldozer00.com)
- Bankrupt Models (bulldozer00.com)
- From The Ground Up (bulldozer00.com)
- Cross-Disciplinary Pariahs (bulldozer00.com)
- Normal, Slave, Almost Dead, Wimp, Unstable (bulldozer00.com)
- Extrapolation, Abstraction, Modeling (bulldozer00.com)
- Nine Plus Levels (bulldozer00.com)
Forrest Gumption
A gumption trap is an event or mindset that can cause a person to lose enthusiasm and become discouraged from starting or continuing a project. – Wikipedia
Some people credit Robert Pirsig with coining the term “gumption trap“. In his inimitable book, “Zen And The Art Of Motorcycle Maintenance“, he wrote a brilliant section classifying, listing, and explaining a gaggle of gumption traps. Two in particular stood out to BD00: anxiety and boredom.
Anxiety
You’re so sure you’ll do everything wrong you’re afraid to do anything at all. Often this, rather than “laziness,” is the real reason you find it hard to get started. This gumption trap of anxiety, which results from overmotivation, can lead to all kinds of errors of excessive fussiness. You fix things that don’t need fixing, and chase after imaginary ailments. You jump to wild conclusions and build all kinds of errors into the
machinesoftware because of your own nervousness. These errors, when made, tend to confirm your original underestimation of yourself. This leads to more errors, which lead to more underestimation, in a self-stoking cycle. The best way to break this cycle, I think, is to work out your anxieties on paper. Read every book and magazine you can on the subject. Your anxiety makes this easy and the more you read the more you calm down. You should remember that it’s peace of mind you’re after and not justa fixed machinehigh quality software. When beginning arepairjob you can list everything you’re going to do on little slips of paper which you then organize into proper sequence. You discover that you organize and then reorganize the sequence again and again as more and more ideas come to you. The time spent this way usually more than pays for itself in time saved on themachineproject and prevents you from doing fidgety things that create problems later on.Boredom
Boredom is the opposite of anxiety and commonly goes with ego problems. Boredom means you’re off the Quality track, you’re not seeing things freshly, you’ve lost your “beginner’s mind” and your
motorcycleproject is in great danger. Boredom means your gumption supply is low and must be replenished before anything else is done.
BD00 gets ensnared in the anxiety-gumption-trap whenever he finds himself marooned inside his head ruminating over a concern. On the other hand, BD00 rarely gets caught up in the boredom-gumption-trap. Not because he’s conquered his big, fat, ego, but because his curiosity and longing for understanding never wanes. He can’t even remember the last time he was bored. And to BD00, that’s a good thing.
How about you, dear reader? Which of these diametrically opposed gumption traps are you most susceptible to?
The Renaissance That Wasn’t
In the thoughtful and well-written article, “The Rise and Fall of Languages in 2012”, Andrew Binstock rightly noted that the C++ renaissance predicted by C++ ISO committee chairman Herb Sutter did not materialize last year. Even though C++ butters my bread and I’m a huge Sutter fan, I have to agree with Mr. Binstock’s assessment:
In fact, I can find no evidence that C++ is breaking into new niches at a pace that will affect the language’s overall numbers. For that to happen, it would need to emerge as a primary language in one of today’s busiest sectors: mobile, or the cloud, or big data. Time will tell, but I feel comfortable projecting that C++ will continue to grow in its traditional niches and will advance at the same rate as those niches grow.
Nevertheless, if you buy into Herb’s prognostication that power consumption and computing efficiency (performance per watt) will overtake programmer productivity as the largest business cost drag in the future, then the C++ renaissance may still be forthcoming. Getting 2X the battery life out of a mobile gadget or a .5X reduction in the cost to run a data center may be the economic ticket that triggers a deeper C++ penetration into what Andrew says are today’s busiest sectors: mobile, the cloud, and big data. However, if the C++ renaissance does occur, it won’t take hold overnight, let alone over the one year that has passed since the C++11 standard was hatched.
It’s tough to make predictions, especially about the future – Yogi Berra
Tainted Themes
In “The Collapse of Complex Societies“, Joseph Tainter defines “complexity” as:
Complexity is generally understood to refer to such things as the size of a society, the number and distinctiveness of its parts, the variety of specialized social roles that it incorporates, the number of distinct social personalities present, and the variety of mechanisms for organizing these into a coherent, functioning whole. – Joseph Tainter.
Joseph then defines “collapse” as:
A society has collapsed when it displays a rapid, significant loss of an established level of sociopolitical complexity. Collapse then is not a fall to some primordial chaos, but a return to the normal human condition of lower complexity. – Joseph Tainter
Mr. Tainter then surveys the landscape of historic, archaeological, and anthropological literature explaining the collapse of societies like the western Roman empire, the Mayans, the Hittites, the Mycenaeans, etc. He groups the theories of collapse into 11 “tainted” themes:
Joseph then skillfully makes a case that all these specialized themes can be subsumed under his simple and universal theory of collapse:
His theory goes something like this. As a society grows, it necessarily becomes more complex. Exceedingly more and more investment in complexity (infrastructure, basic services, defense, food production control, public tributes to the elite to maintain their legitimacy in the minds of the non-elites) is then required to hold the society together. However, as the graphic below shows, at some point in time, the marginal return on the investments in complexity reaches a tipping point at which the society becomes vulnerable to collapse from one or more of the subsumed themes.
To illustrate further, BD00 presents the dorky growth-to-collapse scenario below:
As shown, societal growth begets a larger and more internally diverse production subsystem. That same growth requires investment in more and varied control (Ashby’s law of requisite variety) over production so that “the center can hold” and the society can “retain its identity as a whole“. In this runaway positive feedback system, the growing army of controller layers siphons off more and more of the production outputs for itself – starving the production subsystem in the process.
To prevent the production subsystem from dispersing (or revolting) and keep the whole system growing, more and more investment is poured into production control (compliance and efficiency) in an attempt to increase output and keep both the production and control subsystems viable. However, as the control subsystem growth outpaces production subsystem growth and a caste system emerges, the control subsystem requires a larger and larger share of the production subsystem outputs for itself – which further weakens and constrains and alienates the production subsystem. Hence, the “declining marginal return on investment in complexity” machine is kicked into overdrive and the vulnerability to collapse appears on the horizon. D’oh!
In your growing “society“, is the controller subsystem growing faster than the production subsystem? Are more specialized controller/administration layers being added faster than producers? Is the caste system becoming more stratified and prejudiced? Are more and more processes/rules/policies being imposed on the production subsystem for increased compliance and efficiency? Is the army of growing controllers siphoning off more and more of the production system outputs for themselves? If so, then maybe your society is vulnerable to sudden collapse. But then again, it may not. Tainter’s thesis is simply a bland and drama-less, economically based theory. It might be tainted itself.
Say it taint so, shoeless Joe! – unknown kid
It’s Systems As Such
BD00 is tickled pink to have discovered the work of systems guru John Gall through Ruth Malan and thinkpurpose (muchos gracias Ruth and TP!). Behold the wisdom of the man:
If you’re an anointed leader (a.k.a dictator) and/or so-called change agent, you better freakin’ paste these galling truisms on your wall and consult them before designing your next system or mandating a change “from above” to an existing system. Actually, fuggedaboud it. It doesn’t matter. You’re hosed no matter what; even if you think you aint.
The problem isn’t THE system, it’s systems as such – John Gall
Never Woulda Thunk It
LSD… Far Out Man
Alright, before we go on, let’s first get something out of the way so that we can start from the same context. This post is not about Small Scale Development (SSD) projects. As the following figure shows, on SDD projects one can successfully write code directly from a list of requirements (with some iterative back-and-forth of course) or set of use cases or (hopefully not) both.
Now that we’ve gotten that out of the way, let’s talk about the real subject of this post: Large Scale Development (LSD <- appropriate acronym, no?) projects. On hallucinogenic LSD efforts, one or possibly two additional activities are required to secure any chance at timely success. As the next figure shows, these two activities are “System Design” and “Software Design“.
So, what’s the difference between “system design” and “software design“? Well, if you’re developing software-intensive products for a specialized business domain (e.g. avionics, radar, sonar, medical, taxes), then you’re gonna need domain experts to bridge the GOHI (Gulf Of Human Intellect) between the higher level requirements and the lower level software design…..
Most specialized domain experts don’t know enough about general software design (object-oriented, structured, functional) and most software experts don’t know enough about domain-specific design to allow for successfully skipping the system design phase/stage. But that hasn’t stopped orgs from doing this….
Just Like Tim
I’m intellectually lazy. I’m a fan of empiricism; it’s just a drag to have to practice. If you’re anything like me, you don’t make up your mind about important issues by doing original research, poring over primary sources and coming to your own conclusions; you listen to people who claim to know what they’re talking about—“experts”—and try to determine which of them is more credible. You do your best to gauge who’s authentically well-informed and unbiased, who has an agenda and what it is—who’s a corporate flack, a partisan hack, or a wacko. – Tim Kreider (We Learn Nothing).
Who amongst us is not like Tim? Thanks to the web, even though accessibility to primary sources and original research is at unprecedentedly high levels, there’s just not enough time to perform “due diligence” in order to form (so-called) objective opinions on issues that tug at our souls. Whether we admit it or not, we all use a form of the BD00 bozometer, which is reproduced below for your viewing displeasure.
If you’re a regular reader of this blawg, then you’ve probably pegged BD00 as “Is A Bozo” – and you’re right!
The Gall Of That Man!
A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system. – John Gall (1975, p.71)
This law is essentially an argument in favour of underspecification: it can be used to explain the success of systems like the World Wide Web and Blogosphere, which grew from simple to complex systems incrementally, and the failure of systems like CORBA, which began with complex specifications. – Wikipedia
We can add the Strategic Defense Initiative (Star Wars), the FBI’s Virtual Case File System (VCS), JTRS, FCS, and prolly a boatload of other high falutin’ defense projects to the list of wreckage triggered by violations of Gall’s law. Do you have any other majestic violations you’d like to share? Can you cite any counter-examples that attempt to refute the law….
One of the great tragedies of life is the murder of a beautiful theory by a gang of brutal facts – Benjamin Franklin
C++, which started out simply as “C With Classes“, is a successful complex “system“. Java, which started out as a simple and pure object-oriented system, has evolved into a successful complex system that now includes a mix of functional and generic programming features. Linux, which started out as a simple college operating system project, has evolved into a monstrously successful complex system. DDS, which started out as a convergence of two similar, field-tested, pub-sub messaging implementations from Thales Inc. and RTI Inc., has evolved into a successful complex system (in spite of being backed by the OMG). Do you have any other law abiding citizens you’d like to share?
Gall’s law sounds like a, or thee, platform for Fred Brooks‘ “plan to throw one away” admonition and Grady Booch‘s “evolution through a series of stable intermediate forms” advice.
Here are two questions to ponder: Is your org in the process of trying to define/develop a grand system design from scratch? Scanning your project portfolio, can you definitively know if you’re about to, or currently are, attempting a frontal assault on Gall’s galling law – and would it matter if you did know?
The Peanut, The Tini, And The Look
My fave ritual happens every Friday evening as soon as I get home from work. It goes like this:
1) As soon as I get into the house, my best buddy, my dog Morrie, saunters over to the sliding door that opens out onto my deck and plants his butt below the door handle.
2) While Morrie, tail a waggin’ and eyes alight, sits patiently at the door, he watches me sloowly fix up a multi-shot, dirty, vodka martini.
3) After draining the shaker into my ‘tini chalice, I walk over to Morrie and hand him his rubber “peanut“. Then I slide the door open.
4) As soon as the door is open barely wide enough for him to get through, Morrie bolts over to our sacred spot in the corner of the yard. He then drops the peanut, sits, and looks at me with great anticipation.
5) With ‘tini in hand, I coolly strut over to “our” spot and pick up the peanut.
6) I proceed to play fetch with Morrie over and over and over till I’m done sipping my ‘tini, which, due to the capacity of my chalice, can take quite a long period of time.
7) I pickup the peanut and walk back into the house while Morrie stays put at our sacred spot and gives me his WTF! look.
8) After a few minutes of misplaced “hope“, Morrie dejectedly concludes that we’re done. Then he stretches into his inimitable four point football stance, pees, and comes back into the house.
What’s your fave ritual?
















