<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.3/uma.ecore" epf:version="1.0.0" xmi:id="-nGaswirSOYturOoUWwGdRw" name="product_quality,3.712584012051524E-306" guid="-nGaswirSOYturOoUWwGdRw" changeDate="2006-11-10T10:10:29.938-0800" version="1.0.0">
  <mainDescription>&lt;h3&gt;
    &lt;a id=&quot;Introduction&quot; name=&quot;Introduction&quot;&gt;Introduction&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    If you're serious about producing an excellent product, you face two problems:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        How do you know when the product is good enough?
    &lt;/li&gt;
    &lt;li&gt;
        If the product is not yet good enough, how do you assure that the stakeholders involved know that?
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    The answer to the first question lets you release the product. The answer to the second question helps you avoid
    releasing a bad product.
&lt;/p&gt;
&lt;p&gt;
    You might think: &quot;I don't want to ship a merely good enough product; I want to ship a &lt;i&gt;great&lt;/i&gt; product!&quot; Let's
    explore that. What happens when you tell your coworkers, managers, or investors that you have high quality standards
    and intend to ship a great product? If it's early in the project cycle, they probably nod and smile. Everyone likes
    quality. However, if it's late in the project cycle, you're under a lot of pressure to complete the project. Creating a
    great product might require that you perform extensive testing, fix many problems (even small ones), add features, or
    even scrap and rewrite a large part of the code. You will also have to resolve disputes over different visions of good
    quality. Greatness is hard work. Perfection is even harder! Eventually, the people who control the project will come to
    you and say something like: &quot;Perfection would be nice, but we have to be practical. We're running a business. Quality
    is good, but not quality &lt;i&gt;at any cost&lt;/i&gt;. As you know, all software has bugs.&quot;
&lt;/p&gt;
&lt;p&gt;
    Greatness can be a motivating goal. It appeals to the pride you have in your work. But there are problems with using
    what amounts to &quot;if quality is good, more quality must be better&quot; to justify the pursuit of excellence. For one thing,
    making such an argument can portray you as a quality fanatic, rather than a balanced thinker. For another thing, it
    ignores the cost factor. A BMW is a nice car, but it costs a lot more than a Saturn. A Saturn may not be the ultimate
    driving experience, but it's nice for the money. In leaving out cost, the &lt;i&gt;&lt;b&gt;more is better&lt;/b&gt;&lt;/i&gt; argument also
    ignores diminishing returns. The better your product, the harder it gets to justify further improvement. While you
    labor to gold-plate one aspect of a product, out of necessity you must ignore other aspects of the product or even the
    potential opportunities presented by another project. The business has to make choices every day about the best use of
    its resources. There are factors other than quality that must be considered.
&lt;/p&gt;
&lt;p&gt;
    The &lt;i&gt;&lt;b&gt;good enough quality&lt;/b&gt;&lt;/i&gt; concept (GEQ) is, paradoxically, a more effective argument than &lt;i&gt;&lt;b&gt;more is
    better&lt;/b&gt;&lt;/i&gt;, because it provides a target that is either achievable or not achievable, in which case it becomes a de
    facto argument for canceling or rechartering the project.
&lt;/p&gt;
&lt;h3&gt;
    &lt;a id=&quot;GEQParadigms&quot; name=&quot;GEQParadigms&quot;&gt;Paradigms of Good Enough&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    Most businesses practice some form of good enough reasoning about their products. The only ones that don't are those
    who believe they have achieved perfection, because they lack the imagination and skill to see how their products might
    be improved.
&lt;/p&gt;
&lt;p&gt;
    Here are some models of &lt;i&gt;&lt;b&gt;good enough&lt;/b&gt;&lt;/i&gt; that have been tried. Some of them are more effective than others,
    depending on the situation:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        &lt;b&gt;Not too Bad&lt;/b&gt; &lt;i&gt;(&quot;we're not dead yet&quot;) -&lt;/i&gt; Our quality only has to be good enough so we can continue to
        stay in business. Make it good enough so that we aren't successfully sued.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Positive Infallibility&lt;/b&gt; &lt;i&gt;(&quot;anything we do is good&quot;) -&lt;/i&gt; Our organization is the best in the world.
        Because we're so good, anything we do is automatically good. Think about success. Don't think about failure because
        &quot;negative&quot; thinking makes for poor quality.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Righteous Exhaustion&lt;/b&gt; &lt;i&gt;(&quot;perfection or bust&quot;) -&lt;/i&gt; No product is good enough; it's effort that counts. And
        only our complete exhaustion will be a good enough level of effort. Business issues are not our concern. We will do
        everything we possibly can to make it perfect. Since we'll never be finished improving, someone will have to come
        in and pry it from our fingers if they want it. Then they will bear the blame for any quality problems, not
        us.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Customer is Always Right&lt;/b&gt; &lt;i&gt;(&quot;customers seem to like it&quot;) -&lt;/i&gt; If customers like it, it must be good
        enough. Of course, you can't please everybody all the time. And if a current or potential customer doesn't like the
        product, it's up to them to let us know. We can't read their minds.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Defined Process&lt;/b&gt; &lt;i&gt;(&quot;we follow a Good Process&quot;) -&lt;/i&gt; Quality is the result of the process we use to build
        the product. We have defined our process and we think it's a good process. Therefore, as long as we follow the
        process, a good enough product will inevitably result.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Static Requirements&lt;/b&gt; &lt;i&gt;(&quot;we satisfy the Requirements&quot;) -&lt;/i&gt; We have defined quality in terms of objective,
        quantifiable, noncontroversial goals. If we meet those goals, we have a good enough product, no matter what other
        subjective, non-quantifiable, controversial goals might be suggested.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Accountability&lt;/b&gt; &lt;i&gt;(&quot;we fulfill our promises&quot;) -&lt;/i&gt; Quality is defined by contract. We promise to do certain
        things and achieve certain goals. If we fulfill our contract, that's good enough.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Advocacy&lt;/b&gt; &lt;i&gt;(&quot;we make every reasonable effort&quot;) -&lt;/i&gt; We advocate excellence. Throughout the project, we
        look for ways to prevent problems, and to find and fix the ones we couldn't prevent. If we work faithfully toward
        excellence, that will be good enough.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;Dynamic Tradeoff&lt;/b&gt; &lt;i&gt;(&quot;we weigh many factors&quot;) -&lt;/i&gt; With respect to our mission and the situation at hand, a
        product is good enough when it has sufficient benefits, no critical problems, its benefits sufficiently outweigh
        its non-critical problems, and it would cause more harm than good to continue improving it.&lt;br /&gt;
        &lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
    &lt;a id=&quot;IsHighQualityExpensive&quot; name=&quot;IsHighQualityExpensive&quot;&gt;Is High Quality Necessarily More Expensive?&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    Depending on a lot of factors, such as process, skill, technology, tools, environment, and culture, you may be able to
    produce a much higher quality product for the same cost. A more testable and maintainable product will cost less to
    improve and other costs are specifically associated with poor quality, such as support costs and costs to the customer.
&lt;/p&gt;
&lt;p&gt;
    The cost of quality is a complex issue and it's difficult to make broad generalizations. However, you can say with
    certainty that you can always spend more time on much better tests, much more error handling, and more fixing or
    rewriting of every part of the product. No matter how good you are, that costs something. And if you can't think of
    more improvements to make, it's more likely that you've reached the upper limit of your imagination, not of quality.
&lt;/p&gt;
&lt;p&gt;
    In the software industry GEQ is inspired more as a response to one particular cost than any other: the cost of not
    releasing the product &lt;i&gt;soon enough&lt;/i&gt;. The specter of the market window, or the external deadline, imposes penalties
    upon us if we can't meet the challenge. That's why the ends of projects are so often characterized by frenzied triage.
    If you want to know what an organization really believes is good enough, and how well prepared they are for it, witness
    the last three days of any six-month software project. See what happens when a new problem is reported on the last day.
&lt;/p&gt;
&lt;h3&gt;
    &lt;a id=&quot;Quantification&quot; name=&quot;Quantification&quot;&gt;Wouldn't Quantification Help?&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    It can be tempting to reduce quality to a number, then set a numerical threshold that represents good enough quality.
    This is a problem, because you can only measure factors that &lt;i&gt;relate&lt;/i&gt; to quality. You can't measure quality
    itself. This is partly because the word &quot;quality&quot; is just a label for a relationship between a person and a thing.
    &quot;This product is high in quality&quot; is just another way of saying &quot;Somebody values this product&quot;. It's a statement about
    the product, but also a statement about people and the surrounding context. Even if the product stays the same, people
    and situations change, so there can be no single, static, &lt;i&gt;true&lt;/i&gt; measure of quality.
&lt;/p&gt;
&lt;p&gt;
    There are many measures you might use to get a sense of quality, even if you can't measure it completely and
    objectively. Even so, the question of what quality is good enough requires sophisticated judgment. You can't escape
    from the fact that, in the end, people have to think it through and make a judgment. For a simple product, that
    judgment might be easy. For a complex, high-stakes product, it's very difficult.
&lt;/p&gt;
&lt;h3&gt;
    &lt;a id=&quot;FurtherInfo&quot; name=&quot;FurtherInfo&quot;&gt;Further Information&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    To assist you with evaluating product quality, the following types of information are available for most of the
    artifacts included in the Unified Process:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Artifact Guidelines and Checkpoints: information on how to develop, evaluate, and use the artifact.
    &lt;/li&gt;
    &lt;li&gt;
        Templates: &quot;models&quot; or prototypes of the artifact, providing structure and guidance for content.&lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;</mainDescription>
</org.eclipse.epf.uma:ContentDescription>
