I Thought I Was Done, But I Had Another Thought 

Tags: Microsoft .NET, Productivity, Business

So, I guess I am not finished my brain dump. Given my previous post, what do we know, and what's to be done about it?
  • Because people don't accurately remember times for compelting small tasks, programmers should measure their own productivity.
  • This is boring work and should be done using software.
  • Programmers will resist having their true productivity measured by management, so they should have the tools to do it for themselves.
  • The measurements of one programmer are utterly useless for anyone other than that programmer, as code production can differ by a factor of 10:1 depending on the individual and circumstances.
  • If programmers do not share their individual data, then it isn't possible for management to make accurate estimates.
  • This information is most valuable to the programmer themselves, because it would improve estimaties.
  • Management is more concerned about creating reliable estimates than in comparing individual output.
  • In programming, low level tasks of different types are not necessarily interchangeable in terms of time. Individuals have different specialization even within a lagnuage or a framework.
What's this mean? Should we just give up? That probably won't fly, but here are a couple ideas that might help.
 
It would probably be better if we don't ask programmers themselves to provide estimates. Instead ask a programmer to describe the tasks involved in getting a project done and then use reliable large-scale data to determine how long a project should take given a average level of productivity.
 
Forrester or the like may have done some of this research or found studies done at universities. I have read some general studies on this topic that were produced by Corporate Executive Board during my time on their SharePoint project in 2003, but I don't know if they have drilled down on specific activities. Another good source would be to follow Fredrick Brook's references and see where they lead and if there have been any modern updates.
 
Why would programmers not like this done within an individual company? Well, it's basically along the same lines as truck drivers having GPS in their trucks or weight detectors under the passenger's seat. I think that while the programmer who knows or believes that he is 10x more productive than his peers would welcome such a system, there would a majority of others who wouldn't want to give that person more ammunition or ego fuel. In the end, I think even the super-programmer knows that it is better to have solidarity with his brothers if he expects their help later on. 
 
Sidebar: Some of the lady programmers out there may have noticed my assumption that my hypothtical programmer is male. Well you ladies are unfortunately still very rare in our feild, though I do wish that would change. In any case, being so rare, you're probably going to get our help no matter what you say or do, so it would be survivable I think to lord your superior productivity over the group and demand that everyone count their code lines. (Of course, I hope by now you all understand that I am kidding, right?)
 
We could probably all benefit from a large scale (open source?) project that would allow the entire IT community to provide details about how long tasks take. There could be plugins for popular tools like TFS/vs.net for task management to make participation easier.
 
If the data is collected in large anonymous sets and each developer has access to their own numbers, then it would remove much of the resistance to the idea of managment grading everyone. This would be much more like the way insurance groups are created. You're boss doesn't have access to the information about your health that the insurance company uses to determine how much they will charge him or her for your medical plans. (Actually, the insurance company doesn't get the whole picture either, but that's not the point right now.)
 
To make such an idea work it would have to be easy, it would have to be reliable (fake proof), and it would have to be fun.
 
Food for thought. I'll come back to this again some other time.
 

Links to this post

Comments

Make a Comment

Name *:
URL:
Email:
Comments:

`