←back to thread

122 points foxfired | 1 comments | | HN request time: 0s | source
Show context
lijok ◴[] No.43563976[source]
In most companies, writing code is the last thing developers (should) do. You're there to achieve business objectives, and you were hired because someone thought your experience and skillset will be necessary to achieve those business objectives. Sometimes those objectives are met with an excel sheet, sometimes they're met by losely integrating various 3rd parties, sometimes they're met by integrating various libraries, and sometimes it requires treading new ground and writing some real code.

The best web dev isn't the one that knows .Net, React, Svelte, GraphQL, micro-frontends, etc. The best web dev is the one that can convince their manager that their business objectives can be achieved by using WordPress.

replies(8): >>43564091 #>>43564105 #>>43564241 #>>43564351 #>>43564487 #>>43565072 #>>43565100 #>>43579153 #
noosphr ◴[] No.43564351[source]
>The best chemical engineer isn't the one that knows the pressure at which chlorine tanks fail, they are the one that knows chlorine gas can be stored in a garage in coke bottles.

I look forward to the day that software 'engineers' are held accountable to the same degree that all other engineers are.

I've written software for industrial machinery that can kill people if it went wrong. It's amazing how much your views on software change when you realize that your accountability starts at manslaughter and goes up from there.

A human life is valued at around $10m in the developed world, incidentally my first real job was fixing an excel spreadsheet that caused $10m in trade losses after the API it called for exchange rates went stale.

I'm not saying that we arrest everyone who writes a spreadsheet to help them with their job. But _someone_ should have their head on the line when it becomes a business process without oversight that can cause millions in losses, damages or bills.

replies(6): >>43564390 #>>43565055 #>>43565366 #>>43566953 #>>43567147 #>>43567695 #
Mountain_Skies ◴[] No.43564390[source]
I look forward to the day when software engineers have the autonomy that licensed engineers have, so they can tell managers no and if the manager goes around the engineer, the manager and the company end up directly liable for the damage they create.
replies(1): >>43564569 #
godelski ◴[] No.43564569[source]
These are in fact the same thing. It is because an engineer can be held liable that results in them being willing to say no. In general, they probably won't be prosecuted, but a common reason for this is that there will be written records of engineers telling management that there are concerning risks. This also results in the job of a Professional Engineer, who is a person who legally puts themselves on the line. They get paid very well and for good reason, they have a lot on the line themselves.

I suspect that a big reason CS is not held to the same standards is due to abstraction and that it is still new. But we do live in a time where bad code can get people killed (control systems are the easiest examples), just as building a faulty bridge will. I just hope we don't need a Tacoma Bridge to cause change. Obviously it is harder to figure out things that are more abstract like Social Media (can provide both good and harm).

But I'd say, you can always say no. If you're not saying "no" now, that's still a choice you've made. A job is very persuasive, and I'm not saying you're bad for just keeping your head down, just that people should consider where they'd draw the line. The line is personal and different for everyone (which is okay!). Having taken traditional engineering courses, I'll note that ethics is frequently discussed and you're likely to be told you should try to define your line before you asked to cross it. If you don't, you'll likely to cross the line without knowing, as you just didn't know what it looked like. You can always redefine the line as you get more resolution (it continuously updates) but it's much harder to say "no" when you haven't given it much thought.

replies(1): >>43564740 #
necovek ◴[] No.43564740[source]
The main reason we are at a point we are is that it is possible to build very complex software systems cheaply: both the tools and building blocks are abundant and available to everyone.

If an engineer tried to build a skyscraper or a bridge, they'd meet challenges other than them having knowledge or professional certification.

And to your point, if anyone ever asked an engineer to insert another floor between 8th and 9th floor of a 15 story building, they'd laugh at them. In software engineering, this is possible even if hard.

And finally, because of software living a much different life, it will be hard to define criteria for good software.

replies(3): >>43564877 #>>43565140 #>>43566981 #
nearting ◴[] No.43564877[source]
> And to your point, if anyone ever asked an engineer to insert another floor between 8th and 9th floor of a 15 story building, they'd laugh at them. In software engineering, this is possible even if hard.

Ah yes, another cocktail party idea [1] where a software engineer pretends like they understand civil engineering.

[1] https://danluu.com/cocktail-ideas/

replies(2): >>43565163 #>>43570387 #
1. godelski ◴[] No.43565163{5}[source]
Obviously never been to floor 7 1/2[0]

[0] https://www.youtube.com/watch?v=T2Y7oo3iB40