If the engineers dealing with the Citicorp center had dealt with the problem like software engineers, the fix would have been to update documentation in confluence to not expose the building to high winds and that would have been the end of it.
If the engineers dealing with the Citicorp center had dealt with the problem like software engineers, the fix would have been to update documentation in confluence to not expose the building to high winds and that would have been the end of it.
Every other discipline has education requirements, codified standards for how to do things etc.
I don't know you but i bet that if you and me were locked up in a room together for a month we wouldn't be able to 100% agree on "codified standards for how to do things" :)
Industry isn't mature enough for that and it's perhaps doubtful that it will ever be. See the halting problem.
Just because there are unanswered questions that doesn't mean we can't have bare minimum codified standards.
Furthermore, standards aren't invalidated just because practitioners disagree with them. Plenty of <insert engineer type>s disagree with the standards body of their respective field, they still follow the standards out of fear of prosecution or simply as a path of least resistance and when those standards are found to be defective, they (generally) evolve.
So, functional, imperative or OOP? :)
> Just because there are unanswered questions
The halting problem is undecidable. Not undecided. I.e. it has been solved and the answer is "you can't".
I don’t think it’s necessary to agree completely. You could start by codifying a minimal set of things that the majority of people agree on (user data sanitisation, authentication handling etc) and then build on it over time.
The standards could also help codify more meta things, like vulnerability policies, reporting and outages. This would be helpful to form a dataset which you can use to properly codify best practices later.
The main problem is that this increases the bar for doing software development, but you can get around this by distinguishing serious software industries from others (software revenue over a certain size, industries like fintech, user data handling etc)
For comparison, electrical engineers started introducing things like national standards for plugs by 1915.
As for the rest, anything that brings computing to level of the rest of other professionals, has my signature.
A Software Engineering professor of mine used to say, many applications are akin to buying shoes that randomly explode when tying shoelaces, whereas a minor defect on real shoes gets a full refund.
The irony is there are actual disciplines in software that are worthy of being called "engineering"--how the hell does an engine ECU work with the level of precision that it does? ABS systems? Hell, how about most electronic control systems on an airplane?
These are some of the most impressive feats in software development, and I've heard near 0 about any of them.
Yet the "industry" is hyper-focused on mashing together "containerized" monstrosities to put strings in databases, or to find a new way to add a chatbot to something that doesn't need it.
In another area it might be the complete insufficiency of formal botany credentials among Dutch companies growing and trading tulips.
You realize that you'd need someone at MS to take liability for Windows before you can sign off anything running on Windows?
Or someone at Google if you do a web app that only runs on Chrome, not to mention other browsers.
What OS renders the monitoring screens for air traffic control systems, or railways signalling? Those both have rigorous software engineering behind them — railway signalling is the original of engineered, safety-critical logic systems, starting with mechanical interlocks in 1843. (The signalman physically couldn't move certain levers into bad configurations.)
If all engineers are held personally liable for their code, when a business has faced a documented rejection, they’ll struggle to hire someone else to take on that risk.
They can always hire another engineer. They only accept it, some times, because they won't find a certified engineer that says "yes", and because they doing it themselves is a crime.
That equates to a huge amount of government intervention on the lives of everybody. And even then, fails way more often than expected.
Now, we are talking about a case where criminal justice failed to uphold the defendants rights to a fair trial. Most probably because of corruption. Do we really want to bring that huge amount of government intervention into this context?
You start off by having a Professional Liability insurance policy, your company will generally pay for it unless you are a consultant/contractor in which case you bring your own policy. Depending on size of operation, your employer may even indemnify you in the employment contract specifically for even negligence lol.
You then do your job correctly. The laws only go after you for liability if you were negligent, i.e. you skipped protocol and policies, you skipped best practices and couldn't justify it, etc. If you weren't negligent and just made an error, great, your insurance covers you. Insurance can also cover negligence too depending on policy, lol
https://www.nspe.org/resources/professional-liability/liabil...
Are we going to have international protocols and policies on the best language to use, how to do SQL queries and CSS? no
In a situation like this an insurer is strongly motivated to prove that the company is not at fault, because it doesn't want to pay the bond. The company is also strongly motivated, even though insured, to prove that the company is not at fault, because it doesn't want to have its future insurance rates affected or be sued by the insurer for breaches of terms.
Either way, it doesn't help the people affected. Not unless they have personal insurance against workplace computer system errors, in which case their insurance provider is also not motivated to pay out, or to battle a corporation as large as Fujitsu unless there's chance of a class-action suit.
Lets stop glueing "engineering" to any job title where someone knows how to write a bunch of code lines.
[NB I am frequently reminded of this point by my wife who is a solicitor].
Another important part is that one might be liable when signing contracts as the responsible Engineer in a project delivery.
This title inflation of calling web programmers "engineers" is absurd.
Strangely enough, 30ya, my friend getting his EE Masters was mostly taking programming courses.
But the real culpability here are the upper management who said "we don't believe you" (at the most generous interpretation) when the postmasters said that the system was buggy.
> Although many subpostmasters had reported problems with the new software, and Fujitsu was aware that Horizon contained software bugs as early as 1999, the Post Office insisted that Horizon was robust and failed to disclose knowledge of the faults in the system during criminal and civil cases
Another thing is that software should be treated as just a tool to help to fulfill legal/accounting requirements. If the software is wrong then the required documents are going to be wrong and that's supposedly auditable. This way there are incentives to produce/finance correct software because what is going to be judge and relied upon is not software itself but what it produces (the documents).
Calls to make software engineers responsible will just result in fewer competent people willing to do the work. The justice system is incompetent enough already. Can you imagine lawyers discussing if your off by 1 bug was "criminal negligence" or just a normal mistake that happens? If you going to jail depends on what they decide you will just not take the job and no one sane/competent is going to take it either. The end result is going to be over payed morons writing software and then sometimes going to jail for it - not an improvement over current state of things.
If you could show a constellation of unit and integration tests, well defined schemas and interfaces, for both your code and your dependencies, and a responsible engineering culture then the chances of going to jail are going to be next to nil.
People recoil at the idea only because they see that very very little implemented today would be work that anyone would stand by.
They could just as easily have poured their money into something else. As for von Braun himself, he got employed and looked after for the rest of his life despite being part of the decision (I think) to use slave labour to build his rockets - and that really was a management decision.
The way things are now is because we as an industry have decided that "move fast and break things" is acceptable, and our culture reflects that. So we need to change the culture.
Also we couldn't possibly put the burden on the company that makes improbably low bids - no! No we must put the blame on the peons where it belongs.
In a just world, he and his co-conspirators would go to jail for what they did, but I don't see it ever happening.
Your proposal is a brilliant and necessary idea, but we don't run the world, my friend. The people that run it only care about money, and brilliant ideas cost serious money, not to mention committment and patience to follow through.
Changing any entrenched status quo is a real slog, for sure. That's why our precious Earth is heating up, daily, to give just one example.
Politicians too. And journalists.