3 ms·
Having both a mechanical engineering degree and a comp sci degree, and having had jobs in both fields, I really think most software creation is not "engineering
by krschultz 16y ago
Having both a mechanical engineering degree and a comp sci degree, and having had jobs in both fields, I really think most software creation is not "engineering". I prefer software developer as the proper term.
When I was a kid, I built a lot of things for fun. I would tinker in the shop and build a go kart or a boat. If it broke, I made it stronger. It was fun, creative, and looked a lot like engineering when I was playing with machinist tools. There was even a lot of intuition and experience going into the designs. But that wasn't engineering.
Right now I'm doing some engineering. I have a CAD model open and I'm building a mathmatical model of the stresses imposed on it. We iterate the CAD model based solely on the math. The draftsman had made a first pass at it, I came back and said these areas need to be strengthed and these can be lighter, he adjusted the model, and we rechecked the math. There was never a real part created because it is simply too expensive. The cost of this part, once forged and machined, exceeds $85k. So we will be working on the model and tweaking it until we have a design that we know works. And then we'll both go on to do other things and at some point a few months from now it will get made by other people who I probably will never even meet and then I will show up again when we test it.
In contrast, most software developers work directly on the final product. There is no model. You might make a spec, a test suite, a UML model or sketch of how you think it should work, but there is no testing on that. That is a hypothesis not a model. Nobody ever stands there with a UML model in a production envirement and runs tests on it for twice as long as it would take to code it.
So software developer seems like the right name to me. This is far from a knock on software development. A lot of times I think engineering is more straightforward. I either pull formulas out of a book or plug it into FEA modelling software and look at the pretty colors. But the "engineering" part of the title for me speaks to the process I employ not me being superior to anyone who is not an engineer. I just think "software engineer" is a funny title for people who write code on the final product 99% of the time. We don't call designers "photoshop engineers" even though a lot of them are super smart and super skilled at what they are doing.