Geeky topic: Why has there been so little investment in software cost estimation?
I know that Boehm at USC created the Cocomo model and a really cheesy and unusable tool for cost estimation. No one can understand it, and it is impossible to train a project manager on how to use it. Some products are based on this tool and they do a good job of making the interface less ugly, but the overhead for understanding the measurements is still high. (Plus I question the basic premise… that you can take measurements about things like the development team’s level of experience with the code and come up with a useful estimate, when less than one third of the time on a project is spent writing code.)
Let’s face it: COCOMO is a failure. It is open design (if not open source) but no one can use it.
Capers Jones suggests a different way to measure software productivity. You measure the time spent on a bunch of software development projects, across a long list of activities (things like coding, integration testing, requirements gathering, deployment, etc), and you attribute those measurements by some information about the project (like language, platform familiarity, etc. Some of the same things that COCOMO tries to turn into cost factors). You then have actual measurements. When you want to figure the cost of a project, you take the measurements for similar projects and you figure the same average productivity will exist for the new one. It’s amazing effective, and quite versatile.
Unfortunately, this model requires a good bit of data about your environment. That data is hard to capture and the tools are light at best. You can make your own tool, and use published national averages, but the numbers will be suspect. Once again, there are a few niche tools, but they are expensive.
There are a couple of proprietary apps that try to bridge the gap between complexity and producing useful information. They are interesting, but REALLY expensive.
This really isn’t that hard to get right… why has no one done it? A software app that is under $300 (one time fee) that can get basic information from a user, in a simple paradigm, and can construct a useful and valid software development cost estimate… is that so difficult?
If I can choose from between five different tax programs to fill out my taxes, and they all have wizards that allow me to answer simple questions, and they result in correctly filling out some REALLY complicated forms, there is no reason why software cost estimation should be as hard to do and as complicated as it is.
No wonder this area of research never took off. Mathematicians make lousy usability designers (I can say that… I’m a math geek).