3 ms·
I don't understand this kind of inferiority complex. In software engineering we can often afford to wing it in a way that other kinds of engineering can't becau
by stdbrouw 4y ago
I don't understand this kind of inferiority complex. In software engineering we can often afford to wing it in a way that other kinds of engineering can't because they are strongly locked into what they've built already and because human life is at play. You can't really redo the foundation of a pre-existing building without a truly heroic amount of work, and you can't reboot a person if their pacemaker fails. When presented with those same conditions, software engineering tends to be just as rigorous as any other kind of engineering, e.g. NASA, medical software, and so on. I'd argue that is what defines engineering: you optimize for the things that matter and don't get carried away trying to pursue the most elegant or robust system at all costs – that would be science or art. Your competitor who is not cutting corners won't beat you with their 99.9% product, they will just never get off the ground. Meanwhile, you're at 99.5% and climbing.
- cratermoon 4y ago> In software engineering we can often afford to wing it in a way that other kinds of engineering can't Ariane flight V88 haunts your nightmares.
- Swizec 4y agoGalloping Gertie haunts civil engineer’s nightmares. Hyatt Regency walkways too. Apollo 1. Plenty of examples, actually. All engineering fields have their share of catastrophic failures. For better or worse, that’s how we learn.
- MrJohz 4y agoDifferent problems also have different scales. The road that they've repaved outside my house has had far less scrutiny than the new bridge they've built down the road. And NASA have very different coding guidelines to Shopify.
- toss1 4y ago>> In software engineering we can often afford to wing it in a way that other kinds of engineering can't ... Just because you can doesn't mean that you should. Of course, with software that is truly noncritical, handling failure modes can be optimized away in favor of shipping-the-new-version sooner. That doesn't mean that it is a good thing. The fact that this is so prevalent in the software industry is why the general public sees most software and indeed technology ("software is eating the world...") as a plague — time and time again, NO effort is made to ensure that things fail-safe, or even that they fail-gracefully. So the user experience is that tech is good enough that we sort of have to use it (it's better than paper), but so bad that it is endlessly frustrating, whether it's endless glitches in client or web apps, data that gets mysteriously lost or corrupted, Bluetooth still screwing up connections, UI 'designs' that hide key functions behind a 'clean' interface that is nonetheless inscrutable for the occasional user... the entire industry has created a world no one wants to live in, one little decision at a time. (And that doesn't even begin to account for software that kills people by bad decisions or oversights.) The fact that an article such as this one is even necessary — that it is NOT simply assumed that an absolutely key part of the design process of every piece of software is to consider all failure modes and how to handle them in a way that is safe and graceful — casts a real shadow over the software industry, and shows why it is still separate from real engineering (despite software often being more complex).
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- jrockway 4y agoAfter reading https://www.hillelwayne.com/post/are-we-really-engineers/ https://www.hillelwayne.com/post/are-we-really-engineers/ I am convinced that Software Engineering is the same as any other engineering field. Sure, it looks like like and death is at play in the other fields and all we do is debate what color fonts should be on a web page, but their projects seem a lot like that too. In every engineering field, projects usually go well enough to get another project, which is the best you can really hope for in the real world. Our whole "I can't do work today, I have to apply these security fixes 83 levels deep" also sounds a lot like: https://practical.engineering/blog/2022/8/2/you-spend-more-on-rust-than-gasoline-probably https://practical.engineering/blog/2022/8/2/you-spend-more-o... All in all, yeah, I don't understand the inferiority complex. Engineering always looks amazing to people that aren't in the thick of it, but we hide a lot of the flaws, and fix the other ones through iteration.