I can be pretty confident that a 100 KLOC system is bigger than a 10KLOC system. But if I’ve written the 100KLOC system in a year, and Joe writes the same system in 10KLOC during the same time, that doesn’t make me more productive. Indeed I would conclude that our productivities are about the same but my system is much more poorly designed.
Assuming an accurate FP [function point] counting system, if I spend a year delivering a 100FP system and Joe spends the same year delivering a 50FP system can we assume that I’m more productive? I would say not. It may be that of my 100FP only a 30 [sic] is actually functionality that’s useful to my customer, but Joe’s is all useful. I would thus argue that while my direct productivity is higher, Joe’s true productivity is higher.
But all of this ignores the point that even useful functionality isn’t the true measure. As I get better I produce 30 useful FP of functionality, and Joe only does 15. But someone figures out that Joe’s 15 leads to $10 million extra profit for our customer and my work only leads to $5 million. I would again argue that Joe’s true productivity is higher because he has delivered more business value – and I assert that any true measure of software development productivity must be based on delivered business value.