Thursday, September 29, 2011

Thinking Software Quality

Some Definitions:
  1. "Software Quality is the fitness for use of the software product" [1]
  2. Kitchenham states quality is "Hard to define, impossible to measure, easy to recognize" [2].
  3. Gilles states, "Quality is generally transparent when present, but easily recognized in its absence" [3].
While quality in theory can be defined, in practice and use, an absolute definition is elusive. This is part of the knowledge that needs to be captured - how to apply these abstract SQA concepts to real projects. Here are some lessons:
  1. Project Managers and Software Developers need to understand what "Software Quality Assurance" is and how their project can benefit by its application. 
  2. Software Quality Assurance implementation is a balancing activity that must be tailored as project appropriate. 
  3. Software Quality Assurance must evaluate the process as well as the products. 
  4. There must be a Software Assurance Plan.
  5. Software Quality Assurance must span the entire Software Development Life Cycle.
  6. Requirements, the birthplace of successful projects.
  7. Software Quality Assurance does NOT Equal Testing.
  8. Metrics are a necessity.
  9. Safety and Reliability are critical aspects of SQA.
  10. Independent Verification and Validation (IV&V) is an important tool within SQA.
  11. Hardware Does NOT Equal Software!
  12. Risk Management is NOT Optional.

References
[1] Schulmeyer, G. Gordon and McManus, James I., Handbook of Software Quality Assurance, 3rd Edition, Prentice Hall PRT, 1998
[2] Kitchenham, Barbara, Pfleeger, Shari Lawrence, "Software Quality: The Elusive Target", IEEE Software, Vol 13, No 1 (January 1996) 12-21
[3] Gillies, Alan C., Software Quality, Theory and Management, International Thomson Computer Press, 1997

No comments:

Post a Comment