How often in the software industry is the title "engineer" a sop to give applicants a flashy title; and how often is there actual engineering involved? When I worked as an engineer some years ago, it seemed inconceivable that software development would become actual engineering because how could the engineering standards of care and professional liability ever be imposed? Today, virtually all software is either privately licensed or open source - there is no such thing as public software infrastructure under the development supervision of a professional software engineer (as far as I know). So I guess Mozilla can call their software developers anything they like, but it seems to be an ongoing cheapening of the engineering title - like why not call this position Chief of Software Surgery? Lead Software Counselor?
There is quite a big difference between a software developer and a software engineer.
Most of the time, a developer just does what has been assigned to them. An engineer will be taking part (or completely doing) the architecture/design process as well.
This is not true at all, except maybe in very specific places (e.g. some jurisdictions do not allow you to call yourself an engineer without a specific qualification).
Software Engineer and Developer are essentially interchangeable terms and largely a matter of taste.
Those terms really aren’t interchangeable over here. At all. (NL). For the reasons I listed above.
“Developer” (or “ontwikkelaar” in Dutch) is monkey get instructions, monkey do things. A software engineer would get a request for something, research and figure out the solution, then build it.
Source: I’m a software engineer.
It may well be different in NL, I'm not going to argue with that. But 'ontwikkelaar' is literally a different word in a different language - no surprise that it may have different semantics to the closest word in English!
Eh, as someone who's first software job was as an "Associate Software Enginner" while still in school (undergrad), I'm pretty sure I can say it's not that cut and dry. I've actually never had a software job that didn't use the "engineer" title. I've found "developer" and "engineer" are used interchangeably.
this seems to reflect the simultaneous co-opting of the titles "architect" (one who designs physical edifices such as buildings) and "engineer" (one who applies math and science principles to problems of infrastructure and industrial production). We all understand what is meant by design, but that does not mean a software design must be devised by an "engineer" or an "architect" anymore than an interior design (though there are also some self-styled "design architects" roaming about). So is it possible to say what is different about software development and software engineering without saying the engineer is an architect? Is it that software developers do not design anything (which in its simplest terms is 'artful arrangement')? That seems arbitrary - though I agree that there can also be a fine line sometimes between, say, architecture and structural engineering.
The answer to your question is because you’re confusing very specific job titles that refer to specific industries and jobs, with a single word with centuries of history and has a far more broad meaning that predates the usage that you prefer which only dates back to evidently 1907 America.
“Chief of software surgery” would be a play on a specific job, which is a “surgeon” a word which here means “a medical specialist who practices surgery” so it refers to one particular thing in one particular field of work.
“Engineer” on the other hand, refers to someone who “devises or contrives” something, and more broadly if you look at its Latin origins, “Cleverness”. So the term “Engineer” is linguistically appropriate for all kinds of jobs that fit into its fairly broad definition, unlike Surgeon, which has a more specific meaning. The “Engineering standards of care and professional liability” you’re referring to is no less made-up than the word Engineer itself.
I get your point that people with “Engineering” degrees who work in the fields of like mechanical or electrical engineering want to hold onto that word as some kind of earned title, but if we’re being honest, if they wanted that they should have picked a more distinct word.
I think engineers have been held liable for the soundness and fitness-for-purpose of what they "engineered" since ancient Rome - though they have certainly been called upon to engineer a greater variety of things in the past couple of centuries. And I think if someone proposes to engineer software, I am all for that! We could do with a great deal more of it in fact. And let's dispense with this perpetual disclaimer of warranty for merchantability or fitness for any particular purpose, and such terms. If an engineer designs it and it does not work, the engineer is generally held to be negligent and liable . . . except if they are a software engineer, of course.
I went to an engineering school and graduated without the engineer title. I then started working in the software field and got a title of software engineer. I have people I've talked to about the title of engineer and how they have to take multiple tests and curriculums for that title. I only bring that up to say I think I know what you're going for but as I see things, they are a bit different.
I feel a lot of engineer titles are based on hard math/physics/chemistry of this universe. That makes a lot of things well researched, investigated, and (depending on your view) semi-stable in how things behave. We've been learning and expanding on this physical world for centuries.
Now with software engineering we're learning all the ways that we can build/create/destroy things that are in a "virtual space". What is interacted with doesn't necessarily conform to the physical universe. These are things that technically exist in those electronic pulses/signals but that feels more like computer engineering vs software engineering. Anyway, these non-physical designs don't pose an immediate risk to the life of someone in the physical space so they don't have the same creed and oath like the other professions. I feel we're in the changing of titles in the future because software is forever integrating itself in our lives and we're learning how much it can impact us physically as it's more tied to our lives.
Just like electrical engineer may not have been a protected title in the past (as an example as we learned how electricity affected us) and other disciplines now affect our physical space, we're on the precepts of software engineering affecting us. We still may be years or decades out but remember that other engineering fields had their infancy
These are some good points. The more traditional engineering disciplines have a depth of methods and practices that developed over time, and software engineering is - what? only maybe 50 years old or so? I have not worked with software engineers, but with all other sorts, so I know if there is engineering going on in software development there will be certain methods in place: preliminary designs that senior teams evaluate and compare, interdisciplinary review so the features of design that "work" for one objective also do not detract from others, and quality control - nobody works alone - every calculation and every sentence and every communication is documented, reviewed by someone else, and recorded permanently.
I can imagine that some software engineering efforts must bring some of these tools to bear, sometimes - but the refrain in software development has long been "we don't have time or funds to do it that way - things are moving too fast, or it is too competitive." Which maybe all that is true, and maybe it can all be fun and games since nobody can get hurt. So if game developers want to call themselves engineers regardless of whether they follow, or even know about standards of their industry (let alone any others'), no harm, no foul, right?
An old friend of mine wrote the autopilot software for commercial passenger jets - though he retired about 25 years ago. He was undoubtedly engaged in a project that nowadays would be dubbed software engineering. The aerospace company included him in the team with a whole slew of different engineers of all sorts and they did all the sort of engineerish things. But I don't have the impression that much software goes through that kind of scrutiny - even software that demonstrably deeply affects lives and society. In a way this is like criticizing the engineering of an AR-15; what were the engineers thinking to develop something that would kill people?! But it seems like with software, the development has effects that are a complete shock even to the developers: facebook algorithms weren't devised to promote teen suicide, it was just an unforeseen side effect for a while.
I think it is time for software engineering to be taken seriously. And there is professional licensing. The problem is that corporations are dubbing their staff as software engineers a lot of times, when there is no licensed engineer in the building and there are no engineering systems in place. It is fine for me to say that I engineered the rickety shelves in my garage, because I'm an engineer and therefore it must be so, but that is some sensationally bad logic. They could collapse at any moment - I'm a chemical engineer.
All software in existence is engineered. To write software is by definition engineering. It is something that is devised by someone. Liability has nothing to do with the term engineer or the act of engineering, it’s not a part of the definition or history of the word.
What I feel like you’re referring to is a “Professional engineering license” as it’s known in the states, which is something entirely unrelated to the act of engineering as a whole. That’s a licensure invented long after the fall of the Roman Empire and it’s that licensure, not the word “engineer” which incurs the liability you’re talking about.
You’re confused because like I said, the organization(s) that are responsible for that licensure picked a bad term for it, because it’s too similar to the word “Engineer” which doesn’t inherently have anything to do with it. If they had coined a more concise, specific term related to what they do, like Surgeon, they wouldn’t have this problem.
Thank you for this correction. I will make a note that professional engineering has nothing to do with engineering - I don't know how I have been so confused for so long!
Unrelated in that professional engineering licensure is not something that just inherently applies to the entire concept of engineering, or would apply to anyone with an engineering title, that isn’t specifically claiming they are PE accredited. All PEs are engineers but not all engineers are PEs. Thats why I’m saying they would have done well with a separate term, rather than stick another word on the front. A medical analogy would be surgeons changing their title to “Surgeon medical professionals” and then getting upset that any non-surgeons are calling themselves “medical professionals”. Like you do have this special thing you had to go through all this extra work to achieve and you deserve your special title for that, but you can’t just co-opt a single word that is basically just a verb that accurate applies to multiple jobs across many industries, when that word has been in regular use, unassociated with your organization, for centuries. At least, you can’t do that and be upset that nobody gives a shit.
Unfortunately the software industry (at least in the US) has applied the term "engineer" basically across the board to software developers instead of only for properly trained and licensed engineers as in other fields (civil engineering, mechanical engineering, etc). Part of this is due to a lack of a formal software engineering licensing system, but the desire for fancy titles is certainly something that played a role in this.
My understanding is that other countries, like Canada, do have strict requirements for the use of the term "engineer", but unfortunately that ship appears to have sailed in the US due to inertia and the intransigence of Silicon Valley-type companies.
it seemed inconceivable that software development would become actual engineering
If you go back to the root word, "actual engineering" is someone that builds or operates an engine. That's why train drivers can be called "engineers".