Archive
CMMI Insanity
This CMMI stuff is getting absurd. There seems to be a CMMI sub-category for everything now: CMMI-DEV, CMMI-Services, CMMI-Acquisition, CMMI-Integration, CMMI-People…. yada yada, yada. It’s typical bureaucratic bloat that causes companies to spend precious money and time on impressing hot-shot, non-doer auditors while simultaneously dropping boat anchors on their teams…. instead of creating products. Some contracts require a minimum level of assessment by an external rating agency in order to win the job.
Let’s crank it up a notch and see who else knows “what’s good for everybody“. For your viewing displeasure, I present the quag(mire) map:
Which certification/assessment bureaucratic borgs hold your company hostage by demanding a ransom in return for a favorable assessment?
Distributed Functions, Objects, And Data
During a discussion on LinkedIn.com, the following distributed system communication architectural “styles” came up:
- DF == Distributed Functions
- DO == Distributed Objects
- DD == Distributed Data
I felt the need to draw a picture of them, so here it is:
The DF and DO styles are point-to-point, client-server oriented. Client functions invoke functions and object methods invoke object methods on remotely located servers.
The DD style is many-to-many, publisher-subscriber oriented. A publisher can be considered a sort of server and subscribers can be considered clients. The biggest difference is that instead of being client-triggered, communication is server-triggered in DD systems. When new data is available, it is published out onto the net for all subscribers to consume. The components in a DD system are more loosely coupled than those in DF and DO systems in that publishers don’t need to know anything (no handles or method signatures) about subscribers or vice versa – data is king. Nevertheless, there are applications where each of the three types excel over the other two.
Too Much Pressure
The figure below models an N node, “Enterprise Bus” (EB) connected, software-centric system.
Even though the “shared” EB supplies a raw, theoretical bandwidth of 1 Gbps to its connected user set, contention for frequent but temporary control of the bus among its clients increases as the number of message publisher (pubber) clients increases. Thus, the total effective bandwidth of the system as a whole decreases below the raw 1 Gbps rate as its utilization increases.
In the example, instead of accommodating up to 10, 100 Mbps clients, the increasing “back pressure” exerted by the bus under the duress imposed by multiple, “talky” (you know, wife-like) clients will throttle the per-pubber message send rate to well below 100 Mbps.
I recently found this out the hard way – through time-consuming testing and making sense out of the “unexpected” results I was getting. Bummer.
Humility Follwed By Hubris
In contrast to yesterday’s post on CEO humility, this post about the opposite – CEO (and board of directors) hubris.
In the usatoday.com article, “CEOs reap huge payouts in 2011, corporate filings show“, the following stats are printed:
U.S. workers averaged $46,742 in 2010, up 2.6% from 2009. A June GovernanceMetrics analysis found average compensation among S&P 500 CEOs rose to $12 million in 2010, up 18% from 2009 — and that’s not counting the potential multimillion-dollar value of stock or stock options, which are granted at set prices and provide holders profits as stock values rise.
So, let’s see. The average “Board Of Directors” thinks that the average CEO is worth $12M/$47K = 255 DICs. Oh well. Who am I to judge what “Boards of Direlectors” decide they pay CEOs? Nevertheless, others do pass judgment:
“It’s insane,” says the Value Alliance’s Eleanor Bloxham. “Corporate boards have bought into the idea that they have to pay up for performance. There’ll be more of the same until institutional investors decide CEOs aren’t worth what they’re being paid.”
Alas, I don’t see the day arriving soon where “institutional investors decide CEOs aren’t worth what they’re being paid“. Do you?
Concrete Crown
This is a rare sighting, so ya gotta check it out: The Humility Imperative: CEOs, Keep Your Arrogance in Check. Reformed CEOcaholic Dave Balter starts out his plea with:
This is a message to every entrepreneur, CEO, and leader: Dig a hole, throw your ego into it, and pour concrete on top. Find humility instead. – Dave Balter
Defense Mechanism
As I’ve written before, I love the Vital Smarts guys. In “Confronting Workplace Sarcasm“, Kerry Patterson writes:
I—like most of my close friends—developed keen skills in the use of sarcasm and irony. It was a huge part of my identity. Then, one day, after my wife stumbled awkwardly and I retorted, “Smooth move, did you enjoy the trip?” she responded: “You know what? If you never again use sarcasm—until the day I die—that would be just fine with me. I don’t like it, the kids don’t like it, and there’s no place for it in our home.”
That incident caused Mr. Patterson to pause and reflect on his recurring, habitual behavior. It led to an epiphany and change in behavior:
I learned that it’s actually quite difficult to defend your right to take cheap shots, dole out insults, and cut people down—all in the name of humor. Trust me. You never want to be the defense attorney when sarcasm goes to court. So, maybe I needed to reconsider my stance. Perhaps, getting a laugh at the expense of a coworker, colleague, friend, or loved one isn’t nearly as endearing as I had once thought it was. And so, I said goodbye to that part of me and my wife has been ever grateful.
Hmmm. Without going into details, the above paragraph makes me feel guilty. Thus, as an ego defense mechanism to ease the pain, I’m feelin’ the need to be skeptical that Kerry has actually kicked the habit .
How about you? Do you sense a feeling of guilt and the associated ego-need to rationalize it away? Nah. No way, right?
Cpp, Java, Go, Scala Performance
I recently stumbled upon this interesting paper on programming language performance from Google researcher Robert Hundt : Loop Recognition in C++/Java/Go/Scala. You can read the details if you’d like, but here are the abstract, the conclusions, and a couple of the many performance tables in the report.
Abstract
Conclusions
Runtime Memory Footprint And Performance Tables
Of course, whenever you read anything that’s potentially controversial, consider the sources and their agendas. I am a C++ programmer.
The MFC
In The Management Myth, Matthew Stewart rags about how, despite the proven inapplicability of FOSTMA techniques in the 21st century, “modern” management theory continuously repackages the same old wine (vinegar?) in a new bottle via the Management Fad Cycle (MFC). MBA snake oil salesmen simply use new words to cloak the same worn and tired underlying themes in order to make a buck.
The thing that makes modern management theory so painful to read isn’t usually the dearth of reliable empirical data. It’s that maddening papal infallibility. – Matthew Stewart
Adders, Subtractors, Creators
In a perfect world, every person involved in an org is either a value creator or a value adder. Although there are a handful of hard to find examples of the (almost) perfect org, the landscape is littered with these types of mediocre and poor performing orgs:
Effective And Ineffective
In the 50 year old book, “The Human Side Of Enterprise“, Douglas McGregor lists the attributes of effective groups as follows:
- The atmosphere is informal, comfortable, relaxed.
- There is lots of pertinent discussion and it stays on track.
- The group’s task is well understood and accepted.
- Members listen to each other and have no fear of looking foolish.
- There is disagreement and no conflict avoidance.
- Decisions are made mostly by consensus.
- Criticism is frank, frequent, relatively comfortable.
- Members freely express feelings on problems and group operation.
- Clear assignments are made and accepted.
- The group lead doesn’t dominate and there is no struggle for power.
- The group is self-conscious and periodically reflects on performance.
So, do you think this list is outdated and inapplicable in this day and age? How many effective groups have you had the privilege of participating in?
For grins, let’s look at an inverted version of the list:
- The atmosphere is formal, uncomfortable, tense.
- There is lots of impertinent discussion and it wanders all over the map.
- The group’s task is vague, undefined and thus, unaccepted.
- Members ignore each other and put on a mask of infallibility.
- There is no disagreement and conflicts are avoided.
- Decisions are made by authority
- Criticism is personal and uncomfortable.
- Members cover up and suppress feelings.
- No assignments are made and tasks fall though the cracks – accepted by no one or the ubiquitous “we”.
- The group head dominates and there is much politicking to curry favor.
- The group is unconscious.
Which of these lists feels more familiar to you?













