Wednesday, August 6, 2008

Productivity - A myth

What is productivity?

If you ask me, I would say that productivity is the most confused term I have ever heard. If you ask three people what do they mean by productivity you would probably get three different replies. Many people try to keep productivity and efficiency in the same boat. This is an attempt clear the air around what Productivity is. Do not mind if this adds a little more the confusion. Share your ideas and I would to learn from you.

Productivity in economics refers to the measures of output from production processes, per unit of input. Productivity is different from Efficiency which takes into account both the value of what is produced and the cost of inputs used.

In software product engineering, Productivity is the number of lines of code generated by a programmer in a given time period.

Do you agree with this? If you agree than it is important to read further. Time to clear some doubts.

If you disagree, you are welcome. Read on till the end and let us know if you still disagree.

Actually this definition is wrong. If this is true, I can use a code generator which would produce 50 times more code which I normally produce on a business day and I would be the most productive developer on that day. That is why most of the matrices related to lines of code are useful for nothing.

Let us think ahead. What about the following definition.

Productivity is the rate at which the end users enjoy new features. Looks interesting! Let us elaborate it using Agile methodology.

In Agile Software Development world, the productivity would be the business value delivered per unit. Here Unit can be iteration/release depending on at what level we are trying to measure productivity. Productivity and team's velocity would go hand in hand. The Velocity as measured in story points would be the productivity of that iteration.

But this is not as easy as data can be easily manipulated. Here we are considering story points as a measure of productivity. But it is easy to manipulate the story points and the team can show that the velocity a.k.a productivity is increasing iteration by iteration. The same case is with business value. Who would ensure that business value associated with easy story is correct. This can neither be measured nor validated.

Let us think further. Productivity is the rate at which the teams increase partner's (end users’) profits. What about this?

This would again be wrong. It is not the programmer's job to make the users profitable. Too many other departments are involved in between and too many actors who do not want to increase profits in any way.

The closest possible answer to what productivity is that no one has managed in 50 years of trying to define productivity in programming in any way that can't be corrupted by some means.

1 comment:

Anonymous said...

well, if you dont go litterally with words, then you may think of productivity in the actual context where it is used e.g. when talking about crops, the most important output is the volume of crops thats why productivity there is tied up with volume, in software devlopement volume is not so much of an important factor. Here the importance may lie in accuracy, conformance to requirement, speedy delivery, low cost etc.. and that may be what production is all about in software development.