|
I'm old enough, and have been in the profession long enough to recall "software engineering" as a new term attempting to make the profession sound fancier. When I started we were programmers. We wrote programs. Sometimes we were also called "coders" though that wasn't understood outside the profession, where "programmer" was. Then the term "software developer" came along, and we were all "developers." Now, when I'm talking about my team of "engineers" I'm speaking of all my programmers. They create software, with all the design, authoring of code, and wielding of infrastructure that entails. Does that make the actual practice "engineering?" Let's resort to definitions, with apologies. Engineering > Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings.[1] That certainly doesn't make Software Engineers what are traditionally thought of as "engineers." So... on to Software Engineering: Software Engineering > Software engineering [is] the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software and the study of these approaches; that is, the application of engineering and computer science to software. [2] That description does not fit what most of us do when we write or create software. Perhaps it should. We'd be better off in many cases. But programmers are often closer to gardeners than engineers in that we approach solving problems through empirical processes, testing and verifying as we go. TDD is an admission of the need to do just that. So is Scrum (empirical process control). There absolutely are cases where algorithm optimization using the latest research must be applied just so. There absolutely are cases where applying gradient descent and convolutional neural nets in specific fashions applies. Most of us are gardeners growing our systems, or carpenters building out a feature, though. Programmers. Software engineer makes it sound loftier, just like sanitation engineer makes trash collection sound loftier. I will absolutely concede that I still use the "engineer" terminology on a day to day basis, my opinion on the internet notwithstanding. But it is a label that is weakly applied for fashion and connotation, rather than for its distinct meaning, and I suppose that is what I tilt at here on HN. Apologies for the pedantry. [1] https://en.wikipedia.org/wiki/Engineering [2] https://en.wikipedia.org/wiki/List_of_engineering_branches |
I'm sure that say a conteporary civil engineer would scoff at calling Nikola Tesla an [electrical] engineer, just like you're virtually scoffing at calling a Software Engineer only by Engineer.
Admittedly that the software field is young, but does it make it "worth" less? To entertain your argument, do you consider a person programming PLCs an electic engineer? What's the fundamental difference between a software programmer and them? I don't see any. So you cannot call one an [Electrical] Engineer and another one "just" Software Programmer.
Gardener is not an engineer. On a ship there are usually at least two departments: Deck, and Engineering. The latter are people in charge to make sure that ship's systems are up and running at all times. There is no theory behind it, or pretty much any maths. It is mostly boring maintenance. And I would be surprised that anyone would call those people non-engineers. So why bring this up? Engineering definitely has a vague connotation with certain terms like electrical power, mechanics, devices, construction, materials etc. As the gardener or a trash collector doesn't deal with any of those, noone is considering a gardener an Engineer.
One can say, oh it's the title inflation, but that actually applies to any profession then. Or to put it differently, what makes a person an engineer? The work that person does, or the title it was given to them by some institution? Is it both? Is someone an engineer but is a career politician? I sure know one, and the guy will always be legally an engineer. This is a classic "what makes an art, Art?" question which is another can of worms I'm not going to open.
So I'm not sure what you're arguing then when all of this is on a very shaky ground. My position is that it is just a matter of a title and social convention. If you're a part of a engineering department, then I'm sure people outside of that department will call you an engineer. Inside of that department you might be a programmer of say a backend service, I could be a platforms guy, Alice could be QA engineer, and Bob could be a hardware engineer. It just doesn't really matter in the end. All of those are just social constructs which change with time. Or if we take it to a institution level: in some countries you have legally recognized Software Engineers (as I found out in other threads), in a country like mine you don't have one, whether we like it or not. So as I said in my previous post, this isn't maths or physics, and it is just a social construct which varies all over the world. So arguing about it is like arguing about the definition of art. I like spending time on engineering more so that's it from me ;)