Cleanroom software engineering-plan your work and work your plan in small increments
A. Spangler · IEEE Potentials · 1996
In the semiconductor industry, silicon chips are built in contaminant-free environments called cleanrooms. This helps prevent the injection of defects during the production process. Similarly, defect prevention is the primary concern of software-developers using cleanroom software engineering. The motivation is the same in both cases: defect prevention is much less expensive than defect removal. The traditional software development pattern relies heavily on testing and debugging after development to find and repair errors. With cleanroom, the goal is to construct software with no defects during development. Given high quality code, testers on a cleanroom project can focus on determining the reliability of the code. They can then improve it, if necessary, rather than spend time finding and fixing an indeterminate number of defects keeping fingers crossed that reliability will be satisfactory in production. These may sound like unattainable goals, however, numerous cleanroom teams have used cleanroom successfully. They have built a total of nearly two million lines of extremely high quality software during the past decade, while maintaining high productivity rates. Cleanroom software engineering is a managerial and technical process for developing ultra-high quality software with certified reliability. Cleanroom provides a complete disciplined structure within which software development teams can plan, specify, design, verify, code, test, and certify software.