Barry Boehm, "Software Acquisition," ESD/MITRE Software Acquisition Symposium Proceedings, ESD/Industry Dialogue, Bedford, Massachusetts, May 6-7, 1986, pp. 86-90 (pdf)
Currently, software cost estimation models are at best accurate to within 20 percent of the actual real costs about 70 percent of the time. One of the reasons they are not any better is that the data to which they are calibrated isn't any better. Futhermore, I think the situation is going to get worse before it gets better because of the uncertain effect of such new technologies as rapid prototyping, Very High Level Languages, and Ada.
We need a consistent set of counting rules for Ada programs. Lines of Ada code are put through a "pretty printer" and suddenly you have a program that is twice as large. We need to define and collect data very carefully. One exception to all this pessimism is the ESD Software Management Metrics, which I think are going to lead to some very valuable data in the process of helping ESD manage its software projects.
Added June 18th, 2008
Barry Boehm, "Understanding and Controlling Software Costs," Proceedings of the IFIP 10th World Computer Congress, Information Processing 86, Dublin, Ireland, September 1-5, 1986, pp. 703-714 (pdf)
Understanding of software costs is important because of the overall magnitude of these costs (in 1985, roughly $70 billion per year in the U.S. and over $140 billion per year worldwide) and because of the fundamental impact software will have on our future quality of life. Section 1 of this paper discusses these issues.
Section 2, the main portion of the paper, discusses the two primary ways of understanding software costs. The "black-box" or influence-function approach provides useful experimental and observational insights on the relative software productivity and quality leverage of various management, technical, environmental, and personnel options. The "glass-box" or cost distribution approach helps identify strategies for integrated software productivity and quality improvement programs, via such structures as the value chain and the software productivity opportunity tree.
The most attractive individual strategies for improving software productivity
identified in Section 2 are:
Writing less code;
Getting the best from people;
Developing and using integrated project support environments.
Section 2 provides overall surveys of early and recent progress along these and other lines identified by the opportunity tree.
Better understanding of software costs leads to better methods of controlling software project costs, and vice versa. Section 3 discusses these issues. It points out that some good frameworks of techniques exist for controlling software budgets, schedules, and work completed, but that a great deal of further progress is needed to provide an overall set of planning and control techniques covering software product qualities and end-user system objectives.
Added June 13th, 2008
Barry Boehm, Phillip N. Papaccio, "A Value-Chain Analysis of Software Productivity Components," Proceedings of the Eleventh Annual Software Engineering Workshop, NASA, Goddard Space Flight Center, December 1, 1986 (pdf)
This paper summarizes a recent value-chain analysis of software productivity components at TRW. It explains the various value chain components and percentages, assesses their implications for improving software productivity, and elaborates on some further data analysis performed to address one of the major value chain components: rework costs.
Added June 13th, 2008
Copyright 2008 The University
of Southern California
The written material, text,
graphics, and software available on this page and all related
pages may be copied, used, and distributed freely as long as the
University of Southern California as the source of the material,
text, graphics or software is always clearly indicated and such
acknowledgement always accompanies any reuse or redistribution
of the material, text, graphics or software; also permission to
use the material, text, graphics or software on these pages does
not include the right to repackage the material, text, graphics
or software in any form or manner and then claim exclusive proprietary
ownership of it as part of a commercial offering of services or
as part of a commercially offered product.