Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Software engineers are engineers in the sense that we employ the same scientific methodology to design systems to a target level of reliability.

However, because the majority of software does not affect the safety of human lives (the exceptions being software that operates critical medical equipment, avionics on aircraft and rockets, etc.), the target level of reliability is not nearly as high as in the engineering of objects that do affect the safety of human lives (like buildings and bridges). Humanity also has centuries (indeed, millennia) more experience with the construction of physical objects, although rigorous scientific design of them only began in the last few; and even modern era engineering fails to account for all factors (e.g. the Tacoma Narrows bridge that collapsed due to oscillation induced by wind: https://en.wikipedia.org/wiki/Tacoma_Narrows_Bridge_(1940) ). Modern engineers operating today still make mistakes that cause death, such as the collapse of the construction crane in Seattle in 2019: https://en.wikipedia.org/wiki/Seattle_crane_collapse (due to wind and unsafe operation IIRC).

If you're building a website or app where people can order food from restaurants and creating a market for couriers and consumers to connect, then no aspect of your software has any affect on human life. (The software might tell the courier where to drive, but they are responsible for driving safely to those locations.)

When we consider software that is responsible for the operation of autonomous vehicles, or the avionics on aircraft or rockets, then the level of engineering reliability is targeted to match or exceed the reliability of the physical systems. A great article on the software engineers who worked for NASA on the Space Shuttle's software: https://www.fastcompany.com/28121/they-write-right-stuff

A software engineer is a person who can build software to a target level of reliability. That the targets are not always as high as "responsible for safety of human life" does not mean it's not engineering. I would give AWS's automated theorem-proving about the correctness of their TLS implementation as an example of a feat of software engineering that targets a high level of reliability: https://aws.amazon.com/blogs/security/automated-reasoning-an...



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: