Live data from Hacker News

"Software Engineering" Is Not Engineering (2005)

web.archive.org

31–40 of 62 posts

Re: "Software Engineering" Is Not Engineering (2005)

#32

Why don’t we just call ourselves programmers and save this semi-regular debate!

Because that diminishes the work people do. A programmer takes logic and encodes it for a machine to execute. Being an engineer suggests solving problems and defining logic.

The engineer title is apt in my opinion, because if you look at construction as a parallel, the architect designs the shape of the building, engineers determine how to build it so it doesn't collapse, and builders actually make it real. Programming is like digital building, the architecture and implementation details are both separate.

Re: "Software Engineering" Is Not Engineering (2005)

#33
From knowing many different types of engineers, not only does software engineering fall pretty neatly within that group of jobs but also software is an integral part of their engineering practices. I know some people who are designing planes and if software isn't an engineering discipline I guess I need to tell them they recently became not engineers (though maybe because they occasionally use physics equations the author would say they still are. It's a silly distinction). The argument seems mostly based on their personal definition of engineering, which doesn't seem useful to me (a quick reading of a dictionary would make it seem that software engineering false very neatly within definition 2b https://www.merriam-webster.com/dictionary/engineering)

Overall though I found this post incredibly hard to read. It's incredibly long and wordy though that's par for the course for these petty semantic arguments.

Re: "Software Engineering" Is Not Engineering (2005)

#34
post #27

Not even “engineering” is engineering. It’s equal parts art, craft, and science. And I say that as a classically trained engineer turned software engineer. Every engineering design is a compromise - it can be light, or easy to make, or robust, or cheap, or anything else driven by requirements. There is no such thing as an optimal design unless you pin the requirements down really tight - and this is where the art par…

Did you just call me poet sorcerer? Lol

Cool analogies

Re: "Software Engineering" Is Not Engineering (2005)

#35
post #27

Not even “engineering” is engineering. It’s equal parts art, craft, and science. And I say that as a classically trained engineer turned software engineer. Every engineering design is a compromise - it can be light, or easy to make, or robust, or cheap, or anything else driven by requirements. There is no such thing as an optimal design unless you pin the requirements down really tight - and this is where the art par…

Right! I think a lot of people, who have not done a lot of "things you can kick" engineering, have a very romantic view of it. Especially the relationship with whoever is nominally setting the goals of the project.

The physics works perfectly, of course. But physics is only a third of the constraint in engineering. The other two thirds are project goals and convention.

Project goals are horribly underspecified, every time. It's incredibly rare to be given a project that is completely constrained on that side, and if you do get one, most of the time it's physically impossible to achieve. This is because the people who write those specifications not doing engineering, they're doing marketing or sales or just had a cool idea. Sometimes that can even be the engineer themselves :-) So it's up to the engineer to fill in the gap, and they do it with experience and a sense of aesthetics, of sorts.

Convention is what constrains the physical possibilities of engineering to the practical. Yes, you can build anything and make it work, possibly even better than what everyone else builds. But you will have to invent and construct a lot of new technologies before you can build your perfect mousetrap. So, you settle on standard components and build a decent one instead. But this introduces a gap between physics and engineering, too. A bit of no-man's land that you can reach into to produce truly great results. But it's up to the engineer to know when it's worth it.

Re: "Software Engineering" Is Not Engineering (2005)

#36

Dave Farley has done some writing on what makes "Software Engineering" "Engineering" e.g. his 2021 book " Modern Software Engineering" > Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software. https://www.davefarley.net/?p=352 https://www.goodreads.com/en/book/show/57345270-modern-softw... https://productdeveloper.net/mod…

Dave Farley's book is really good, and I'd highly recommend it.

However, I do have an issue with his focus on applying science in the definition, even though it doesn't come across in his final conclusions. In the history of engineering, that's a relatively new development. It started, to some extent, in Europe in the 1700s, but it really took off in the 1920s and exploded in the United States after World War II (1940s-1950s). It culminated with the Report of the Committee on Evaluation of Engineering Education (the Grinter Report) in the mid-1950s.

This isn't to say that science isn't important to engineering, since it absolutely is. Science provides knowledge used to better understand the world being changed by engineering. But there are also plenty of examples of engineering going ahead of science - the steam engine, the airplane, generative AI. We didn't fully understand the governing rules before the technology existed.

Any definition of engineering needs to be broader. Ferguson (Engineering and the Mind's Eye), Florman (several works, but primarily The Existential Pleasures of Engineering), and Vincenti (What Engineers Know and How They Know It) all explore ways in which engineering can't rely on science alone. I think Koen (Discussion of the Method) puts it best, where the application of science is one heuristic that engineers may choose to draw upon.

Re: "Software Engineering" Is Not Engineering (2005)

#37
post #28
post #23

Fine, but then what am I? I'm certainly not a scientist. And calling me a "programmer" is like calling an accountant a "calculator". I design solutions to computational problems. I also happen to implement them a lot of the time, because code was trivial to implement even before LLMs. What does that make me if not an engineer? I'm open to suggestions.

Software developer?

If someone told me I couldn't call myself an engineer and instead I had to call myself a software developer, I'd turn around and tell them I just forgot all my theoretical computer science, and of course we can do a bubble sort on the multi-terabyte database, LOL.

Re: "Software Engineering" Is Not Engineering (2005)

#38

Why don’t we just call ourselves programmers and save this semi-regular debate!

Centuries of accumulated respect for the word "engineer", implying a specialization that can't be simply replaced with other skill sets. That is: prestige and therefore economic incentives.

Re: "Software Engineering" Is Not Engineering (2005)

#39
The article is "not even wrong". Most of the argument just circles around an inconsistent definition of what "real world" means.

> Remember "imaginary numbers" from algebra? You could do funky stuff with them like take the square root of negative nine. Imaginary numbers are generally useless for the physical world that we experience. However, they turned out to be very useful in the field of electronics. More specifically, they had predictive power in the field of electronics. Using imaginary number math, one can predict behavior of electrons and the accuracy of such predictions in models can be measured.

Like here, I struggle to understand what the point is. Is predicting the behavior of electronics "useless for the physical world we experience"? And that's ignoring the author's apparent ignorance of all the other ways in which complex numbers are useful in the physical world besides taking negative numbers' square roots.

Re: "Software Engineering" Is Not Engineering (2005)

#40
post #13

Earlier quoted context omitted.

Engineering is a regulated term, afaik that’s what underlies the debate, it’s not about whether English has changed.

Ok, then there is regulated engineering and unregulated engineering. If you are doing engineering and it's not regulated (for many different reasons) it does not make it any less engineering. Animals do engineering, insects go engineering, it is based on science (empirical), whether they know it or not. We need to stop redefining terms.

> Animals do engineering, insects go engineering, it is based on science (empirical), whether they know it or not.

I've never heard "instinctively doing things without conscious choice" to be engineering. That opens it up so wide it's meaningless - is blinking to rewet my eyeballs engineering? How about farting to relieve internal pressure?

And "empirical" explicitly means you consciously understand the reasons, so your comment is self-contradictory as well. Basically, words have meanings and you don't seem to know them.

Post reply on HN