What is one of the first statements made in every software license ever written in the history of computing?
Civil Engineers: Bridge falls down, PE's stamp is on designs, design faulty, is liable = Real engineer.
Software "Engineer": Program fails, money lost. "LOL must be bugz, btw: THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION." = not an engineer.
Can you imagine if an aerospace engineer submitted the designs for a new turbine engine with an asterix at the bottom of the blueprints saying "this engine design is provided as-is without warranty of any kind either expressed or implied, including, but not limited to whether or not it will blow up in flight"?
The programmers for the Space Shuttle program may have been actual engineers, because I'm willing to bet that they submitted documents guaranteeing the performance and operation of the code they wrote.
Yep:
>NASA knows how good the software has to be. Before every flight, Ted Keller, the senior technical manager of the on-board shuttle group, flies to Florida where he signs a document certifying that the software will not endanger the shuttle. If Keller can’t go, a formal line of succession dictates who can sign in his place.
https://www.fastcompany.com/28121/they-write-right-stuff
So maybe some programmers can be engineers, if they put their money where their mouths are and don't go "lol bugz, didn't buy support contract" if something goes wrong.
...you could basically kiss every kind of cheap software, home computing, mobile phones, etc - goodbye.
Because nobody would be able to afford any of that. No one in business would pay the money for thorough design and vetting of business software, let alone consumer-grade code. Ordinary consumers would find any such software prohibitively expensive (on the order or worse than trying to buy a license for a commercial Unix back in the 1980s - assuming you even had the machine to run it on).
Heck, the amount of time alone it would take to carefully design such systems, then build, debug, test, verify, etc - it would be insanely and prohibitively expensive.
I'm sure you know this.
Which is why you only ever see this kind of effort applied to software used in aerospace and medical fields (and probably to a lesser extent automotive, as well as commercial software used for engineering - like CAD/CAM, FEA, etc).
Even there, costly (sometimes deadly) mistakes can and do happen.
Regardless, though - the cost to create that software is phenomenal (and the cost to maintain it even more so - every single minor or major change has to be carefully considered and researched, then if put into place, carefully tested and vetted to ensure nothing else is broken by it).
It ultimately comes down to money and the market; if all software were held to the standards of say aerospace software, nobody could afford it, nobody would sell it, and nobody would buy it. The fact that only a few particular industries have settled on such reliability being important says it all. Had all industries and concerns wanted such reliable software, we would see it today. Since we don't, it is likely because it was deemed too expensive for little gain overall.
...and so here we are, for better or for worse.
Depends on who wins the court case, of course.
Toyota's unintended acceleration problem didn't result in any Engineers losing their jobs. They just blamed it on the old people.
Ditto the Ford Pinto's exploding gas tanks.
This Happened at Dar Al Hadassah when I worked there
If an engineer designs my bridge, and it collapses when more than one car is on it, he can't laugh at me for not giving him a spec that included that requirement. Contrast this with software, where if a database stores plaintext passwords, the programmers are probably protected if there is sufficient documentation that the bosses/customer insisted on it.
I'm grateful to have the flexibility of creating effectively magical things that can change easily to meet changing requirements, but I also feel like there will come a time when we will need to have some similar degree of engineering rigor mandated for software.
Software can also come with the same type of warranty you imply here. I'm reminded of this image https://media.boingboing.net/wp-content/uploads/2017/04/sd72...
I have work on both in Fortran - if you consider a Fast Breeder a mommy bomb
lol fuck you too, Oleksandr.
Maybe this is some good old Ukranian sarcasm wooshing over my head?
Great article though.