Archive
Design Disclosure
Recently, I had to publicly disclose the design of the multi-threaded CSCI (Computer Software Configuration Item) that I’m currently bringing to life with a small group of colleagues. The figure below shows the entities (packages, CSCs (Computer Software Components), Classes) and the inter-entity relationship schema that I used to create the CSCI design artifacts.
As the figure illustrates, the emerging CSCI contains M packages and K top level CSCs . Each package contains from 1 to N 2nd level CSCs that associate with each other via the “communicates” (via messages) relationship. Each CSC is of the “passive” or “active” class type, where “active” means that the CSC executes within its own thread of control.
Using the schema, I presented the structural and behavioral aspects of the design as a set of views:
- The threads view (behavioral )
- The packages view (structural)
- The class diagrams view (structural)
- The sequence diagrams view (behavioral)
Like any “real” design effort (and unlike the standard sequential design-code-test mindset of “authorities“), I covertly used the incremental and iterative PAYGO methodology (design-a-little, code-a-little, test-a-little, document-a-little) in various mini sequences that, shhhh – don’t tell any rational thinker, just “felt right” in the moment.
As we speak, the effort is still underway and, of course, the software is 90% done. Whoo Hoo! Only 10 more percent to go.
Exactly Two Years Hence
Before going any further, make a note of today’s date. Now, if you want to follow the timeline of a sad story, then perform the following procedure while noting the date of each post:
1 Read this post: My Company
2 Then read this post: The End Of An Era
3 Then read this post: Heartbroken, But Hopeful
So, what does the future hold? Hell, I don’t freakin’ know. My friend Bill Livingston‘s line-dot-cone sketch says it all:
Unfriendly Fire
In Nancy Leveson’s new book, “Engineering A Safer World“, she analyzes (in excruciating detail) all the little screw-ups that occurred during an accident in Iraq where two F-15 fighters shot down two friendly black hawk helicopters – killing all aboard. To set the stage for dispassionately explaining the tragedy, Ms. Leveson provides the following hierarchical command and control model of the “system” at the time of the fiasco:
Holy shite! That’s a lot of levels of “approval required“, no?
In typical BD00 fashion, the dorky figure below dumbs down and utterly oversimplifies the situation so that he can misunderstand it and jam-fit it into his flawed UCB mental model. Holy shite! That’s still a lot of levels of “ask me for permission before you pick your nose“, no?
So, what’s the point here? It’s that every swingin’ dick wants to be an esteemed controller and not a low level controlleee. Why? Because….
“Work is of two kinds: first, altering the position of matter at or near the earth’s surface relatively to other such matter; second, telling other people to do so. The first kind is unpleasant and ill paid; the second is pleasant and highly paid.” – Bertrand Russell
People who do either kind of work can be (but perhaps shouldn’t be) judged as bozos, or non-bozos. The bozo to non-bozo ratio in the “pleasant” form of work is much higher than the “unpleasant” form of work. – BD00
Shocking!
In the brilliant YouTube video, “An Introduction to Erlang (for Python programmers) “, the narrator presents the following facts about Erlang that are shocking to “normal” programmers trained in object-oriented languages:
So, why would anyone want to learn Erlang? Because….
In my case, the fact that concurrency, distribution, fault-tolerance, and hot-swapping are built in to the language make me a huge Erlang fan. On the downside, I’m not a fan of “managed” languages. However, Erlang’s positives far outweigh its negatives. What do you think?
Awhile ago, I started a focused effort to learn how to program idiomatically in Erlang. However, because:
1 I’m a slooow learner.
2 C++/Java are the languages that my company’s products are written in.
3 ……
I’ve abandoned the “deep dive” into the language. However, I’m definitely still watching from the periphery because my gut tells me that Erlang will continue its rise into prominence.
Dysfunctional Interactions
In “Engineering A Safer World“, Nancy Leveson states that dysfunctional interactions between system parts play a bigger role in accidents than individual part failures. Relative to yesterday’s systems, today’s systems contain many more parts. But because of manufacturing advances, each part is much more reliable than it used to be.
A consequence of adding more parts to a system is that the numbers of potential connections and interactions between parts starts exploding fast. Hence, there’s a greater chance of one dysfunctional interaction crashing the whole system – even whilst the individual parts and communication links continue to operate reliably.
Even with a “simple” two part system, if its designed-in purpose requires many rich and interdependent interactions to be performed over the single interface, watch out. A single dysfunctional interaction can cause the system to seize up and stop producing the emergent behavior it was designed to provide:
So, what’s the lesson here for system designers? It’s two-fold. Minimize the number of interfaces in your design and, more importantly, limit the number, types, and exchanges over each interface to only those that are required to fulfill the system’s purpose. Of course, if no one knows what’s required (which is the number one cause of unsuccessful systems), then you’re hosed no matter what. D’oh!
Out With The Old And In With The New
Nancy Leveson has a new book coming out that’s titled “Engineering A Safer World” (the full draft of the book is available here: EASW). In the beginning of the book, Ms. Leveson asserts that the conventional assumptions, theory, and techniques (FMEA == Failure Modes and Effects Analysis, Fault Tree Analysis == FTA, Probability Risk Assessment == PRA) for analyzing accidents and building safe systems are antiquated and obsolete.
The expert, old-guard mindset in the field of safety engineering is still stuck on the 20th century notion that systems are aggregations of relatively simple, electro-mechanical parts and interfaces. Hence, the steadfast fixation on FMEA, FTA, and PRA. On the contrary, most of the 21st century safety-critical systems are now designed as massive, distributed, software-intensive systems.
As a result of this emerging, brave new world, Ms. Leveson starts off her book by challenging the flat-earth assumptions of yesteryear:
Note that Ms. Leveson tears down the former truth of reliability == system_safety. After proposing her set of new assumptions, Ms. Leveson goes on to develop a new model, theory, and set of techniques for accident analysis and hazard prevention.
Since the subject of safety-critical systems interests me greatly, I plan to write more about her novel approach as I continue to progress through the book. I hope you’ll join me on this new learning adventure.
Six “C”s
Whoo Hoo! I found another non-mainstream heretic to learn from: Mr. Alfie Kohn.
I’m currently in the process of reading Mr. Kohn’s book: “Punished By Rewards“. PBR is a well researched and eloquently written diatribe against anything that reeks of the Skinnerian dogma: “Do This And You’ll Get That“. Mr. Kohn is a staunch opponent of rewards, punishments and any other form of external control.
People don’t resist change. They resist being changed. – Unknown
Applying his rhetoric to parenting, the classroom, and the corpricracy, Alfie cites study after study and experiment after experiment in which all external motivational actions perpetrated by “authorities” achieve only short term results while destroying intrinsic motivation and ensuring long term, negative consequences – like reluctant compliance and uncreative, mechanistic doing.
The classic (and reasonable) question posed most often to Mr. Kohn is “if rewards and punishments don’t work, what alternatives are there Mr. Smartie Pants?“. Of course, he doesn’t have a nice and tidy answer, but he cites three “C”s: Choice, Collaboration, and Content, as the means of bringing out the willful best in children, students, and employees.
Much like Dan Pink‘s big 3 (mastery, autonomy, and purpose), creating an environment and supporting culture in which Alfie’s three “C”s are manifest is devilishly difficult. In familial, educational, and corporate systems, their hierarchical structures naturally suppress Alfie’s 3 “C”s while nurturing this 3 “C” alternative:
Shipped!
Woot! They’ve been shipped! What’s been shipped? Why, the free “cog diss” T-shirts silly:
In case you were born yesterday, or this is the first time you’ve stumbled upon this ridiculous time-waster of a blawg, here’s the scoop.
Not too long ago, BD00 celebrated his fitty-turd birthday by offering up the obnoxious T-shirt to the first two substantive evaluators of this blog. The first winner was (unsurprisingly) the chameleonic fish dude who frequently visits here and serves up funny blowback under pen names such as: oldfishfart, bottom-feeder-fish, finding-neo-fish, dwindling-resources-fish, Fishbert, lord-of-the-fish, etc. Mr. Fishilicious came through on a request to send BD00 a pic of him wearing the highly coveted collectors item. Vera Wang, eat your heart out.
The second winner was a surprise. He’s a first time commenter from the great country of Espana who came out of the shadows to thoughtfully pitch in his two cents. Perhaps the sleeping bull in BD00’s coat of arms evoked an image of Spain’s world renowned “running of the bulls” event? Look – here’s a vision of my new friend running like Usain Bolt in next year’s running of DA BULSE:
After hoofing it down to the USPS on Saturday and filling out a customs form in triplicate, the second turdy tee was off to Spain. BD00 now anxiously awaits the arrival of a pic of his Spanish friend donning the dung. Preferably, an adventurous one like the one above?
Miraculous Recovery
It’s a miracle, a true blue spectacle, a miracle come true – Barry Manilow
The business equation is as simple as can be: profits = revenues – costs. For the moment, assume that increasing revenues is not in the cards. Thus, as the graph below shows, the only way of increasing profits is to reduce costs.
By far, the quickest, most efficient, and least challenging method of reducing costs is by shrinking the org. However, the well known unintended consequences of reducing costs by jettisoning people are:
- increased workload on those producers “lucky enough” to remain
- the loss of bottom up trust and loyalty,
- lowered morale, increased apathy and skepticism
- less engagement, lowered productivity
- the loss of even more good people seeking out a better future
Unless these not-so-visible unintended consequences are compensated for (which they usually aren’t), the increase in profits may be short-lived. Sometime later, revenues may start decreasing as a result of customer defections triggered by deteriorating product and service quality.
As the system dynamics influence diagram below shows, the start of customer defections may trigger a vicious downward spiral into oblivion in the form of a positive feedback loop. An increase in customer defections leads to an acceleration in the decrease in profits, which leads to an increase in cost cutting measures, which accelerates decreased product/service quality, which increases the number of customer defections.
Once the vicious cycle commences, unless the loop is broken somehow, the extinction of the org and all of its “innards” is a forgone conclusion:
So, how can the cycle be broken? Well duh, by increasing revenues. So, how can revenues be increased? By somehow “miraculously”:
- Creating new products/services that customers want and competitors don’t have yet
- Enhancing the existing product/service portfolio to distinguish the org’s offerings from the moo herd’s crappy products/services
But wait, you say. How can an org enhance their products and/or create new ones with no capital to invest because of decreasing (or no) profits? Then, uh, that’s where the “miraculously” comes in.
In a tough business environment, it doesn’t take much to cut costs (that’s what dime-a-dozen MBAs and mercenary hatchet men are for). It takes talent, ingenuity, lots of luck, and real leadership to increase revenues when little to no investment resources are available. No matter how sincere, text book exhortations, rah rah speeches, and appeals for increased focus/dedication/loyalty (with no reciprocating commitment for compensation should the ship be righted), aren’t characteristic of real leadership. They’re manifestations of fear.
I’ll Skip This One
“The Back Of The Napkin” author Dan Roam is hatching a new book titled “Blah Blah Blah: What To Do When Words Don’t Work”.
Being a graphics-oriented dude myself, I loved reading TBOTN. However, since I’m spoiled from buying Kindle books for $9.99, I’m gonna skip purchasing this one because I refuse to pay the $14.99 price that the publisher wants for the e-version. It makes BD00 wonder what the publisher-publishee split is from the sale of each unit.

I love the fact that self-publishing is on the rise and that sites like lulu.com are eating into dinosaur publishing house profits. The big pub house strategic plan may be to phase out the costly-to-produce physical versions of their books while jacking up the price for the non-touchable e-versions. For now at least, I’m not hoppin’ on that train.


















