Murine, Gerald E. (1989, ASQC) Metriqs, Inc., Carlsbad, CA
Controlling the cost of software development is a problem of long standing in the industrial community. Early attempts fell short when the "language" of this new art (software) lacked sufficient translation to the language of the typical hardware-oriented program manager. In addition to the emergence of software as a major ingredient in system development, software itself continued to undergo a seemingly endless evolutionary process which was soon accompanied by the accelerated development of the microprocessor. Thus it was both convenient and necessary to create software as a "black box" system segment, assigned to a new breed of workers called "programmers" (not necessarily engineers) and then to apply traditional hardware concepts to the end product. Control of the software developmental process was ignored at first by most program managers not familiar with the new discipline. The fundamental existing financial controls of comparing actual costs with budgeted costs and adjusting for variance remained sound at the highest levels; however, concern for the uncertainty of accurate software cost projections grew at the department level - particularly with systems engineering and test departments. Quality accounting of software did not exist as a separate cost item but was embedded into the function of each individual department and, with perhaps the exception of testing, there was no special accounting procedure for quality's contributions to the final product.
During the early 1950's, quality costs emerged as a contributing factor to cost reduction for a new generation of complex computer driven products. These products demanded higher precision and greater reliability - two conditions uniquely satisfied by the inclusion of the electronic computer as an event sequencer. At the same time, advances in microprocessor development relative to digital logic, memory, and speed supplemented and then soon replaced the analog computer, bringing with it the new art form called "software". Thus the concepts of defining and measuring both quality costs and software system impact surfaced at the same time - each taking very separate paths of development. While the isolation of quality costs as a separate subject was motivated by the needs for identifying new measures of cost control and means of cost reduction, the emphasis on software development was redirected to the computer which could be assigned to the established attributes of the hardware component. The software in the digital mode therefore took on the similar characteristics as the wiring of an analog device. Techniques developed for quality cost accountability could then be easily accessed through this new hardware element - the computer. The quality of software within the computer could therefore be determined by the computer's level of performance. The transfer to the computer as a measurable component was facilitated by the concept that quality cost was associated solely with a defective product. In this sense, testing became the dominant issue, and the place in the development cycle where the cost of finding and repairing defects could therefore be accurately determined. It followed that the cost of making a good product was not included as part of quality costs but rather in the testing activity. This in part resulted in the emphasis on achieving good (quality) software through improvements in the testing process.
Software quality,Cost of quality (COQ)