Reverse Project Estimation

TCG has a big goal we have been working towards for a number of years now.  The plan is to save American taxpayers ONE BILLION DOLLARS by 2016.  One of the ways we save government money is by suggesting and using existing open source solutions to meet the new needs of our government clients.  Yes, I know that the next-best contractor bidding on a project may have made the same suggestion resulting in the same savings, but it’s not uncommon for contractors to reinvent the wheel either.  Since we are actively tracking our savings as an important company metric it is necessary to estimate how much our plans are actually saving over the alternatives.

We all know that it’s hard to make a reasonable estimate for upcoming software projects.  There are just too many unknowns to get a number spot-on with any decent regularity.  But what about a project that is already finished?  There are a number of good estimation techniques developed by people smarter than I who study this particular problem. Barry Boehm is one of these people.

Dr. Boehm developed the Constructive Cost Model  (COCOMO) based on statistical analysis of a number of real world software engineering projects.  Every project is different and there is no silver bullet you can use to get a perfect estimate.  Even if it is not perfect, a number you get out COCOMO is at least based on real world metrics.   It’s certainly better than finding the smartest engineer you know and asking him to do some math on a napkin and give you an answer by the end of lunch.

NITRC’s latest addition is an Image Repository for various types of medical scans.  Rather than build something from scratch, we decided to incorporate the XNAT Neurological Imaging system.  Since this is in line with our company goal of saving taxpayer dollars, I wanted to make an estimate of how much it would have cost the government if we unscrupulously wrangled our client into writing a similar product from scratch.  We have the final source code and just need to get an estimate of how long it would take, on average, to write another application of similar complexity.  This is a great time to use the COCOMO model. 

At first I looked for software that could run some static analysis on our source tree to get a cost estimate.  What I found was something better.  There is a web site called Ohloh that generates some great statistics on more than 500,000 open source projects.  Here is the Ohloh page for XNAT.   If you click through to the Estimated Costs page you will see that rebuilding XNAT from scratch would cost about 2.8 million dollars according to the COCOMO model.  There are a number of other great statistics that Ohloh tracks.  Best of all, Ohloh ties into a project’s source control so you can see charts that show a project’s progress over time.

Even if you don’t have a real need to use Ohloh, it can be fun to click around and see the stats on your favorite open source project.  Today I learned that Firefox has 5.5 million lines of code, not counting comments.  The Python programming language project has more lines of Python than C.  Or you can take a look at my favorite project.

If you have a project of your own to promote, register it with Ohloh to get some valid back links to your project page.  Google will think better of you for it.