Remix.run Logo
SideburnsOfDoom 5 hours ago

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/

TomOwens 4 hours ago | parent | next [-]

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.

skydhash 4 hours ago | parent [-]

> 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

I don’t think it’s about science. It’s about the scientific method. From wikipedia

  The scientific method is an empirical method for acquiring knowledge through careful observation, rigorous skepticism, hypothesis testing, and experimental validation
You don’t have to have a full theory or model to follow. You also can follow your intuition and use your creativity. You just have to carefully compare your results to your goal.
eth0up 4 hours ago | parent | prev [-]

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.