logoalt Hacker News

SideburnsOfDoomtoday at 12:18 PM2 repliesview on HN

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/modern-software-engineering/


Replies

TomOwenstoday at 1:17 PM

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.

show 1 reply
eth0uptoday at 1:43 PM

For me, a great example of where software engineering meets head to head with classical engineering is, eg SolidWorks, etc. Seeing a program mimic the physics of real moving parts, responding to many variables, etc, is to me, engineering plus, then some.