“When one person pees their pants, the rest of us wear diapers”
I've worked in Defence procurement and there's misunderstanding about why it's so hard.
the fundamental problem is that the big expensive products need to be superior in their function to the other team's. it's not like buying a corolla. it's not even like buying a ferrari. it's more like buying a formula one car. The performance is not measured against an absolute standard but a relative one: the f1 car needs to be faster than the other cars; our ships, planes and vehicles need to be able to attack better than the other team's defence while defending better than the other team's attack.
This creates a situation where if you specify a nice tight simple product in advance it probably won't perform. You need to leave the contract partiallly unspecified and/or be willing to vary the contract during the procurement process (maybe not so much for rifles or ration packs but definitely for joint strike fighters and choppers).
Contract variations introduce complexity and risk. This is where things go to shit.