I wonder why would a programmer go and work on a code when he is always in danger of going to prison for every mistake he makes. We all know that bugs in software happen and it’s impossible to write bug free code
I wonder why would a programmer go and work on a code when he is always in danger of going to prison for every mistake he makes. We all know that bugs in software happen and it’s impossible to write bug free code
The go-to counterexample is the code that ran on the space shuttle, which took years and hundreds of people and $200 million to produce. I have been told that nobody has ever found a bug in the final production system. The development practices involved in creating it seem like they would make most software engineers want to curl up and die. One tidbit from the following link I found is that 60 people spent years working on the backup flight control system, intended to never be used!
This cop out of "Software gonna have bugs" as a way to evade all liability doesnt hold in any other profession. I dont see why we get special treatment here.
Nobody calls the emergency services out because they assume cars are going to crash and plan accordingly, so why does the software engineering industry get called out for assuming software will go wrong and planning accordingly?
You don't go to prison for "mistakes", you go to prison for criminal negligence.
Given that you can go to prison for criminal negligence in any other profession (e.g. a dentist who exposes thousands of people to HIV), why would programmers be the one category of job that's exempt from criminal laws?
The difference between the two is what a politically-motivated prosecutor can convince a jury of.
The hypothetical gullibility of juries doesn't mean that we shouldn't have laws against murder, juries, or prosecutors.
Fail fast!
...sorry for the sarcasm but this is a message student engineers internalize in part because it is pushed by companies they want to work for but can't explain why. They don't have strong boundaries between why it might he a justifiable philosophy for Facebook but not for Boeing.
But in response to your comment, engineers have a very clearly defined set of rules, collectively called "the code". As long as they design to them you'll be free of criminal negligence (at least during the design & development phase, things get a little murkier in construction).
More to the point, engineering for the real-world means layer upon layer of uncertainty. e.g. civil/structural engineers use materials we can't model (we use pretty-good approximations for concrete behavior) in conditions which are unknown (soil) to resist forces we can't predict (weather, earthquakes, dynamic response to loading). How does the code deal with all this uncertainty? Slap safety-factor after safety-factor onto everything. Whoever comes up with a method for more effectively dealing with this stuff will make millions.
The most obvious example being that we design structures to resist a 1-in-100 year storm. In other words, we expect a structure to be within spitting distance of failure every hundred years. But as long as you design to that standard, you're fine.
I don't believe they all ask for incredible amounts of compensation
Also, the software world doesn't have the benefit of millennia of accumulated best practices.
Finally, the senior engineers and architects who are licensed to sign off on things they will be held criminally liable for do get incredible amounts of compensation as compared to their more junior colleagues.
On the other hand, a minor screwup in software is far more likely to cause catastrophic failure because we just don't know how to workably build large, robust systems out of code.
Nit: meeting the requirements of law isn't barely collapsing; that requirement has so many safety factors built-in because the building code has to approximate so much. The approach isn't that dissimilar from how that "anybody" you mention would build their bridge that doesn't fall down: by guessing safely.
Effectively, they test things to destruction, then publish minimum requirements. So if you want to pressurise your reactor vessel to reactor vessel to 30 atmospheres, you can pretty much look up a table that'll tell you precisely how thick the reactor walls need to be for each of the commonly used materials. If you want to use something uncommon, then you need to pay somebody to test it.
If it fails in a catastrophic fashion, you can expect to be asked to show that you did your due diligence, and there are extenuating circumstances a reasonable engineer could not have been expected to foresee and plan for. Or that you did foresee it, and somebody else chose to accept the (clearly defined) risk.