Saturday, February 14, 2009

Measurement of Project Productivity

Many project managers plan their schedules based on the programmer productivity on past projects. This productivity is often measured in terms of a unit of size per unit of time. For example, an organization may produce 300 lines of code per day or 1200 application points per month. Is it appropriate to measure productivity in this way? Discuss the measurement of productivity in terms of the following issues:

1. Different languages can produce different numbers of lines of code for implementation of the same design
2. Productivity in lines of code cannot be measured until implementation begins.
3. Programmers may structure code to meet productivity goals.

While measuring productivity may be usually based on the number of lines of code produced per day, this is not a very accurate, appropriate and reliable method. The unreliability is clearly shown in the three issues given above.

In the first issue, there is a rather obvious point when measuring productivity in terms of lines of code produced per day. Different programming languages are not the same especially in terms of syntax and commands. A shorter piece of code programmed in, say for example, Java may be longer when converted to C++, or the other way around. The choice of programming language greatly affects the measurement of productivity and can lead to a subjective assessment of productivity points. Bias may also happen if programmers know that this particular language can produce more lines of code compared to another and may use that to make it appear like they are very productive every day.

The second issue is also rather obvious because lines of code are only generated during the implementation phase. If we use this method to measure productivity, then we are clearly disregarding the progress made during the other phases of development, i.e. analysis, design, etc. Productivity is not only measured by the number of lines of code generated but also by other aspects that constitute the whole development cycle. This approach makes it seem like we can only start measuring productivity during the implementation phase, where lines of code are generated.

As for the third issue, this may also involve ethical issues because a programmer can definitely manipulate the structure of the code. This requires that there must be supervision during the implementation phase to avoid such circumstances. Because the programmer is knowledgeable about the structure of the programming language used, he can easily manipulate the code and program it in such a way that there are more lines of code than is actually necessary to implement a procedure.

As a conclusion, I cannot say completely that measuring productivity in terms of the lines of code produced per day is not an appropriate method of evaluation. However, there must be other approaches done to compare and contrast the productivity points so as to give a clearer and more accurate measure of productivity.

No comments:

Post a Comment