Contracting for Computer Software Development--Serious Problems Require Management Attention To Avoid Wasting Additional Millions
FGMSD-80-4: Published: Nov 9, 1979. Publicly Released: Nov 9, 1979.
- Full Report:
Contracting for computer software can be an effective alternative to software development by federal employees. However, a review of several software development contracts found that many experience large cost overruns and lengthy delays. Certain problems were found to be common to all software contracts that had trouble.
Federal agencies contracted for software with little specific guidance. They often overestimated the stage of systems development they had reached before contracting. This overestimation often led to the issuing of inappropriate contracts using inadequate criteria for contractor performance. Agencies overcommitted themselves and failed to control contractors through strict phasing. Management failures while the work was being done included excessive changes, failures to inspect intermediate stages of work, and failure to require progress reports from the contractor. Contractual testing requirements were often inadequate or absent. Lack of a single identified contractor source for answers and interpretation of the requirements led to communications problems. The agencies were not enforcing recovery clauses.
Recommendation for Executive Action
Comments: Please call 202/512-6100 for additional information.
Recommendation: The Secretary of Commerce, through the National Bureau of Standards, and the Administrator of General Services, should issue specific quidelines to assist federal agencies in recognizing and dealing with the unique factors added to custom software development when it is done by contract. The following areas should be covered: (1) internal agency management practices necessary to write, manage, and monitor software development contracts; (2) specific instructions on how to tailor software development contracts to the state of system development that an agency is in at the time it lets a contract; (3) guidance on contract stipulations regarding the phasing of the software development; (4) guidance on performance specifications to be included in the contract to clarify quality requirements for the software; (5) the importance of requiring the software contractor to have a formal quality assurance program that is documented and subject to audit; (6) the degree of definition required to properly define such things as documentation standards, adherence to programming language standards, acceptance testing procedures, and satisfactory performance by the contractor; (7) how to handle changes in the software being developed with minimal disruption; (8) how to ensure that the contractor follows sound system development practices; and (9) the use of contract clauses.