Вы находитесь на странице: 1из 3

.

Copyright (c) 1997, IEEE Computer Society

Realities
Author Contact: james@satisfice.com
Binary Critic
Software

Microsoft do not deliberately ship soft-

Good Enough ware that contains bugs.”


I believe this reveals a poor under-
standing of what I consider to be the
Good Enough approach. And how do I

Quality: Beyond know what Good Enough Software is?


Because Good Enough Software—as
I define it—is just a refinement of what I
experienced virtually every day for 12

the Buzzword years as a developer and test manager in


major commercial software companies.
My model is not based on some armchair
hypothesis—it describes my real experi-
ence. Furthermore, my company, ST Labs,
has run testing projects for hundreds of
James Bach, ST Labs Inc.
companies, and we find that it is routine
for our clients to ship with known bugs.
Cem Kaner, in Testing Computer
kicked off this department in Feb- Enough Software,” American Program- Software (International Thomson Press,

I ruary by examining the gap between


what we say and what we do in soft-
ware projects (“The Hard Road
From Methods to Practice,” Feb.
1997, pp. 129-130). In any given project,
our publicly declared methodologies
often bear little resemblance to our
mer, Oct. 1995) and spoken about it here
and there. Ed Yourdon has written about
it, too, mostly in reference to my work
and to his experiences interviewing
developers at Microsoft. Although the
basic ideas can be found in the work of
Gerald Weinberg, Robert Glass, Fred
1993)—standard issue to Microsoft’s
testers—also refers to bug fix deferral as
a routine practice. I know this is true at
Microsoft because my company runs a

actual practices. In this article, I’d like to Brooks, and many others, I believe it was Take it from me, Microsoft
examine one actual practice that is finally Yourdon who first elevated the notion begins every project with
emerging as a describable method: Good from plain old English phrase to full- the certain knowledge that
Enough Software. fledged technical buzzword.
they will choose to ship
A few months ago, at a software devel- A new buzzword! Like a new island
opment conference, I heard Larry rising out of the Pacific, another long-
with known bugs.
Constantine declare that he doesn’t neglected bit of software reality is burst-
believe in the idea of good enough soft- ing into the canon of software eng-
ware quality. Constantine’s disdain was ineering methodology. But as with any dedicated test lab there. I speak and teach
so clear, I asked him why he even both- volcanic event, this new idea is subject to there on a regular basis. My brother is
ered to dignify the idea with a critique. chaos and confusion. even a test lead there. Take it from me,
His reply: “Because everybody’s talking Microsoft begins every project with the
about it.” CHAOS AND CONFUSION certain knowledge that they will choose
I too hear talk about Good Enough, For example, Capers Jones devoted to ship with known bugs. This strategy
but it comes almost exclusively from five pages of his recent book (Software works for Microsoft because it knows
people on software projects, rather than Quality: Analysis and Guidelines for how to ship with the right bugs.
from people who write or consult about Success, International Thomson Press,
software processes. It’s hard to find much 1993) to debunking what he called the GOOD ENOUGH AS A PARADIGM
of anything about Good Enough in soft- “good enough quality fallacy.” As Jones Confusion about Good Enough
ware engineering literature, or at the con- put it, “from the observed fact that most Software is understandable and forgive-
ferences. There was an article in the commercial software contains bugs at able, since no one has published an actual
Communications of the ACM a few delivery, the ‘good enough’ enthusiasts detailed description of what Good
years ago (W. Robert Collins et al., have formed the hypothesis that leaving Enough means. Jones seems to define it
“How Good Is Good Enough?: An bugs is a deliberate and even clever strat- as the practice of deliberately leaving
Ethical Analysis of Software Constru- egy on the part of commercial software bugs in the code so as to shorten the
ction and Use,” Jan. 1994, pp. 81-91). houses, which might advantageously be schedule. I’ve heard other people define it
I’ve written one obscure article on the imitated by other software developers.” as providing the minimum quality that
subject (“The Challenge of Good He also stated, “Companies such as you can get away with.

96 Computer
.

A Framework for Good Enough Quality 3. Assess product quality.


Taken together, these four GEQ factors and six GEQ perspec- • Overall quality. With respect to the GEQ perspective, do
tives comprise a robust set of reminders that can help frame a con- benefits appear to outweigh problems?
versation or make a convincing case about shipping a product, • Margin of safety/excellence. By how much do we need
improving it, or implementing some better practice. For instance, or want benefits to outweigh problems?
when someone tells me that “good enough is not good enough,”
I remember the stakeholder and critical purpose perspectives and 4. Assess the logistics of improving the product (or holding out for
translate that apparently paradoxical statement into something I something better).
can question, such as “good enough for you is not good enough • Strategies. What strategies can we use to improve the
for me” or “good enough to survive is not good enough to suc- product?
ceed.” Then the dialogue becomes one of examining whose val- • Capabilities. How able are we to implement those strate-
ues matter or what purpose we are really trying to achieve. gies? Do we know how?
• Costs. How much cost or trouble will improvement
GEQ Factors entail? Is that the best use of resources?
This four-part process expands upon the GEQ definition. It’s • Schedule. Can we ship now and improve later? Can we
not a rigorous formula, by any means. These factors are achieve improvement in an acceptable time frame?
designed to help busy, stressed-out software people remember • Benefits. How specifically will it improve? Are there any
what to think about when weighing product quality. side benefits to improving it (for example, better morale)?
• Problems. How might improvement backfire (for exam-
1. Assess the benefits of the product. ple, introduce bugs, hurt morale, starve other projects)?
• Identification. What are the known benefits or potential
benefits for stakeholders of the product? GEQ Perspectives
• Likelihood. Assuming the product works as designed, The GEQ factors just listed are necessary but not sufficient.
how likely are stakeholders to realize each benefit? In order to perform a responsible assessment, you must also
• Impact. How desirable is each benefit to stakeholders? examine each of the factors from six vital perspectives.
• Individual criticality. Which benefits, all by themselves, 1. Stakeholders. Whose opinion about quality matters? (For
are completely indispensable? example, project team, customers, trade press, courts of
• Overall benefit. Taken as a whole, and assuming no prob- law.)
lems, are there sufficient benefits for stakeholders? 2. Critical purpose. What do we have to achieve? (Is it imme-
diate survival, profitability, market share, market growth,
2. Assess the problems of the product. customer satisfaction?)
• Identification. What are the problems or potential prob- 3. Time frame. What is the time-sensitivity of quality per-
lems for stakeholders of the product? ception? (Is it immediate, near-term, long-term, after crit-
• Likelihood. How likely are stakeholders to experience ical events?)
each problem? 4. Alternatives. How does this product compare to alter-
• Impact. How damaging is each problem to stakeholders? natives, such as competing products, services, or solu-
Are there workarounds? tions?
• Individual criticality. Which problems, all by themselves, 5. Consequences of failure. What if quality is a bit worse
are completely unacceptable? than good enough? Do we need a contingency plan?
• Overall problems. How do all the problems add up? Are 6. Quality of assessment. How confident are we in our
there too many noncritical problems? assessment? Is it good enough?

One reason why Good Enough is not larger context of the Good Enough par- and vital components of software
better described may be that it is so much adigm. projects.
a part of our experience that it seems too Here are some of the basic assump- • Everything has a cost, and what we
obvious to mention. Only when con- tions that I believe are part of the Good want always exceeds what we can
trasted with idealistic, normative mod- Enough paradigm: afford.
els of software engineering does Good • Quality is ultimately situational and
Enough stand out as a separate para- • We are obliged to cope with a world subjective.
digm—a different pattern of assumptions full of complexity, unknowns, lim- • To achieve excellence in something
about the way the world works. itations, mistakes, and general as complex as software, we have to
Methods for achieving Good Enough imperfection. solve a lot of difficult problems, make
quality are of interest mainly within the • People are by far the most variable a lot of trade-offs, and resolve con-

August 1997 97
.

tradictory values. Excellence does not perhaps good, cannot be good enough. Is there anything new with the Good
come easily or mechanically. The first two seem fairly obvious, but Enough approach? Not really. Maybe
• Software engineering methods are use- note that they are not exact opposites. just its name. Henry Petroski has been
ful to the extent that they are designed The complete absence of problems can- writing about the role of failure in suc-
with these assumptions in mind. not guarantee infinite benefits, nor can cessful design for years. Herbert Simon
infinite benefits guarantee the absence of coined the term “satisficing” in his
Bear in mind that the real essence of problems. Benefits and problems do off- book, The Sciences of the Artificial
Good Enough lies in the minds of practi- set each other, but it’s important to con- (MIT Press, 1992). Two excellent books
tioners, not in any practice. The paradigm sider the product from both perspectives. on Good Enough software engineering
is one of learning on the job, learning from The third proposition reminds us that (although neither book bills itself as
failure, coping with complexity, and cop- benefits must not merely outweigh prob- such) are Gerald Weinberg’s Rethinking
ing with humanity. It encourages healthy lems, they must do so to a sufficient Systems Analysis and Design (Dorset
skepticism by building in the idea that degree. It also reminds us that even in the House, 1988), and Robert Glass’ Soft-
benefits always come with problems. Our absence of any individual critical prob- ware Creativity (Prentice Hall, 1995). A
task is not to blindly eliminate all prob- lem, there may be a pattern of noncriti- few years ago, I couldn’t find any books
lems, but to understand the problems and cal problems that essentially negate the about software risk management; now
benefits of a situation well enough to elim- benefits of the product. there are more than a dozen in print.
inate (or prevent) the right problems and The fourth proposition introduces the
also deliver the right benefits. important matter of logistics and side
As a consultant, I see the Good effects. If high quality is too expensive to he big new force that is propelling
Enough approach mostly as a way to
drive ongoing improvement, whereby
we approach excellence by progressively
achieve, or if achieving it would cause
other unacceptable problems, then we
either must accept lower quality as being
T the Good Enough idea is the explo-
sion of market-driven software.
With a passion roughly proportional to
achieving, challenging, and raising our good enough or we must accept that the price of Microsoft stock, companies
standard of Good Enough, as opposed a good enough product is beyond our are looking for the shortest path to bet-
to driving toward some abstract, apoc- reach. ter software, faster, and cheaper. They are
ryphal metric like six sigma, or a defect willing to take risks, and they have little
removal ratio of 99 percent, or a CMM patience for the traditional moralistic
level of 4. It’s also useful as a Rosetta Good Enough has arguments in favor of so-called good
stone that helps quality specialists dis- practices.
nothing to do with
cuss quality with people in other spe- Much of the traditional lore of soft-
cialties.
mediocrity. It has to do ware project management seems irrele-
with rational choices, as vant or stilted when applied to market-
GOOD ENOUGH QUALITY opposed to compulsive driven projects.
ANALYSIS FRAMEWORK behavior. It’s time that we developed approaches
There are a few of us in the industry and methodologies that apply to the
who are quietly toiling away to develop whole craft, not just to space missions,
and teach this as a discipline. Here I pro- These propositions can be expanded medical devices, or academic experiments.
pose a framework for evaluating Good into a framework of GEQ factors that Good Enough is a model that encom-
Enough Quality (GEQ). Let’s start with support a process of structured reason- passes high-reliability products as well as
a definition of what’s GEQ. Here’s my ing and dialog about quality, as summa- high-entertainment products. Whether
whack at it. To claim that any given thing rized in the sidebar “A Framework for you call the idea Good Enough, or choose
is Good Enough is to agree with all of the Good Enough Quality.” another buzzword like economical, prag-
following propositions: matic, or utilitarian, the basic idea remains
RATIONAL, NOT COMPULSIVE the same: Our behavior should be guided
• It has sufficient benefits. I hope the framework makes it clear by reason, not compulsion.
• It has no critical problems. that Good Enough has nothing to do Beyond the notion of “best practices”
• The benefits sufficiently outweigh with mediocrity. It has to do with ratio- is a more fundamental idea: best think-
the problems. nal choices, as opposed to compulsive ing. As the Good Enough idea continues
• In the present situation, and all behavior. If something really is good to emerge, the quality of our thinking,
things considered, further improve- enough, in terms of this framework, then rather than our conformance to formal-
ment would be more harmful than further improvement means making an ities, will become the issue. Formalities,
helpful. investment that has an inadequate and the authority behind them, will be
return. When we find ourselves in that reexamined. No wonder so many au-
Each point is critical. If any one of them situation, we should look for hidden thorities consider Good Enough to be a
is not satisfied, then the product, although compulsions. dangerous idea. ❖

98 Computer

Вам также может понравиться