The standard coder: a machine learning approach to measuring the effort required to produce source code change
This provides a more accurate way to estimate coding effort for software developers and managers, though it is incremental as it builds on existing version control data and machine learning techniques.
The paper tackles the problem of measuring the effort required for source code changes by applying machine learning to version control data, resulting in a scalar measure of effort derived from empirical data on developer behavior, which replaces traditional metrics like lines-of-code.
We apply machine learning to version control data to measure the quantity of effort required to produce source code changes. We construct a model of a `standard coder' trained from examples of code changes produced by actual software developers together with the labor time they supplied. The effort of a code change is then defined as the labor hours supplied by the standard coder to produce that change. We therefore reduce heterogeneous, structured code changes to a scalar measure of effort derived from large quantities of empirical data on the coding behavior of software developers. The standard coder replaces traditional metrics, such as lines-of-code or function point analysis, and yields new insights into what code changes require more or less effort.