520 likes | 951 Views
SMU CSE 8314 Software Measurement and Quality Engineering. Module 01 Overview of Software Quality Engineering. Why is There So Much Ineffective Product Development?. Organizations focus on cost or schedule ... … instead of looking at the big picture
E N D
SMU CSE 8314 Software Measurement and Quality Engineering Module 01 Overview of Software Quality Engineering
Why is There So Much Ineffective Product Development? • Organizations focus on cost or schedule ... … instead of looking at the big picture • Organizations don’t know how to produce high quality products • Organizations fail to see the benefits of using quality engineering techniques
Pick Any Two Productivity Cycle Time Quality The “Zero-sum Game” Trap
The Secret to Effective Product Development • Make the Process Efficient • Eliminate waste • Eliminate mistakes • This makes things faster, less costly, and higher in quality Avoid the mistake of seeing the problem as a zero sum game , such as: “to cut cost or save time you must reduce quality”; “to improve quality you must make the product more expensive.”
Effective Quality Engineering is Fundamental to Productivity and Cycle Time Improvement Effective Product Development Productivity Cycle Time Quality
Total Quality Management Total Cycle Time Productivity Enhancement Six Sigma Any Banner Will Do
Concepts of Quality Webster defines quality as: 1) “that which makes something what it is" 2) “the degree of excellence” But is this what we mean for software? 1) “our software is what it is - that makes it a quality product" 2) “the more perfect the software the higher the quality”
“That Which Makes it What it Is” • e.g. Purity of tone is a quality of music • But perhaps not in certain musical styles • What defines the quality of “hard rock” music? Is quality in the ear of the beholder? Is there a universally accepted characteristic of musical quality?
“Degree of Excellence” • Which has higher quality: a Ferrari or a Toyota Corolla ??? • Which has more prestige? • Which costs less and leaves money for other expenses? • Which is more reliable? • Which weighs more?
Concepts of Quality for Products “Quality is conformance to requirements” Crosby “Quality is fitness for intended use” Juran “Quality is value to someone” Weinberg
“Quality isConformance to Requirements” • If testable requirements can be established, then it is possible to decide whether the product meets the criteria • Thus you can avoid disputes and have workable contractual relationships HOWEVER ...
Issues with “Conformance to Requirements” - I • Who establishes the requirements? • Sponsor - The one who pays for the product • End User - The one who will use the product • Sales or Marketing - The one who will sell the product • Engineering - The ones who will design and build it
Issues with “Conformance to Requirements” - II • Are the requirements right? • consistent • complete • correct • Who determines whether the requirements are right? • What if you discover a problem later on?
Issues with “Conformance to Requirements” - III • What about implicit vs. explicit requirements? • E.g. coffee should be hot and flavorful • Implicit requirement: not poisonous • Furthermore, requirements change during the development process • Who makes and who controls the change? • Who pays for the consequences of change?
“Quality is Fitness for Intended Use” • This definition is based on a fundamental concept of law - that a product should be fit for the use that it is intended for. • This definition accommodates the fact that we may not be able to fully define the requirements. HOWEVER ...
Issues with “Fitness for Intended Use” - I • Who defines fitness? • Consider a TV set -- which fitness characteristics are not understood by • Typical User • Engineer • Sales Personnel • Consider a software program -- which fitness characteristics are not understood by the typical software developer?
Issues with “Fitness for Intended Use” - II • Different users have different definitions of fitness • Ease of use for novices vs control of fine details for experts • VS. ease of maintenance for support staff • Uses change as users grow in experience • Too many “ease of use” and “automatic” features may frustrate an expert
Issues with “Fitness for Intended Use” - III • The “pleasant surprise” concept • User gets more than he or she expected • “They really knew what they were doing” There is always a balance between the engineer knowing better than the customer and the customer knowing better than the engineer
“Quality isValue to Someone” • This definition incorporates the idea that quality is relative • And it places increased emphasis on understanding what quality means to the intended user of the software HOWEVER ...
Issues with “Value to Someone” • Whose opinion counts? • May need to weigh different opinions • May need to separate explicit from implicit views • Logic vs Emotion • “Glitz” v. “Substance” • What is it Worth? • Space Shuttle -- 0 defects • Video Game -- good user interface
Definitions of Software Quality • IEEE: The degree to which the software possesses a desired combination of attributes • Crosby: The degree to which a customer perceives that software meets composite expectations Note that both definitions imply multiple expectations
Summary of Quality Definition Issues • Define quality • You must define it to know if you have it • … and to engineer it into your product • Quality has multiple elements • It reflects a multitude of expectations • Quality is relative • Quality is in the eye of the customer • Quality encompasses fitness, value, and other attributes
Question How does your organization define quality?
Quality Engineering Quality Assurance Quality Control 1916 1950’s today future The Evolution of Quality See Berger, Chapter 1, for further background
Quality Control Preventing unacceptable products from being released to the customer • Emphasis is on finding defects and fixing them after the fact. “A regulatory process through which we measure actual quality performance, compare with standards, and act on differences.” Juran
Fail Pass Development QC Inspection Requirements Quality Control Goal: Keep Quality at an Acceptable Level by Rejecting Unacceptable Products Standards of Quality
My Brother Headrest Story - Part I:Independence Why go to college? I’ll get a job at an automobile assembly plant!
Headrest Story - Part II:Employment I found a quality control job on the assembly line ... finding defective headrests.
My Brother Headrest Story - Part III:Excitement The highlight of my day!!! They switched from red to blue! Rejects
Headrest Story - Part IV: Quality Control Production rate is too low! You’re too picky! QC Manager These are substandard! Pay more attention to the criteria! Production Manager
Headrest Story - Part V:“Discussion” Discussion (as used in automobile assembly lines): Verbal communication characterized by extensive use of profanity and threats of bodily harm. You’re a %#*@ *#&$% You!
Headrest Story - Part VI:The Following Fall My Brother
Problems with Quality Control • Does not reduce the number of defects • Does not improve the process • Does not result in better products • Does not motivate improvement • Results in adversarial relationships
Quality Assurance Assuring Product Quality: “Building Quality In” • Providing evidence that the quality function is being performed adequately Juran • Quality assessment and measurement Fisher/Baker
Quality Assurance “A planned and systematic pattern of all actions necessary to provide adequate confidence that the product conforms to established technical requirements” IEEE (George Tice)
Software Quality Assurance A system of methods and procedures used to assure that the software product meets its requirements. Don Riefer • These methods and procedures include: • Planning, measuring and monitoring of all work performed by software engineers, software testers, etc.
Process and Design Standards Fail Pass Development QC Inspection Requirements Standards of Quality Quality Assurance Looks at the Entire Process
Quality Assurance is More Effective than Quality Control ... ... because the emphasis moves to the development process • You attempt to fix problems before and duringthe development process • You improve the processand therefore reduce the number of defects in a lasting manner
But ... • Quality improvement is still separate from other process improvement and software development activities • Adversarial relationships are still there • quality assurance vs. software developers • validating and testing vs. design and coding • Motivation to improve is inconsistent • It costs more to have people monitoring people
Quality Engineering • Similar to quality assurance, but the responsibility shifts to everyone on the team. • Quality is built into the development process. • Requirements, Design, Coding, Testing, etc. • This is a very professional and responsible approach to software development.
The Philosophical Change in QE • Problems result in process changes, not punishment of people • Finding errors is good -- it keeps them from leaking through to the customer • Everyone appreciates that a competitive process is the way to remain a competitor • Measurements are used so that decisions are based on fact (in addition to intuition)
Quality Engineering Requires a Cultural Change • Pride in quality in addition to pride in product features or performance • Professionalism rather than fear of criticism • Overcoming the fear of metrics • Seeing software development as much more than programming and design “We” rather than “They”
Quality Engineering Approach • Build quality into the product as part of the development process • Measure quality • Understand quality • Improve quality • Engineer the wholeprocessfor improvements in quality, productivity and cycle time (“Process Engineering”) • A defined process is a must !!
Elements of Quality Engineering • Understand process and its role • Define value and quality - and focus on adding both of these to the product • Manage process performance through programs such as six-sigma or zero defects or statistical process control • Analyze the cost of quality • Define and manage software reliability
Benefits of the Quality Engineering Approach • Less adversarial • Motivation and information to improve • Flexibility to change the process in response to a problem • you understand the problem and its cause • you understand the consequences of a change in the process • Knowledge is the foundation of successful quality engineering
Summary • Product development is not a “zero sum game” • Quality must be defined in terms of things that matter to customers • Quality engineering focuses on the whole process and involves the whole project team
References • Berger, R. W., et. Al., The Certified Quality Engineer, ASQ Quality Press, 2006 (chapter 1) • Crosby, Philip B. Quality is Free, New York, McGraw-Hill, 1979. • Deming, W. Edwards, Out of the Crisis, MIT Press, 1986, ISBN: 0911379010 • Juran, J. M., Juran on Leadership for Quality: An Executive Handbook, The Free Press, 1989. • Juran, J. M. and Frank M. Gryna, Quality Planning and Analysis, McGraw-Hill. 1980.