4 ms·
NASA does that regularly. They're seemingly the only people who can afford it. If bridges had scope creep the way software does, every bridge would start out
by msandford 10y ago
NASA does that regularly. They're seemingly the only people who can afford it.
If bridges had scope creep the way software does, every bridge would start out 1 lane each way and be 6 lanes double decker in the middle before all lanes fly in different directions towards different cities, much less the other side of the river.
I hear what you're saying about using tried-and-true methods. But nothing else has scope creep like software does, because basically nothing else is design-only. That's why software is so crazy. It's ALL design. There's no manufacturing at any point. You can manufacture infinite copies for almost free, i.e. compile and copy and install.
If you could go from bridge design in CAD to actual working bridge in meatspace in ~30 seconds and for $0.01 then yeah, there'd be millions of horrible, horrible bridges EVERYWHERE.
The fact that the design of the bridge takes a year or two and a few million compared to the 2-5 (or 10) years and billions to actually manufacture it means that you can design, redesign, and redesign again until you get a design that'll actually work and it barely moves the needle on the total price tag.
But in software, if you redesign and it doubles the amount of time to complete the project, you just doubled the cost at least.
If it were possible to make software better, faster, cheaper by just imposing some discipline, why haven't dozens of companies done so and taken over the world?
- jacquesm 10y ago> If you could go from bridge design in CAD to actual working bridge in meatspace in ~30 seconds and for $0.01 then yeah, there'd be millions of horrible, horrible bridges EVERYWHERE. That's a fantastic and well made point. It's akin to the cost of communications dropping over time. When moving words around the world was expensive people tended to stick to the important stuff, but now that the cost has essentially dropped to 0 we are drowning in irrelevant information. > If it were possible to make software better, faster, cheaper by just imposing some discipline, why haven't dozens of companies done so and taken over the world? Because the it likely is more than just 'some discipline' and because the market forces are working against you, after all nobody even expects software to be reliable so your competitor going to market with unreliable junk will eat your lunch if you slow down long enough to get it right, assuming you know what to build in the first place.
- msandford 10y ago> assuming you know what to build in the first place This is the heart of the problem. Nobody knows exactly what to build. Most software development is half initial coding, half bug fixing, and 90% requirements discovery. Compiler writers actually have it pretty easy once the language is defined, which is a real honest to god spec. Comparing how long it takes (and how much it costs) to write a compiler once the spec is done would be a pretty fair comparison to how long it takes to build a bridge once the design is finalized. And even bridges can turn into total disasters. Look at the Bay Bridge replacement in San Francisco: https://en.wikipedia.org/wiki/San_Francisco%E2%80%93Oakland_Bay_Bridge#Eastern_span_replacement https://en.wikipedia.org/wiki/San_Francisco%E2%80%93Oakland_... Or the Big Dig in Boston: https://en.wikipedia.org/wiki/Big_Dig https://en.wikipedia.org/wiki/Big_Dig
- arielb1 10y ago> Compiler writers actually have it pretty easy once the language is defined, which is a real honest to god spec. Compilers are typically developed in-parallel with the spec, exactly because you don't know what you want to spec before you try it out. Optimizers have it even worse - they do not have much of a spec beyond "make it fast, quickly", so all development is trying to find interesting places in existing code.
- ArkyBeagle 10y agoNASA is just the only people doing the full accounting of all costs. The rest are like a cook who drops a food item on the floor, says "five second rule" and hopes for the best.
- nickpsecurity 10y ago"NASA does that regularly. They're seemingly the only people who can afford it." Not by far. Actually, the woman who co-invented software engineering in their Apollo program made one for achieving similar reliability if your specs are right at around $10,000 a seat. That and Cleanroom were in production use in the 1980's making low-defect software. Many others showed up afterward with plenty of application to commercial products or significant OSS software. Here's a few. An early one, Cleanroom, that was often as cheap as normal development due to reduced debugging: http://infohost.nmt.edu/~al/cseet-paper.html http://infohost.nmt.edu/~al/cseet-paper.html Margaret Hamilton of Apollo started a company later to make the one below to embody the principles they used for correctness on Apollo. The papers section is also interesting. http://www.htius.com/Product/Product.htm http://www.htius.com/Product/Product.htm Lots of companies applied the B method for things like railway verification. Many successes that cost nowhere near what NASA spent. http://www.methode-b.com/wp-content/uploads/sites/7/2012/08/ClearSy-Industrial_Use_of_B1.pdf http://www.methode-b.com/wp-content/uploads/sites/7/2012/08/... Altran-Praxis does formal specs, refinement, and provably-correct (wrt specs) code with 50% premium over normal development for their high-assurance stuff. http://www.anthonyhall.org/c_by_c_secure_system.pdf http://www.anthonyhall.org/c_by_c_secure_system.pdf This mentions about three, different methods being used in products or experimental projects by defense contractors: https://www.nsa.gov/resources/everyone/digital-media-center/publications/the-next-wave/assets/files/TNW-19-1.pdf https://www.nsa.gov/resources/everyone/digital-media-center/... COGENT is doing seL4-style verification at a fraction of its cost with filesytem paper showing how practical it is: https://ts.data61.csiro.au/projects/TS/cogent.pml https://ts.data61.csiro.au/projects/TS/cogent.pml Some companies are straight-up using logic programming to execute precise specs of how software should work on startup budgets: https://dtai.cs.kuleuven.be/CHR/files/Elston_SecuritEase.pdf https://dtai.cs.kuleuven.be/CHR/files/Elston_SecuritEase.pdf
- msandford 10y agoThanks for such a thorough rebuttal! This is super useful. I can't help but note that a lot of it was spun out of NASA though.
- nickpsecurity 10y ago