Academic papers in computer science and systems engineering as well as newspaper exposés frequently cite horrific examples of cost overruns on software projects. When I see a headline like, “GAO Highlights DoD Cost Overruns” I shrug and say to myself, “here we go again.” What got me going down this thought path today was a recent headline in our local, “Austin Business Journal” titled State lacks sufficient IT planning.
What followed in the article – sorry the full article requires a subscription – chronicles 48 technology projects undertaken by the State of Texas, of which 32 were late and/or over budget. You can read the report, “2010 Quality Assurance Team Annual Report” in its entirety, if you are so inclined. The article suggests that the blame for recurrent failures falls on the “state employees tasked with planning and budgeting new technology projects.” The implication being that if the state employees managing the projects just knew how to estimate software development cost and schedule, then the projects would successfully complete on time and within budget.
In my opinion, it is not that simple.
Software Cost Estimating Theory
Back in December 2010, I talked about Estimating Project Costs. In theory, a project manager uses customer requirements, resource availability and required milestones to construct a realistic project schedule and budget. In complex projects, components may be estimated separately and then the estimates are combined or rolled-up with integration estimates to produce cost and schedule for the total project. Sophisticated cost estimating tools help project managers construct a cost and schedule using parametric models and lessons learned from previous, similar projects.
Software Cost Estimating Reality
First, let me say that no one wants to know how much it will cost to get a software solution to meet their needs because the number will be too high. Senior management wants a software cost and schedule that allows them to win a competition based on lowest bidder. Government agencies want a solution that fits within the budget that was already proposed and approved before the RFP was announced.
Getting from point A to point B often involves a complex dance using multiple contractors, combinations of off-the-shelf and developed software and workers located anywhere around the world working for small or medium sized companies or as individual contractors. The set of vendors working together comprise the “project team” each of whom was pressured to commit to a cost and schedule that meets the target established by the customer.
I live in a large state with a state government budget that rivals many countries. To meet budget shortfalls, most states – including mine — have gone to a state run outsourcing model that encourages independent contractors and staffing firms to deliver “lowest cost.” What is happening is that they are not getting the right skill set and there is no synergy or “team” concept in these IT programs. Instead of utilizing two or three firms, who specialize in a particular area, they are putting 10 to 20 independent contractors together and saying – here is the schedule, make it happen.
This situation is a project manager’s nightmare. I hate to say I see the same trend in corporations…. They have stopped using small, expert firms and have gone to a staffing model that brings in independent contractors to work individual positions and tasks. I am only glad I am not in charge of one of those projects!
I would love to say that I have THE SOLUTION. However, I don’t. I applaud government agencies and companies that accept “Best Value” rather than lowest bid – that is a start. I would like to see professional support for government agencies in creating realistic RFPs for software procurements. In addition, I think that a procurement model that involves selecting a trusted contract manager or contractor and then incrementally creating requirements and development cycles, rather than all or nothing development, has merit. Then I would like to see teams made up of the right professionals – especially Project Managers. We have to start acknowledging that not all people are good at everything and a good team is not a collection of random consultants.
Your thoughts, experiences and suggestions are encouraged.