3 ms·
Engineering is about tradeoffs. When you're shooting a multi-hundred million satellite into orbit it's worth the extra few million expense of formal verificati
by fer 4y ago
Engineering is about tradeoffs.
When you're shooting a multi-hundred million satellite into orbit it's worth the extra few million expense of formal verification because otherwise you might lose a gigantic investment and even kill people in the process.
When you're working on something without such extreme constraints, with vague SLAs, and limited to no business risk, then regular unit/integration/etc tests are good enough and exceedingly cheaper.
- pjc50 4y ago> When you're shooting a multi-million satellite into orbit it's worth the extra few million expense of formal verification And even then the cost effects of that are so prohibitive that SpaceX transformed the industry with their "we cannot guarantee the hoverslam landing will work first time" approach. Producing something imperfect quickly and then iterating beats upfront planning by such a large margin so often that it's not funny.
- LAC-Tech 4y agoEngineering is about tradeoffs. People can give themselves all the fancy titles they want; I don't think 99% of software development is anything approaching Engineering. (This isn't so much an attack on my fellow programmers as a recognition that this field is very young and still very immature.)
- piva00 4y agoNot taking it as an attack as I don't like to be called a software engineer either, but the definition of engineering definitely applies to software engineering as it is right now: > engineering; the discipline dealing with the art or science of applying scientific knowledge to practical problems We do apply scientific knowledge to practical problems, all compsci material of data structures and algorithms is science being applied to practical problems.
- Dudeman112 4y agoDo you know the difference between an engineer and a tinkerer? The engineer can lose his license for negligence Every engineer I know has heard something like that, and knows that it applies to them. Except for a specific kind of engineer, and I bet you can figure what job title those engineers have We do apply scientific knowledge to practical problems. The discipline isn't there, however, for the vast majority of us. In fact, most companies prefer it that way because proper design creation/validation takes a lot of time Changing a tyre does not make you an engineer. I mean, half of us consider the idea of having written requirements bollocks that only exists to make managers happy, and half of the rest are happy to trudge along without knowing what actually needs to happen Calling what most of us do "engineering" cheapens the meaning of the word
- piva00 4y ago> Do you know the difference between an engineer and a tinkerer? The engineer can lose his license for negligence The engineer that is part of an association of engineers, working in one practice of engineering that's under a licencing scheme can lose their licence, that doesn't mean that engineering is only that... You're pigeon holing engineering to only the practice performed by licenced professionals, which is not true for the meaning of "engineering" as a whole so I don't agree with your premise a priori. > We do apply scientific knowledge to practical problems. The discipline isn't there, however, for the vast majority of us. In fact, most companies prefer it that way because proper design creation/validation takes a lot of time And those companies don't have a mature software engineering process, throughout my 20 years in software I've worked in them (startups usually). On the other hand I've also worked in a couple of global tech companies that do apply software engineering practices, that do designing and RFCs to gather data and feedback about the proposals. That do apply processes for software design and architecture to maintain those systems healthy through a 5+ years timespan, etc. Other companies don't need or want the heavyweight all of this processes carry, and they might be right in doing so if their systems won't cause major pain for a large swath of the society, they can tinker with their systems and play around, I agree that it isn't hard engineering but... Is it needed for these cases? Does everything built with software need all these practices or can these practices be used by the professionals and companies that require them? > Calling what most of us do "engineering" cheapens the meaning of the word Let's agree then that larger orgs do some kind of software engineering at least, a lot of smaller companies are still in the tinkering phase and that is completely fine.
- agos 4y agothat does not make it less about tradeoffs. perhaps even more so?