4 ms·
Personally I don't need to talk with "traditional" engineers to have an opinion there, as I am mechanical engineer that currently deals mostly with software, bu
by wolvesechoes 1y ago
Personally I don't need to talk with "traditional" engineers to have an opinion there, as I am mechanical engineer that currently deals mostly with software, but still in the context of "traditional" engineering (models and simulation, controls design).
Definitely making software can be engineering, most of the time it is not, not because of the nature of software, but the characteristics of the industry and culture that surrounds it, and argument in this article is not convincing (15 not very random engineers is not that much to support the argument from "family resemblance").
- gabrielpoca118 1y agoBut what about other engineering fields? From what I understand, if you compare it to chemical engineering, you have many more similarities, because you’re doing Hypothesis -> Experiment -> Analyze -> Refine -> Repeat, which seems very similar to what we do in software
- wolvesechoes 1y agoMechanical engineering also uses prototypes, iteration, lab testing etc. Building architects build multiple models before the first shovel is put into the ground. Software is clearly different than "hardware", but it doesn't mean that other industries do not use experiment and iteration.
- gabrielpoca118 1y agook you lost me then xD I was trying to understand what you meant by it not being engineering most of the time.
- ozim 1y agoI will add this link once more. This is the talk on real software engineering: https://www.youtube.com/watch?v=RhdlBHHimeM https://www.youtube.com/watch?v=RhdlBHHimeM
- hgomersall 1y agoEngineering is just about wielding tools to solve problems. You don't need to use formal methods to do engineering in general. Sometimes they're useful; sometimes they're required; often they just get in the way. In the context of software vs other sub-disciplines, the big difference is in the cost of iterating and validating. A bridge has very high iteration cost (generally, it must be right first time) and validation is proven over decades. Software has very low iteration cost, so it makes much more sense to do that over lots of upfront design. Validation of software can also generally be implemented through software tools, since it's comparatively easy to simulate the running environment of the software. Other disciplines like electronics live a little closer to a bridge, but it's still relatively cheap to iterate, so you tend to plan interim design iterations to prove out various aspects.
- closewith 1y ago> In the context of software vs other sub-disciplines, the big difference is in the cost of iterating and validating. No, the big difference is that in the Engineering disciplines, engineers are responsible end-to-end for the consequences of their work. Incompetence or unethical engineers can and regularly do lose their ability to continue engineering. It's very rare that software developers have any of the rigour or responsibilities of engineers, and it shows in the willingness of developers to write and deploy software which has real-world costs. If developers really were engineers, they would be responsible for those downstream costs.
- hgomersall 1y agoThere are plenty of engineering of physical things where nobody has or takes responsibility. Equally, there's plenty of examples of software where careful processes are in place to demonstrate exactly the responsibilities you discuss.
- closewith 1y ago> There are plenty of engineering of physical things where nobody has or takes responsibility. That is by definition not engineering. > Equally, there's plenty of examples of software where careful processes are in place to demonstrate exactly the responsibilities you discuss. Software engineering of course exists, but 99%+ of software is not engineered.
- jmholla 1y agoI think it's still be worth your time to check out the articles as they talk about other fields of engineering and how they compare to software AND mechanical.