It is a true fact that the real time estimation of the cost of computer programming is an important parameter for the effective management of the programming, yet such estimates have not been fruitful in the past. There are a couple of factors that positively contribute to the cost of computer programming. The data that relates the effects of some of the factors upon the cost are explored along with the best recommendation for the more detailed cost collection, analysis, as well as experimentation.
List of Computer Programming Cost Factors
A. Operational Requirements and Design
- Extent of innovation in the system, its components, and especially the automatic data-processing function.
- Extent to which the programming designer will participate in a determination of the information-processing needs (i.e., the system and operations analysis, and the system and operational design).
- Number, size, frequency, and time of system design changes.
- Extent of system dispersion and number of interfaces.
- Number of other components and subsystems being developed concurrently as part of the system, e.g., in a command and control system, sensor, and communication subsystems.
B. Program Design and Production
- Number of computer program instructions and the types of programs that must be produced.
- Number, types, and frequency of inputs and outputs to the computer(s).
- Extent of innovation required in the program system; that is, the degree to which programs are similar in nature to those previously written.
- Number, types, and quality of publications and documentation for both customer and internal use.
- Extent of complexity of the data-processing functions.
- Degree to which the following program design characteristics are recognized and must be incorporated.
- Maintainability—the ease with which new functions can be detected and corrected.
- Changeability—the ease with which new functions can be incorporated in the program.
- Usability—the ease with which personnel other than designers can use the program.
- Flexibility—the ease with which the program can be used for other purposes with only slight modification (e.g., SAGE programs for air traffic control).
- Extent of the constraints on program design.
- Computer storage capacity.
- Number of input-output channels.
- Timing of internal transfers.
- Extent to which the program must operate in a real-time mode.
- Number, size, frequency, and timing of program design changes.
- Extent to which data for data base are available, or data collection is required.
- Number of entries (total size) for the data base, the number of different types of data needed for it, and the extent to which each item can serve many programs or subprograms.
- Efficiency of the programming language and the compiler or assembler.
- Extent to which programming tools are available and usable.
- Extent of the completeness and clarity of the system test and acceptance test requirements.
C. Data-Processing Equipment
- Number of hours per day of computer availability.
- Extent of capability of the computer and its suitability for the job.
- Extent to which the operation of the computer and peripheral equipment is reliable, well tested, and well documented.
- Number of automatic data-processing components being developed concurrently with the program.
- Number of different computers for which programs are being prepared.
- Number and types of displays used.
- Extent to which adequate EAM support will he available.
D. Programming Personnel
- Types and quality of programmers.
- Number of man months of programmer training required.
- Number of programmers to he assigned to a given function or task.
- Policy of obtaining and phasing of personnel to staff a new program development.
- Rate of turnover.
E. Management Procedures
- Extent of use, maintenance, and monitoring of effective management plans within both the customer’s and program developer’s organizations.
- Extent of formalized procedures to use the computer facility.
- Extent to which there is a well defined and controlled system change procedure.
- Extent of an error-reporting and -correcting procedure.
- Extent of contingency plans in the event the computer is overloaded or otherwise unavailable.
- Extent of quality control that is exercised during testing (e.g., reliability requirements).
F. Development Environment
- Number of agencies with which the programmer contractor must deal and their level of experience with system development.
- Average number of days and effort required for concurrence.
- Travel requirements.
- Extent to which delivery dates for required programming tools are reliable, and correspondingly, the amount of pressure caused by a tight schedule.
- Extent to which the computer is operated by another agency.
G. Facilities, Services, AMD Supplies
- Number of computer operators and ADM personnel required.
- Number and experience of technical management personnel, administrative personnel, and technical editors.
- Cost of special simulation facilities, computer room facilities or special office equipment.
- Number of square feet of new office space or building required.
- Exceptional costs of graphic arts and reproduction.
- Cost of punched cards, magnetic tape and other special supplies or equipment.
- Cost of special security requirements (e.g., Top Secret vault).