4 ms·
Most of software isn't engineering, it's just building. It's like a lot of these custom car/motorcycle builders vs actual engineers designing for a major manuf
by giantg2 1y ago
Most of software isn't engineering, it's just building.
It's like a lot of these custom car/motorcycle builders vs actual engineers designing for a major manufacturer. You are both building a product but one places a lot more rigor on the science, data, and testing behind the decisions. That doesn’t mean the custom builders don't build good stuff, just that you won't get answers to things like how much force a particular part can take or how much energy it will absorb in a crash.
In software, you might have some people still doing real software engineering, but they are in sectors that take documentation and testing more seriously. Not that every player takes this dedicated approach, but potentially parts of auto, aviation and defense fall into this.
- Marshferm 1y agoIf I understand your analogy correctly, what science in involved directly in software dev other than used directly in already existing models like medicine? (and even this isn't exactly science, as medicine is practice, not analytic discourse). Engineering relies on science, particularly building, vehicles, etc.
- bogdanoff_2 1y agoI'm thinking things like: do you know what's the latency and throughput of your system, and how it is affected by different conditions? Based on this, people who work on real-time systems (including video games) would be the closest thing to the engineers of the software world.
- Marshferm 1y agoRight, but then it's A/B cog-sci, which I think is no longer science, but practice completely under software, and in a sense, practice that's no longer science, but behavioral modification.
- 9rx 1y ago> Most of software isn't engineering, it's just building. Other way around. The difference between engineering and building is that building refers to the building of a component in isolation, while engineering is about the building an entire system through the combination of multiple components. Most software — and all software that is actually used — is a built system. > but one places a lot more rigor on the science That'd be "professional engineering"; sometimes referred to as PE for short. We're talking about engineering (sans professional) here.
- HPsquared 1y agoA house comprises many parts. A custom motorcycle has many parts. These things are designed and built to established practices, but in 99% of cases they aren't really "engineered" with calculations and formalised decision-making processes and the like.
- 9rx 1y ago> A house comprises many parts. A custom motorcycle has many parts. Hence why they are engineered. I suspect you mentioned houses because the people who build houses are often referred to as builders, but that is because the people working houses often only do work on a single component. The system as a whole is referred to as engineering, though. > with calculations and formalised decision-making processes and the like. You too seem to be confusing "engineering" with "professional engineering". While societies of professional engineers would like people to think that engineering is defined by mathematical and scientific rigour, that's not how anyone actually uses the term in practice. The "software engineering" label wouldn't exist if they did.
- gosub100 1y agoThen you get paradoxes like why the rigor doesn't work in practice. These expensive CS books mathematically prove a map has faster access than a vector because it uses a binary tree. Yet the vector works faster because the CPU pipelines sequential operations very efficiently.
- layer8 1y agoCS proves that a binary tree is faster asymptotically, and that’s still true and very much of practical relevance regardless of the CPU you use.
- auggierose 1y agoNo, they don't. A vector has faster access than a binary tree, O(1) vs. O(log n). Maybe read some of those expensive books. If you talk about editing the data structure, then it depends.
- amelius 1y agoMost of software is just plumbing.
- gchamonlive 1y agoIt's solving and building, but most of all it's language. It's all language. Either telling the machine what to do or coordinating a group of people cohesively.
- ratelimitsteve 1y agoI actually read an interesting study, probably here, about software engineers. It turns out that for as much emphasis as we put on mathematics we actually tend to be better at language, and that even our penchant for maths is less in the way of calculation and more in the way of definition and expression (which is to say, making it the language numbers speak and learning it that way).
- sam_lowry_ 1y agoIt would be nice to have a reference.
- gchamonlive 1y agoThis one perhaps? https://www.washington.edu/news/2020/03/02/not-a-math-person-you-may-be-better-at-learning-to-code-than-you-think/ https://www.washington.edu/news/2020/03/02/not-a-math-person...
- HPsquared 1y agoThat's where engineering fits in. It's in the knowledge and information space, you make things like plans, arguments, decisions, documents. That's not to say it all needs to be written down; someone can do the "engineering" of a small project all in their own head and then implement it themselves. The engineering process itself is a form of knowledge work. A single person can do both tasks of course.
- cachius 1y agoYou mean communication, the transfer of ideas. Already hard between humans, machine language and operation is completely foreign.
- 1y ago
- reedlaw 1y agoAgreed, in the sense that software development is an iterative process of trial and error similar to custom car building. But software isn't like a car. It's more like a car factory. It should produce something of value repeatedly.