Last week I attended the 25th International Forum on COCOMO and Systems/Software Cost Modeling. I attended for several reasons. First of all, I was invited to participate on a panel whose topic was “25 years of Software Estimation: Lessons Learned, Challenges and Opportunities”. Secondly, I have attended in the past and while it’s generally a small group, as such conferences go, I always come away impressed by the fact that so many smart people end up in one room and this year was no different.
But I digress; I really wanted to share my thoughts about the lessons learned, challenges and opportunities in the software estimation world. I think the most significant lesson learned (in my 25 years at least) is that the more things change, the more they stay the same. We continue to experience project failures. We continue to let requirements grow and blame the software folks. We continue to plan based on unproven impacts of silver bullets. Mostly, we continue to disregard what history should be teaching us. And if we don’t start to take our history seriously, things will be the same 25 years from now.
I think the biggest challenge that estimators face centers not around the mathematical or scientific but rather around issues of credibility, acceptance and successful negotiations. Many project failures are the result of poor negotiations between the business and the project leadership. Reasons for this include: failure to successfully communicate the complexity of the project, unrealistic schedule expectations forced on the project team, over-optimistic predictions of the project team. And (in case I haven’t said this before) failure for the business and the project to learn from history and negotiate geometrically using the project management triangle.
OK – so far I am pretty much repeating the sentiments of a fellow panelist (Dan Ligett) “We’re doomed!” Dan, of course, did not stop there but offered some encouragement going forward. I will attempt to do the same. You might have noticed that I believe firmly that much of the problems in the software industry are rooted in our inability to learn from and/or believe the lessons that history has taught us. Data really will set us free. The opportunity is for the estimation community to collaborate and cooperate in order to provide paths for historical data to usefully and credibly inform future actions. We need to look for ways to facilitate the sharing of data and models that will help the community at large make it possible to grow the practice of well informed, thoughtful geometrical decisions based on well developed, history informed estimates.