Can you get the job done in one hour with ten appliances? Theoretically, yes. You can get the job done in ten hours if you use one appliance, five hours if you use two appliances. The total effort for this job is ten kilowatt-hours (ten widgets times one kilowatt-hour per widget). Throw a switch on a one kilowatt appliance and one hour later, voila, you have a widget. Suppose you land a contract to build ten widgets.
Think of person months as the software equivalent of the kilowatt-hours that your electric company uses as the basis for your electric bill. Another name for this: Monte Carlo software cost estimation. The state of the practice ( not state of the art) in software project management is to account for known constraints and for the random nonsense that inevitably slows things down. Done even better, you need to account for the random events that inevitably raise their ugly heads in a large software project. You need to read this alongside of Boehm.Ĭost estimation, done right, accounts for constraints such as that nine month interval between conception and birth.
Nine women will not reduce this nine month interval one iota. It takes a woman nine months to have a baby. The following canonical example is politically incorrect, but is illustrative. Ten person months means that one person can do the job in ten months, but also that ten people can do the job in one month.
Where do these numbers come from? Fitting 20k projects to a curve.įrom this 7.9 we've got a few things we can get from it: This represents the best case for a software development project timeline. Take a default schedule multiplier (3.67) multiply the cube root of the time estimation (your case 10 months). Of particular interest in this is the paper "Effect of Schedule Compression on Project Effort" which looks into the relative cost of the percent of the most efficient schedule.Īnother thing to read is How Software Estimation Tools Work written by one of the people who is often cited the algorithms for software estimation tools.Īs you note, that doesn't work well for programming.įrom something I wrote a long time back and didn't cite well I had the following table to tack on to the end of the estimated effort (digging a bit more, it looks a bit like something from the COCOMO II Schedule Equation). As has often been noted, this doesn't work well with software programming. If you are digging 10 holes in the ground, you can have one person dig 10 holes or 10 people dig one hole - and the 10 people will do it about 10 times faster. While the effort of "10 man months" is an estimation of effort it assumes the perfectly divisible task.
The need for the new model came as software development technology moved from mainframe and overnight batch processing to desktop development, code reusability, and the use of off-the-shelf software components. It provides more support for modern software development processes and an updated project database. From the cited wikipedia page:ĬOCOMO II is the successor of COCOMO 81 and is better suited for estimating modern software development projects. The basic COCOMO model has some issues with it that were outdated and addressed in the COCOMO II model. Software Estimation: Demystifying the Black Art: Demystifying the Black Art.Before going too far two books that you really should read: