Hacker News new | past | comments | ask | show | jobs | submit login
The Consequences of Your Code – Tom Scott (youtube.com)
1 point by diafygi on Dec 18, 2018 | hide | past | favorite | 1 comment



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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: