At Thursday’s House Energy and Commerce Committee hearing on healthcare.gov, Cheryl Campbell of CGI Federal and Andrew Slavitt of Optum/QSSI provided few useful details about the site’s architecture or problems. Nor would they take much responsibility for the failure of the system. But there was one line of questioning they had no trouble answering. When Bill Cassidy, R-La., asked how much they’d been paid in their contracts, Campbell immediately gave a detailed rundown: CGI Federal, lead contractor on healthcare.gov, has received $112 million for this year, $196 million for this phase of the contract, and a Total Contract Value (TCV) of $293 million. Slavitt of QSSI, which built healthcare.gov’s data services hub, likewise gave his answer—$85 million—without hesitation.
Campbell and Slavitt, a senior vice president and an executive vice president, respectively, are not techies; they are not project managers. Their expertise is in extracting as much money as possible from the government in procurement contracts, and judging by the numbers, they are very good at it.
But if you place these kinds of managers on the critical communication chain of a software project, you immediately endanger its success. Project quality is sacrificed for the sake of appearances—meeting the letter of the contract with indifference toward the actual practical outcome. Even if you put “the best and the brightest” (to borrow the administration’s own phrase) on a project, the mere presence of such managers can make it impossible to do good work, because the lines of communication will be broken.
In terms of tech jobs I’d never want to have, I’d estimate that programming for a CGI-like contractor would be better than being a World of Warcraft gold farmer in China, but worse than working for Pax Dickinson. Campbell and Slavitt made many gaffes that would ensure that any programmer with common sense would never work under them. Let me debug their testimony a bit.
When asked about QSSI’s testimony at a Sept. 10 hearing that everything was fine and dandy, Slavitt replied, “We mentioned the data services hub would be ready. It indeed was ready.” Alas, minutes earlier, Slavitt had said, “We absolutely take accountability for those first days when our tool was part of the issue in terms of the volume. Today the data services hub and the EIDM tool”—the registration and access management tool—“are performing well.” In other words, it was “ready,” but it wasn’t ready—because Slavitt is defining “readiness” not in terms of the product actually working, but in terms of meeting contract demands. They handed something off and ticked all the boxes, so what’s the problem? This attitude goes some ways toward explaining the last few weeks.
There was a lot of talk Thursday about end-to-end testing. Slavitt and Campbell both claimed they weren’t responsible for it. As Bill Johnson, R-Ohio, pointed out, the Pre-Operational Readiness Review in their contracts “required end-to-end testing results.” Campbell declared, “We have not been the systems integrator and we have never been the systems integrator.” Campbell saying it doesn’t make it so—CGI clearly was in charge of integration.
Campbell’s stonewalling on this point became embarrassing. When CGI Federal said it owned the front-end, Campbell explained, it meant that the company owned the front of a building but not the front door—which, by the way, was broken, which was all QSSI’s fault. Slavitt unhelpfully added, “I think the front door is a bit of a term of art. We supply a tool.”
Let me explain how end-to-end testing works in integrating large systems owned by multiple vendors. Each vendor works out detailed specifications for how the systems should interact. These are made as clear as possible so that when something goes wrong—and it always does—you can point to the spec and say, “You weren’t supposed to do that and that’s why our component appeared to misbehave.” In order to meet the specs, each vendor simulates end-to-end testing by building a prototype of the larger system.
In the case of healthcare.gov, QSSI should have had test scaffolding that could simulate the functionality of what CGI Federal was building, and vice versa. Each vendor needed to know the broad definition of what the other was building, and it was their responsibility to make sure they knew it. Campbell and Slavitt’s refusal to acknowledge this basic fact is both frightening and mortifying, and accounts for their inability to give any clear answers as to exactly which portions of the system are failing. They don’t seem to understand the difference between acceptable and unacceptable bugs, and worse, they don’t seem to know that there is a difference.