I used to think this, and then I started interviewing "actual" engineers. Most engineers in the world don't have a license, or a graduate degree. And even those that do confirmed that traditional engineering is often just as much of a shitshow as software engineering. https://twitter.com/stephendpalley/status/1249685093653843974
The actual laws vary country to country. Canada has the strictest laws, where everybody called an "engineer" needs a license. But in most places, only the "principle engineer", the one who signs off on plans, needs a license. The people under them don't.
We usually think of "engineering" as civil engineer, bridges and stuff. High stakes things. But a lot of engineering is very low-stakes. There was probably an engineer involved in designing your suitcase. In designing your tote bags. In designing the box your purchase comes in.
In most countries, the most regulated subfields of engineering are the ones that directly killed people. In the late 1800's we'd see a major bridge collapse about once per week. https://twitter.com/jasoncrawford/status/1216750827987062784

Regulations are written in blood.
But many fields of software engineering are heavily regulated, too. Avionics has DO-178C. Medical devices have IEC 62304. These regulations could probably be a lot better, and will likely be strengthened as more accidents happen. But the point still stands.
And there's even some ways that we're _better_ at "engineering" than trad is. The biggest is version control. Exactly one of the 17 engineers I talked to had version control in his traditional job.

Others: pull requests, open source, practicioner-oriented conferences.
The converse of this is that just as trad engineering isn't wildly better than software, software isn't wildly different from trad. The common counterclaim is "you don't have to move a bridge after it's built!" I've talked to several civil engineers who had to do exactly that.
Personally, I do see the need to differentiate software engineers from software developers, for the same reasons that we distinguish electricial engineers from electricians and lineworkers. I want this not to elevate engineers, but to respect developers.
We have a poor understanding of the needs and challenges of the latter group. Is "blue collar" programming something better taught as an apprenticeship? In trade schools? Can we make better tools for this kind of work? Better languages?
If this all interests you, I'm doing a longform writeup on all this. It was delayed due to the alloy documentation ( https://www.hillelwayne.com/post/alloydocs/ ), which is ironically a way to add more """proper engineering""" to software. But the engineering writeup is still happening!
I'm also giving a remote talk on this in early June, so that puts a hard deadline on when I'll have it done. I'll also be speaking about this at Rebase Conf ( https://rebase-conf.org/2020/ ) if it's not cancelled from COVID.
You can follow @hillelogram.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: