(In many countries, the word "engineer" is regulated -- you can't call yourself an engineer without professional qualifications and oversight.)
https://en.m.wikipedia.org/wiki/Regulation_and_licensure_in_...
(In many countries, the word "engineer" is regulated -- you can't call yourself an engineer without professional qualifications and oversight.)
https://en.m.wikipedia.org/wiki/Regulation_and_licensure_in_...
The engineers working on aviation software and other low-level, real-time, performance critical systems probably need to use quite a bit of maths and are closest to doing what we traditionally consider engineering.
All those teams working on web apps and advertising...yeah not really. This isn't to say what they do isn't complicated or difficult, but it's not really engineering in the classical sense insofar as it doesn't (typically) require the use of continuous mathematics and deep systems theory. If you're primarily writing systems design docs and performing calculations, you're probably doing some kind of engineering. If you're mostly writing code to spec you're just programming. It's sort of akin to a carpenter calling themselves an engineer.
But hey, this is all symptomatic of a general trend here in the states of the trivialization and devaluing of expertise; people think it's fair to identify as whatever their heart desires regardless of qualification, knowledge, or experience. A world in which people regularly accept advice from total randos on social media is not one that has any strong sense of value around knowledge or critical capacity.
* The New Plague
* Have Fun at Work
* Friends in High Places
* Design for Prevention
In short, some cynicism is warranted, but not complete and utter disillusionment.What's next, Software Physician?
With all due respect, if your "engineering title" is preceded by the word salesforce or prompt, you're not an engineer.
No seriously that kind of gate keeping is just ridiculous.
Genuine question, I am not an engineer nor in any sort of role that could plausibly be considered engineering.
Building a house takes engineering (e.g. structural). It also takes carpenters and plumbers and so on. What’s fun about software is you get to do all of it on one project.
Words mean things, and if we want to consider "software engineer" as anything more than title inflation, it should mean more than just a programmer who's full of themselves.
If I shit out a webapp that's crashes if you look at it funny, that shouldn't be considered software engineering because it's a pile of shit that barely works.
If I make a webapp that actually gives useful error messages to users and is robust in the face of failure and is maintainable and someone else would want to touch my code, then we're starting to get somewhere.
Let's be honest, the main reason so many people glom on to the term "engineer" is because (as others have mentioned) the rigorous processes around licensing for other engineering disciplines keeps supply low, which attaches an inherent market value to the term. People then adopt the term without justification in the hope if nets them a pay raise. We ought to accept that it's OK not to be an engineer. Other professions are also valuable. It's also important to "gatekeep" meanings of words to a certain extent lest we think it wise to accept a language in which any word can mean anything.
You write about people who sling PHP or Javascript spaghetti?
I have engineering degree in computer science (I think it is mostly thing in eastern Europe, you have bunch of electronics, math, computer architecture to learn), I worked on automotive software which is I have to say fairly regulated. Where you have to care for things like ISO or MISRA standards in your code.
I don't mind people calling themselves "software engineer" even if they whip up front-end - but I do mind if someone calls "software engineering isn't real".
;)
I have a CS degree too and people without it are sometimes much better than me at slinging code
Actually forget people, you should realize how far this is from engineering when ChatGPT can do it better than me :) Ask ChatGPT to build a car though and we will see how far it gets.
I ain't sure what century you live in, but it's not the current one...
If I program some bits on my hard drive and now a stepper motor punches thought the side of the mount its bolted too. Or if I say "set the flaps to this pitch in this condition" and that doesn't happen, then something very real, and very bad, happens in the reality we both exist in.
Almost everything complicated that exists today uses electronic control in one way or another. Screwing up the software in that ECU is just as much as of an error as using the wrong metal in its manufacture.
If youre doing anything that physically moves something like a stepper motor i have a lot of respect for that.
> I have engineering degree in computer science
For the record, I also have bad news about our shared degree's use of the word "science".
Here in France, the engineer diploma is a regulated thing, and there absolutely are software-centered engineering school who are accredited to deliver it, which is how I got mine.
It's in the "Grandes écoles" cursus, which usually follows a more classical STEM-centric cursus called "classes prépa".
As to whether "Software engineering" is a real thing, well on one hand most of it isn't very process-oriented, on the other hand there are such thing as ISO certification for software security, so it's less the individual which is regulated than it is the project in itself when it matters (like critical data-center, or handling of medical data), so it's not like there aren't any regulatory framework in the software world.
Part of the reason for that is the cost of iteration is much lower. So software engineers can afford having less rigorous process. And the tooling is getting better, with formal specification languages, type systems and static analyzer.
Rapid prototyping, microcontrollers and simulation tools brought some of the same possibilities in mechanical & electrical engineering. Even the traditionally very conservative space industry is embracing faster iteration cycles (at least, SpaceX is).
"Software on a microcontroller isn't engineering, it's just coding, but replace said software by TTL chips and PROMs and suddenly it's EE".
This doesn't seem to apply in the realm I've been working in. We've had to do the exact opposite thing.
In small, B2B software companies you may find that accepting an uncomfortable amount of liability is usually the only way to get your foot in the door. Certain promises have to be made (very carefully!) or no business would occur at all.
For example, if we told our banking clients that "if your front-line app crashes we might have it fixed in 5-7 days" just to be safe, they likely would have little-to-no interest in utilizing our solution. We have to say things like "We will respond within 1 hour and send a polite apology letter to your CTO every time the server makes a weird noise". And, we have to "engineer" our solution so that we have a minuscule chance of hitting that promised target.
Consider that in a <10 person company that there is going to effectively be some person who has to own all of the pain that comes along with these decision. Is that person not an "engineer" by some arbitrary definition? Sure. But, for the purposes of "a professional weighing all of the pros/cons and making a decision that they intend to accept all consequences for" - I think it's the same effective practice.
Ultimately, "software engineering" is a very broad space with varying degrees of professionalism. At some ends, you will find things that approximate actual engineering. At others, you will find things that appear more academic or artistic. The context is what defines the title of "engineer" for me.
The company would have to accept it. No legal trouble for the developper.
Those are the important parts, being real or not is irrelevant. Snake-oil selling is also a very real profession.
If all the licensing to architects, doctors, engineers, lawyers, and so on, really had a big impact on quality, the world we live in would be very different and better. But that doesn't happen because licensing a profession only works if quality is upheld on all steps of the professional education chain.
A lot of software companies circumvent all of these downsides of bad quality in education by raising the bar on the hiring pipeline with a bunch of tests and so on. Does it always work? No, just like licensing doesn't. But at least it keep la the profession accessible to those who are willing to study algorithms, data structures and so on.
There's no perfect system in our world, but I am glad we don't have license requirements to develop software. I am a statistician that became a dev through self studying, training and learning on the job, and I also know many others (even real engineers) that turned to this profession without graduating in the field and contribute a ton with their specific background knowledge.
Should everyone be called engineers? Probably not as it will elude to licensing the profession, but not calling yourself one decreases chances of finding another job dramatically.
A true tragedy tbh, I'd rather if everyone called themselves devs, scientists or something less loaded than engineer.
Depends on the country and the educational system. In some countries no such sham degree is possible to be accepted for an engineering title.
Sometimes licensing is so strict that things get done anyways ignoring license requirements because there is way more demand for some services than the supply of licensed professionals. In such cases, there are so many people violating regulation that policing becomes ineffective. It's the case with some Latin American countries.
And then you get to the problem that the license is ineffective and doesn't add to anything.
There's no perfect system to uphold quality of labor across a profession, we pick our poison and deal with it.
Setting a minimum threshold for competence makes sense, but when it becomes encoded into a legal system the result frequently becomes a way to enrich incumbents.
That is, it is a whole system. And largely comes to costs and known building techniques. After all, certified engineers built "galloping gerdy."
(And I didn't even get into maintenance costs and application. )
This doesn't devalue the effort of the work crew, but it does recognize you need accredited professionals at certain parts of the process to ensure public safety.
To be a bit more pointed: causality isn't difficult here. This legislation and professional practice was deliberately designed as a result of the numerous failures observed throughout the 1900s. The cause: multiple fatalities and unreliable infrastructure let to the regulation of the engineering profession. The effect: we are safer.
Whenever this question of engineering comes up it's always bridges, airplanes, and so on, but that's such a tiny percentage of engineering. Things don't have to be high-stakes to be engineering.
That’s engineering.
Software Engineering = Applied Math.
Both are about modelling, so you have a good idea if a solution works before you build it.
If you're gluing stuff together and hoping it's not going to fall apart too often you're not doing either.
That's precisely what the majority of "software engineers" are doing nowadays. That's what web development is. Those that are creating tools other developers use and build things using algorithms/data structures in novel ways (essentially applied math as you said), they are the real software engineers in my eyes.
Applied Physics = Applied Math.
So... different tradeoff? Sounds like engineering to me :).
Furthermore, I don't understand why some people have the need to regulate everything. That's not how the real world works.
> (In many countries, the word "engineer" is regulated -- you can't call yourself an engineer without professional qualifications and oversight.)
Those countries (at least France, Switzerland and Canada at least) also have official accredited Software Engineering degrees.
I know because I hired people who graduated from these programs!
But how most of the sotfware done, is not really engineered.
And I think we might do better if we were more rigorous with what is being build, probably slower, but better off and lot of it could be replicated for close enough use cases.
(If not, then your example is one where software engineers are misusing the protected term, but as they usually do not set up shop and mislead the general public into thinking they are certified, which would be the activity the protection is designed to thwart, the protection is rarely enforced.)
That's my understanding. They don't have a PE exam like here in the US. To be P. Eng licensed, they have to graduate from an accredited engineering program and register with some board. And they do have Software Engineering programs (I know; I hired folks from these).
https://engineerscanada.ca/sites/default/files/2022-08/2022-...
There are many folks in certain provinces arguing against regulation as, they claim, it makes it difficult for workers to compete in a global market where the term is common.
I say all of this as a pro regulation person.
But in software you can simulate and test all you want before connecting it to the real world
Software on the other hand can technically be simulated 100% accurately, barring hardware or interpreter bugs.
But prompt engineering? Based on what knowledge exactly?
But most developers do none of these things, and many developers don't even know they exist.
But prompt engineering is just search++. You might save some time if you know a little about the underlying technology, and there's an element of creativity which is unusual for search.
But it's still not rocket surgery.
When they should, failure cost time/money