Prior to this, I had no idea why defense projects were so expensive and slow. You have to understand, there are so many levels of negotiation, over the smallest changes imaginable. There's no such thing as "open source code" in these projects, everything is either modified off-the-shelf, or completely boutique stuff, and of course implemented in such a way that the clients (that would be us) can't just access the code themselves, or that clients can just build upon or make wrappers.
The contractor will send you their own techs or engineers - even if it's across the world - to fix the most trivial bugs. And it will take months or planning, budgeting, and what not.
In once instance, one contractor tech spotted a bug in the code, which some user had reported about - it was a one character fix, just a typo, really. So he fixed it on the spot, along with the rest of the stuff he came for.
A couple of weeks later he comes back, and reverses the bug. He had told his manager about the bug fix, and was berated for fixing in. In order to fix that bug, it had to be reported correctly, go through software update meetings, go through budgets, and the whole nine yards.
The bug was reported the correct way, and many months later he came back to fix it (again).
The whole process of specs and updates was like pulling teeth.