What Should We Do to Prevent Software from Failing?
sloanreview.mit.edu
What Should We Do to Prevent Software from Failing?
1–10 of 128 posts
Re: What Should We Do to Prevent Software from Failing?
#2Re: What Should We Do to Prevent Software from Failing?
#3Re: What Should We Do to Prevent Software from Failing?
#4fast forward 25 years and we'll need a government approved license to open dev tools in a browser.
I hope I am wrong.
Re: What Should We Do to Prevent Software from Failing?
#5Re: What Should We Do to Prevent Software from Failing?
#6"mit.edu"
Uh, huh.
Re: What Should We Do to Prevent Software from Failing?
#7Licensure for software developers will only benefit the professional liability insurance industry.
Re: What Should We Do to Prevent Software from Failing?
#8What is funny you get the same stuff in construction industry. Companies take shortcuts, architects take shortcuts and there are buildings, bridges collapsing.
I just don't like dichotomy "proper engineers, mechanical, construction", "kids in the fog, software devs". There are tons of reliable software, and tons of buildings that might collapse tomorrow because of wind/temperature/vibrations which never were considered by any builder or architect...
Re: What Should We Do to Prevent Software from Failing?
#9ah, here we go fast forward 25 years and we'll need a government approved license to open dev tools in a browser. I hope I am wrong.
We've only been building scalable docker microservice agile jira lambda functions for a few years now. Curious to see where time takes us. Change takes a while to come along, companies and people have been getting hacked for many years but i havent heard any whispers of change.
Re: What Should We Do to Prevent Software from Failing?
#10We have already solved large areas of common classes of bugs at the language level, through strong static typing, memory safety and safe concurrency (Rust is the vanguard here but there are lots of languages that tackle these problems in effective ways).
Institutional inertia (technical debt) is the only reason why we can't apply these solutions to all software. I work on a PHP app with code that goes back 15 years. To convert it to rust we'd have to invest basically the same as the operating cost of the company. That'll never happen.
Once "safe" languages are used, there are still bugs of course. But what are those bugs? Failures of thought, plain and simple. Structural engineers work within the limits of physical reality and these constraints greatly limit the range of possible creation, thus also the range of possible failure.
Software has limits too, in memory, storage and processing capacity. But otherwise it works entirely in the realm of pure thought.
Well defined specifications that can be turned into concrete tests can solve a lot of these problems, too. (But this is also very expensive).
But even if you have specs and tests, there is no magic formula for ensuring your ideas are always sound. If the idea is wrong you can't even write tests to ensure it's correct. "Correctly" functioning components can have complex, difficult to predict side-effects when composed into complex systems.
We do have everything we need to write highly reliable software. But solving the software failure problem is the same task as solving the erroneous thinking problem. I don't know that we meat-sacks can "solve" that problem.