Government tech has the unfortunate problem of requiring instant scale. As in whenever you develop a new app or tool, it needs to roll out to a hundred thousand (or hundred million in the case of healthcare.gov) people and needs to integrate with dozens or even hundreds of different systems. Which of course, is the entire problem to begin with.
It's pretty obvious that the old way of doing things is not sustainable. Most people would say the answer is Agile processes; but that has drawbacks in a government context. Agile can mean many things. Depending on how you implement it, but there is an inescapable trade-off of efficiency for oversight. Government contracts need oversight; otherwise you have contractors who aren't meeting their obligations and collecting millions of dollars while throwing obviously unqualified people at a problem. Often nobody on the government side is even paying attention that the work isn't getting done until it's too late.
I really don't know what the answer is here. There are lots of problems with the government procurement process, but there is a lot of money on the line and the people receiving it have a vested interest in maintaining the status quo. Ultimately the procurement process is the biggest issue. Contracts go to the company that can navigate the procurement process most effectively; not the company best suited to do the job. Given the bureaucratic nightmare that is government procurement, any procurement process designed to find the best company for the job will still ultimately reward the companies most adept at gaming the system through back channels (e.g. calling in a favor with a Congressman to ensure the criteria for contractor selection benefit a specific company).