Page 229 -
P. 229

200           PART TWO  MANAGING SOFTWARE PROJECTS


                       There is little question that this definition could be modified or extended. In fact, a
                       definitive definition of software quality could be debated endlessly. For the purposes
                       of this book, the definition serves to emphasize three important points:

                        1.  Software requirements are the foundation from which quality is measured.
                            Lack of conformance to requirements is lack of quality.
                        2.  Specified standards define a set of development criteria that guide the man-
                            ner in which software is engineered. If the criteria are not followed, lack of
                            quality will almost surely result.
                        3.  A set of implicit requirements often goes unmentioned (e.g., the desire for
                            ease of use and good maintainability). If software conforms to its explicit
                            requirements but fails to meet implicit requirements, software quality is sus-
                            pect.


                       8.3.1  Background Issues
                       Quality assurance is an essential activity for any business that produces products to
                       be used by others. Prior to the twentieth century, quality assurance was the sole
                       responsibility of the craftsperson who built a product. The first formal quality assur-
         “We made too many  ance and control function was introduced at Bell Labs in 1916 and spread rapidly
          wrong mistakes.”
                       throughout the manufacturing world. During the 1940s, more formal approaches to
          Yogi Berra
                       quality control were suggested. These relied on measurement and continuous process
                       improvement as key elements of quality management.
                          Today, every company has mechanisms to ensure quality in its products. In fact,
                       explicit statements of a company's concern for quality have become a marketing ploy
                       during the past few decades.
                          The history of quality assurance in software development parallels the history of
                       quality in hardware manufacturing. During the early days of computing (1950s and
         WebRef        1960s), quality was the sole responsibility of the programmer. Standards for quality
         An in-depth tutorial and  assurance for software were introduced in military contract software development
         wide-ranging resources for  during the 1970s and have spread rapidly into software development in the com-
         quality management can
         be found at   mercial world [IEE94]. Extending the definition presented earlier, software quality
         www.management.  assurance is a "planned and systematic pattern of actions" [SCH98] that are required
         gov.
                       to ensure high quality in software. The scope of quality assurance responsibility might
                       best be characterized by paraphrasing a once-popular automobile commercial: "Qual-
                       ity Is Job #1." The implication for software is that many different constituencies have
                       software quality assurance responsibility—software engineers, project managers,
                       customers, salespeople, and the individuals who serve within an SQA group.
                          The SQA group serves as the customer's in-house representative. That is, the peo-
                       ple who perform SQA must look at the software from the customer's point of view.
                       Does the software adequately meet the quality factors noted in Chapter 19? Has soft-
   224   225   226   227   228   229   230   231   232   233   234