
The Consequences of Your Code – Tom Scott - diafygi
https://www.youtube.com/watch?v=LZM9YdO_QKk
======
diafygi
Before getting into software, I was originally trained as a chemical engineer.
If you took this talk and replaced "code" with "chemical plant", it's pretty
much exactly what instructors have been drilling into students' heads for the
last century of chemical engineering. Replace "code" with "bridges" and you'd
have the same talk for the last several centuries (if not several millennia)
for civil engineering.

Being able to recognized and prevent bad consequences is _part of good
engineering_. We've gone through this safety enlightening process so many
times in other fields of engineering, it's easy to predict how it will go in
software engineering. It will generally go one of two ways:

Path #1: In chemical engineering, there's a phrase, "Every regulation is
written in blood" (I'm sure other field have similar sayings). Basically, it
means that many chemical plants were built that blew up and killed a bunch of
people, and the fallout was a bunch of new policies requiring various safety
measures to prevent it from happening again. It's taken centuries of death to
get to the point where we are now in chemical engineering. Civil, mechanical,
marine, and other older types of engineering seem to have gone this slow,
long, deadly path.

Path #2: Aerospace engineering basically instituted from the start a culture
of safety and preventing bad consequences. Because bad consequences were so
immediate (planes crashing) that they were able to skip the centuries of death
and jump straight into modern engineering best practices. I think the same is
true for Electrical engineering (though I don't know much about the history of
EE).

Unfortunately, it looks like Software engineering is starting to go down Path
#1. I'm just not feeling like most software engineers appreciate how seriously
they need to be treating their work, which means we're in for decades or
centuries of the death-regulation-repeat cycle for Software engineering.

It makes me very sad that we, as a new field of engineering, are choosing the
path with the most deaths rather than following the path of more modern
engineering fields :(

Finally, if you're thinking, "Well it's the business' fault or the market
forces or capitalism or..." Please realize remember that prioritizing safety
is _a core part of being a good engineer_. Engineering is where the buck stops
on safety. It's part of the gig. You think capitalism cares about safety? No
way! So remember when you try to pass the buck on bad consequences, that you
are the last line of defense for not hurting others, and you just failed your
responsibilities as an engineer.

