Measuring the efficiency of software development in a data processing environment
Bibliography: pages 162-182.
The development of software for data processing systems has, during the last 25 years, grown into a large industry. Thus the efficiency of the software development process is of major importance. It is indicative of the level of understanding of this activity that no generally accepted measure of the efficiency of software development currently exists. The purpose of this study is to derive such a measure from a set of principles, to determine criteria for the acceptability of this measure, to test it according to the criteria set, and to describe inefficiencies obtained in a number of software projects. The definition of data processing software is based on the concepts of Management Information Systems. Flows, files and processes are identified as the main structural elements of such systems. A model of the software development life cycle describes these elements in detail and identifies the main resources required. A review of the literature shows that lines of code per programmer man-month is commonly proposed as a measure of efficiency of software development, but this measure is generally found to be inaccurate. In defining efficiency as the ratio of the prescribed results of a process divided by the total resources absorbed, a number of desirable properties of a practical measure of efficiency of software development are then put forward. Based on these properties a specific model is proposed which consists of the sum of flows, files and processes, divided by total project costs. Various other models are also considered. Validity and reliability are identified as the most important criteria for the acceptability of the proposed measure. Its reliability is tested in a separate experiment and found to be adequate. A field survey is set up to collect data to test its validity. The survey design chosen is a purposive sample of twenty software development projects. The main result of the survey is that the proposed model of efficiency is found to be valid. Other models investigated are less attractive. Efficiencies achieved in the twenty projects included in the sample are found to differ substantially from one another. Apart from achieving its specific objectives, the study also provides a perspective on some of the problems of software development. Several subjects for related research are identified.