When government agencies procure custom software, the price tag is often driven up because the agencies are unwilling or unable to reduce the complexity prior to beginning the acquisition process. The complexity and associated uncertainty is obvious to vendors, so when asked to provide a firm fixed price bid, they’re going to price it for the worst-case scenario, to avoid losing their shirt.
If agencies would allocate the resources to simplify and de-risk the work prior to publishing a solicitation, they’d receive substantially lower quotes from vendors, who would no longer be required to price in uncertainty.
Let’s use a metaphor here.
Imagine that I find that my finished basement has a wall that is wet and has a black substance growing on it. So I ask a half-dozen contractors for fixed-price bids to fix the problem. Those contractors have to assume a worst-case scenario: the basement wall is collapsing, and has cracked enough to admit water, which has resulted in black mold (Stachybotrys chartarum). That’s going to require demolishing the interior wall (subcontracting for mold remediation), digging out many cubic meters of earth, jacking up the house, tearing down the old wall, pouring a new wall, re-framing the interior wall, putting on new drywall, and painting. That’s going to cost tens of thousands of dollars.
But imagine that, instead, I do a little homework first. I take a sample of the black substance and pay a lab $50 to test it, and they tell me it’s just mildew. Then I tear off the wet drywall and find there’s a white PVC pipe that has a slow drip coming from a connector. Now I know that I really need two things: a plumber to cut out the connector and put in a new one (that’s an hour’s work), and a contractor to replace the ruined sheet of drywall and repaint (that’s maybe two hours of work). Now I can ask a plumber and a contractor for bids, and those bids are going to be way cheaper, since I’ve eliminated nearly all of the uncertainty associated with the work. And I know enough about the problem to have an intelligent discussion with a contractor about their proposal. Instead of $30,000, the bids will total maybe $400.
Agencies generally lack the knowledge about how to do that homework. They don’t employ people who understand software development; or, if they do, those people are not consulted prior to starting a procurement. The contracting officers don’t know about software development, and the software developers don’t know about contracting. Those two experts sure wouldn’t be expected to work together, or even know each other. So agencies pay wall-rebuilding rates for pipe-repair work.
Government agencies at all levels could better control spending, improve their budgeting processes, and take charge of their technology-intermediated service delivery, if they would simply allocate the resources to understand what they need to procure.