Measuring Productivity Using the Infamous Lines of Code Metric

Nowadays, software must be developed at an everincreasing rate and, at the same time, a low defect count has to be accomplished. To improve in both aspects, an objective and fair benchmark for the productivity of software development projects is inevitably needed. Lines of Code was one of the first widely used metrics for the size of software systems and the productivity of programmers. Due to inherent shortcomings, a naive measurement of Lines of Code does not yield satisfying results. However, by combining Lines of Code with knowledge about the redundancy contained in every software system and regarding total projects costs, the metric becomes viable and powerful. The metric “Redundancy-free Source Lines of Code per Effort” is very hard to fake as well as objective and easy to measure. In combination with a second metric, the “Defects per Source Lines of Code”, a fair benchmark for the productivity of software development teams is available. 1. The need to measure The ability to produce innovative software at a high rate is of utmost importance for software development companies in order to persist in a competitive and fast moving market. At the same time, with increasing dependence of business processes on software, the ability to deliver highquality software becomes crucial for economic success [9]. We define productivity as the ratio of the size of the output versus consumed input, i. e. the effort required to produce one unit of output. Applied on a coarse level to an entire software development project, this definition retrospectively describes the performance of the development effort. Achieving high productivity is not easy and maintaining it requires constant attention. The economic incentive for improvement is enormous, as advancing the productivity not only increases the profit margin of individual projects, but also allows to implement more projects at the same time. A prerequisite to manage and improve productivity is the ability to measure and compare it against industry standards and internal benchmarks. All processes that exert influence on productivity need to be appraised in order to identify potential for improvement that can lead to optimal performance. Factors that might impair or advance development productivity range from external influences such as the temperature in office spaces over the motivation of developers to tricky technical challenges [11] [13]. However, the individual examination of all these factors is virtually impossible in commercial environments. Therefore, we are interested in a productivity metric that concludes the effects in a single assessment. Counting Lines of Code is one of the oldest and most widely used software metrics [13] [7] to asses the size of a software system. It has been argued repeatedly that this metric does not adequately capture the complexity of software systems or the development process. Hence, it is considered wrong to rely on Lines of Code for appraising the productivity of developers or the complexity of a development [5] [11] project. We will show that by excluding redundant parts of code from the Lines of Code count, combining the result with the total effort needed and the defect rate in the outcome, a highly objective and efficiently measurable productivity benchmark for software development projects is obtained.