Imagine awarding a contract to build a self-driving car. Do you think that contract could be delivered on budget and on time? That’s like every military contract. They’re for bespoke stuff that doesn’t exist in the market. The military looks at what’s out there, adds a bunch of wishlist items, and then puts out a contract for that.
Think about how the private sector develops new products. They don’t award a fixed price contract. They throw a bunch of money at startups. Most of those efforts fail. What is the development cost of every successful product, accounting for those failures? In the military, all the hiccups and restarts and course corrections and dead ends that would kill a startup, and be written off by investors, instead get accounted for in the final cost of the contract.
For example, we were working on radios that could self-organize into networks on frequencies they picked dynamically and keep on the same frequencies while facing a changing RF environment because they were in a convoy driving through the desert with a high powered jammer randomly stomping on everything.
And these aren't fanciful requirements. You're in a country whose government you just toppled--you can't count on the civilian frequency allocations. The military really doesn't want to keep track of every squad's frequency assignment manually. The radios are always on the move, in often challenging terrain (mountains, etc.). The enemy has jammers and countermeasures. Even if not every radio needs every one of these capabilities, the military needs an overall communications architecture that accommodates all of these functions.
There is no encryption and no frequency hopping not because it's difficult to do, but because the goal is to be heard and understood by anyone who listens.
Encryption is by no means the only additional feature, at least frequency hopping is crucial to avoiding jamming. I can imagine there are other requirements I can't immediately think of.
You will need to spend some effort on getting synchronization right, but it's a lot less complicated than, say, building a CRUD app.
Now make a radio that works in sub-zero and 100+ degree temperatures, survives water, dust, and firearm exposure, being dropped dozens of feet, is resistant to broad-spectrum jamming, can handle secure encrypted communications with a large set of ever-changing participants, has a range of dozens of miles and days of battery life, is of a size and weight portable enough to be carried by a soldier for hours or days alongside their normal gear, and which can be field-repaired by a soldier with a few days of training.
And those are just the high-level requirements. It's a lot more complicated than a CRUD app, which even a non-programmer can do in an hour.
The application portion has a nice explanation on the effects of gun fire on systems. Keep in mind that "gunfire" covers everything from a 9mm handgun to a 30mm Gatling gun.
Any cell phone seems to do the former just fine, and I don't know of any radio, military or not, that can do the latter.
If you want the radio to let you watch video feed from a drone above, show a map with locations of other soldiers, or update Facebook status via satellite link, that may be a bit more work.
It's a great example of how trying to design a product that works well for every stakeholder in every scenario leads to a Frankenstein of a product that doesn't work well for anybody. This happens all too often in government (typically military) contracts.
The resulting spec may or may not be possible to implement. It may have pairs of requirements which require great cost to implement both, where the sane thing to do would be to relax one slightly, but the spec is cast in stone and that will not happen. It may have specs which could be vastly improved at small cost, but that also will probably not happen.
In industry, ideally, there would be a series of give-and-take rounds between marketing, the product designers, the engineers, and manufacturing which will find the efficient solutions to the conflicts and identify cost effective enhancements. This can't happen in military procurement because to engage in a design process with a company or companies would be unfair to the other bidders. They might engage a company to help them write the requirements, but it would be one which does not bid on the final contract and does not enable the iterative design cycle.
As a procurement system, it can fail spectacularly and is almost guaranteed to preclude optimum solutions, but it also deters cronyism and snake oil peddlers. If it seems like it always fails, remember that you never hear of the contracts which come in on time, on budget, and deliver a usable product.
Being over budget, late, and not meeting requirements seems to be an infectious quality. However, it's not like many companies are set up to deal with winning these contracts. Do you choose the company that's more likely to have a more complete product but possibly be unable to support it in a couple of years? Or the one that can do decades of support (including replacing obsoleted hardware) but has a reputation for being late, overbudget, and half done?
The established players also have a tendency to layoff or move the experienced engineers after a major update and leave only cheap, inexperienced engineers in their place. So the next big cycle will have mostly people who don't know what they're doing accepting changes that cannot actually be done (in time or budget, if at all) but they don't know better.
1. Make it do exactly the same thing that the previous version did, right down to replicating the bugs.
2. Then add a unicorn.
The laws requiring publication of bidding documents and damning reports on cost overruns are also mostly specific to public projects. Who knows how much money Apple invested in self-driving technology? Try sending a Freedom of Information Act request to Uber inquiring on their self-driving car efforts.
In government the first is not allowed - the contract is specified. However you can ask for more and if you have made progress they will sometimes grant you "that little bit more" - remember ultimately they want what you are under contract to make and if you fail they have to start over again with someone else.