Sunday, May 19, 2013

Optimize for value, not busyness or resource utilization

AgileDotNet@Houston 2013
Recently, in several different project conversations, there surfaced an amazing argument.   The exchange went something like this:

-          We need to do X, Y and Z, since these are most valuable, risky and fundamental things for the project.   Once we complete X, Y and Z, we’ll be able to make other important decisions and move on to the following priorities.  
-          But doing X, Y and Z only requires XX people. Our team is XZ people.  We need to pick something else, to make sure everyone is busy. 

There is value in doing the best known and most important pieces now, and there is value in postponing decisions until the last responsible moment.  There is no value in making more people busy. 

Entry-level microeconomics courses offer this example: more chefs in the kitchen allows for more pies cooked, but only up to a point.  After that, adding people actually reduces productivity.

X axis: number of people on the team
Y axis: overall productivity of the team, number of widgets per time period

The concern is overall productivity of the team, measured in value delivered to the customer.  Number of people and working hours is only important if it is too high. People-hours metric is completely irrelevant when it is lower than certain allowed maximum.

If X, Y and Z are the most and only valuable items to work on right now, that is what the team should work on, and nothing else.  People, whose skills are not needed at this point in the project, can go home, learn some new skills, provide peer review to others, work on setting up infrastructure, etc.. The important part is to optimize for the project value, and not for resource utilization.


1 comment:

  1. software development company delhi for outsourcing the projects, you need to put some extra efforts and research work to numbers of companies are available in the market to provide software development services.