wow
wow
Today, people say they're "software engineers" with a straight face, which is a disservice to real engineers. I know because I get paid to code.
If bridges were built like software is...
Meanwhile, Toyota is allowed to ship buggy, untested, unauditable ECUs[0]. How can SE be considered a legitimate engineering discipline when such examples abound?
The "Software engineer" title ought to be reserved for those doing formal verification or at least aiming for high code coverage and otherwise employing proper design and testing methods. Think programmers of NASA shuttle avionics or airplane autopilots.
It's not for your run-of-the-mill startup coder (which includes me).
[0]: https://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_...
In the bad old days, steam boilers would blow up a lot; check your state and maybe local laws and you'll likely see a section to regulate this. Bridges were also prone to failing, and still do due to design errors: https://en.wikipedia.org/wiki/I-35W_Mississippi_River_bridge... (and even then, the bridge was sufficiently over-engineered that it lasted a long time before failure)
As for the EE examples you give, it just so happens I'm about to personally totally rewire a house I just bought that was built in 1910. Relevant things I've noticed include:
The National Electrical Code is drafted and revised in an open fashion, is thoroughly sane, and anyone can buy a copy. My city also makes copies available for free for perusal, and at the counter were you apply for permits and such there was a copy of the combined complete code for residential housing (1-3 stories, 1-2 or 3 families). That version is also online: http://publicecodes.cyberregs.com/icod/irc/2012/index.htm (that's one revision behind the current, many cities like mine prefer to not be at the bleeding edge).
Then there's the permitting and inspection process: while it's obviously ignored a lot, by law you're required to apply for a permit, including plans of what you propose to do. Upon approval, you post the permit at the work site, and call in city inspectors for "rough in" inspection(s), where they will check whatever will eventually be hidden, and they do a single final inspection when all is done. So there's enforcement of the code (at the very least backstopped by insurance companies who will look askance if your unpermitted work results in a loss), in a rather open way, and the city's top dog for this, the Building Official, certainly knew the electrical code when I asked him about the interpretation of one detail.
All car makers, by comparison ... well, there's not even a PE system for this field (https://www.nspe.org/resources/licensure/what-pe), it's too new, and and there's no consensus on even the most fundamental of things. Everything they do is in secret, with no outside oversight mechanisms, and one company we though really had their act together, such that we'd trust their code with our lives, turned out to be utterly unworthy of our trust, that is Toyoda, of course.
My take on this is that this sad state of affairs will continue until a software error kills 4-6 figures of people, and of course there are many domains of software where the rigor that's in theory demanded of embedded systems like cars isn't required. Like, say, this social media site we're using right now.
Engineers design materials, structures, and
systems while considering the limitations
imposed by practicality, regulation,
safety, and cost.
Perhaps many programmers don't do this, but many do.In some countries calling yourself an engineer without having an appropriate degree issued by an engineering school is a crime (although, seldom enforced in software).
Whether the school should have a software department at all was a big discussion at my school at the time. They decided to keep it.
EDIT: Sorry, to be clear, we agree: it's just adding a bit more information to your point.
That said, I think 'Software Engineer' is an acceptable title, and is more representative of the work we do in the profession than simply 'Computer Programmer'.
How much you consider yourself an engineer is irrelevant in this case: you either are one because you have a degree from an engineering school (not a university!), or you don't (it's a civilian title in Switzerland's case at least, "Eng." similarly to "Dr.")
Calling yourself a "software engineer" in Switzerland (and according to wikipedia, in a slew of other countries [1]) if you have a university degree is technically illegal - although of course, seldom enforced.
Actually, you're looking for the term "Professional Engineer" which can only be legally used if you have at least a B.S. or B.Eng. (or local equivalent) in an accredited program, have taken some kind of certifying exam, and may also require a certain number of years working in the field to obtain licensure. In the US, there is a PE certifying exam for ABET accredited Computer Science and Software Engineering program graduates.
Your Wikipedia link had no information about Switzerland, but it did have this interesting bit about the Czech Republic: "In the Czech Republic, the title "engineer" (Ing.) is given to people with a (masters) degree in chemistry, technology or economics for historical and traditional reasons." Every country is different...
How was that shocking? Someone has to be the first to introduce or pioneer a distinct profession to the rest of the world, he was pretty much among that select group. It's like saying you're a 3d printer in the past few years, without anyone having a clue this was an actual profession people spent their days on.
And that's today, in a world where we're more educated and more open to the notion of rapidly changing professions. If you want to know, the people who work those desks at the municipality usually have only a high school degree, the mandatory minimum (not for the job, but as a person raised in the Netherlands). And in the 1950s that minimum was only six years of education, i.e. primary school only. None of this strikes me as shocking in this full context, unless you're shocked by the notion there had to be someone to pioneer a profession for the first time in their municipality and we happen to be talking about him and his anecdote.
I worked for 3 years in power plants all over the world, including dams, and there were delays, cost overruns, structural defects, flouted safety measures, etc. Not really the civil engineering utopia that HN raves about.
Note that I'm not saying that it's OK for software engineering to suck because civil engineering also sucks. Both should try to improve.