More about mediocrity
Do you get the impression from my previous column that I’m not a big fan of mediocrity? You’re right.
I’m old enough to remember the days when there were no such things as franchise motels. Your average “motel” was more likely to be a collection of little cottages, much like an RV park of today. You paid your money, you got to sleep in one of the cottages, and the term “quality” was interpreted as, no roaches crawling across your nose. Maid service? Surely you jest.
Then along came the Interstate Highways. And with the highways, this wonderful franchise known as the Holiday Inn. It was a great relief to us travelers, and my family and I used them with gratitude.
Over time, though, other competing motels came along, and as our standards for excellence got more stringent, the Holiday Inns didn’t seem as appealing as before.
Other travelers still love the Holiday Inns, though, and I think I’ve figured out why. Holiday Inn doesn’t pretend to offer luxury.
What they offer is a uniform level of mediocrity. It’s not luxurious, but it’s not bad, either. Staying there, you won’t feel coddled in the lap of luxury, but you won’t find that proverbial roach on your nose, either.
My son used to play youth hockey, and he was very good at it. Each year, the sponsoring YMCA held its annual banquet. Each year, the coaches would nominate outstanding players to be selected for the All-Star team. Each selected kid got a huge trophy and a nice jacket with a big ‘Y’ on it. It was a matter of considerable pride.
One year, the ‘Y” announced that there would be no more all-star awards. Some of the parents, it seems, were complaining. Their son, little Johnny, hadn’t been selected, and it bwoke his widdle heart. So rather than disappointed little Johnny, the Y decided to kill the All-Star program completely, thereby disappointing EVERYBODY.
In our city, we told the Y to get stuffed, formed our own hockey association, and continued right on with the All-Star program. Even so, the pressure from disappointed parents has continued unabated, and my son – now a coach – is continually frustrated by the attitude that excellence doesn’t matter. Hey, the parents argue, it’s just a game. And who cares if we win or lose?
It’s this attitude that has all kids getting “participation trophies,” and school kids getting grades like “acceptable” rather than numeric scores. Or, better yet, no scores at all. If your doctor graduated from Harvard Medical School, do you feel better knowing that he earned a grade of “pass”? Hey, at least he wasn’t stressed, and had better group cohesion. Isn’t that special?
I call this trend “The Glorification of Mediocrity.” Moreover, I detest it, as much when it’s related to software, as when it’s related to hockey or Harvard.The SEI and CMM
By far the most successful efforts to deal with the Software Crisis came from Carnegie Mellon’s Software Engineering Institute (SEI). Over time, SEI developed a method for evaluating the maturity of an organization’s software process. They further developed a classification system, which evolved into the SEI Capability Maturity Model (CMM). The model defines five levels of software maturity, ranging from Level 1 (Initial – you get this for being alive) to Level 5 (Optimizing).
See more about all of this at http://en.wikipedia.org/wiki/Capability_Maturity_Model
At this point, DoD and most other organizations require all contractors to have CMM Level 3 or better. You get an SEI rating by scheduling an evaluation. An SEI evaluation team will come in, ask questions, review the organizations established processes, and interview people from top management down to the individual developers. Based on their findings, you get an SEI rating.Quality revisited
Several years ago, my company was going through the “quality circle” fad. They got so into the idea that they decided to vie for an annual award for corporate emphasis on quality. The management presented a questionnaire to all the project leaders, which included the following question:
“Do you even feel that the quality of your product has ever been comprimized by production schedules or budget limitations?”
A colleague answered, “Of course. It happens every day. Every day, I have to make decisions based on time and budget constraints, and the decisions often impact quality.”
There was a long silence, following which, one of the Vice Presidents patiently explained, “See, John, the problem is that you don’t understand the Ajax definition of quality.”
He went on to explain that, in the Ajax Corporation, quality should extend only to that required by the contract. In other words, the product was a quality product if it passed the customer’s acceptance tests, without getting us disqualified as nonresponsive.
Anything more than that, said the VP, was a waste of company profits.I need a hero
I recently worked for a company called Spectrum Astro, Inc. We made satellites, including the software that went into their flight computers. I couldn’t help but notice that previous software products seemed to have an exceptional record for quality, with no schedule slips or cost overruns.
I asked my boss, “In the history of the company, has their ever been a case of our software failing in orbit?”
He replied, “Not one.”
How do you produce software like that? I can tell you, it’s not by giving pass/fail grades.
I asked another colleague how they had done it. He said, “We had heroes.”
He went on to explain that, while the flight software group had many people with the usual distribution of talents, they also had a handful of heroes; people who combined incredibly good technical skills with hard work, and a willingness to work ridiculous schedules and pull miracles out of the hat, to get the job done on schedule. The teams were small enough so that one hero could make a big difference, in both group attitudes and delivered results.SEI vs Heroes
Shortly after I arrived at Spectrum Astro, we sought to establish a Software Engineering Institute (SEI) rating of Level 3. We got it. As part of the process, folks came in to give us tutorials on how to earn, keep, and improve our rating, and how to follow the CMM guidelines.
The course was great, but I was dismayed to hear the SEI view of heroes. They didn’t like them. At all. The presenter, in fact, had some rather nasty things to say about heroes. This surprised me.
In retrospect, I think I think I understand what they mean by the term, “Hero.” It’s not the same thing I mean, or what my colleague meant. SEI apparently uses the term synonymously with “wizard” or “hacker.” If that’s the case, we agree. I, too, am quick to show wizards to the door. Fortunately, wizards are easy to deal with. They have inordantly high evaluations of themselves, so they like the title, wizard. You ask the prospective hire, “Are you a wizard?” If he says yes, don’t hire him.
But the folks who worked long hours to bring in all those projects on time, on budget, and error free, were the antitheses of wizards. They were highly accomplished, professional and experienced engineers, who knew what had to be done to meet their commitments, and did it. They were, in fact, master craftsmen.
I’m concerned that SEI’s attitude concerning heroes is just another example of the Glorification of Mediocrity.
Is software quality not something to be desired? Are we willing to settle for mediocrity, just to get the right evaluation or get a system to completion on schedule? Maybe so, but I still find it depressing.
But I think that you don’t get superior quality from mediocre people following mediocre processes. You’re going to need creative, inventive, and capable people, willing to go that extra distance to achieve excellence. You’re going to need artisans. You’re going to need heroes.
(Jack Crenshaw is a systems engineer and the author of Math Toolkit for Real-Time Programming. He holds a PhD in physics from Auburn University. E-mail him at firstname.lastname@example.org. For more information about Jack click here)