Programmers: Stop Calling Yourselves Engineers (2015)(theatlantic.com)
theatlantic.com
Programmers: Stop Calling Yourselves Engineers (2015)
https://www.theatlantic.com/technology/archive/2015/11/programmers-should-not-call-themselves-engineers/414271/
56 comments
Software flaws are more abstract and hard to detect. While a material crack will show on an X-ray image, a security flaw in an authentication code may be subtle enough that no tool will be able to highlight it.
I don't think that is a good distinction. Mechanical engineering was engineering long before it had todays tools and understanding of material (which is constantly expanding). Software engineering is driving forward the equivalent developments, but is just younger as a field.
Software development as a field does struggle with adopting these tools, but I think that's a matter of degree, not fundamental.
The roles are not as cleanly defined yet, what counts as engineering work and what as "just" implementation.
Software development as a field does struggle with adopting these tools, but I think that's a matter of degree, not fundamental.
The roles are not as cleanly defined yet, what counts as engineering work and what as "just" implementation.
The thing is, buildings are being built cheaply but most people can’t afford to make a different choice: https://twitter.com/dreamboatslim/status/1382282414374932482
I think the most important differentiator is that the function of a bridge is extremely simple, a good design has very clear success criteria, and the materials and physics underlying them do not change. That's not to say it's easy, but rather that we've had thousands of years of practice and refinement without moving the goal posts.
Contrast with software: Many large software projects fail to even achieve a coherent and feasible high-level spec of what the system needs to do, let alone how all the details will work. Once you get past that phase, you find that the actual design and build of software systems relies on so many layers of abstraction that practitioners have to make a lot of assumptions in order to get anything done. In practice it works because we tend to keep the lower levels stable and coalesce around a relatively small number of proven stacks, but unlike the hard engineers knowledge of materials and physics, the actual platforms are all human defined and subject to change. Imagine how civic engineering would work if physics were just code written by humans that never stopped monkeying with it.
Contrast with software: Many large software projects fail to even achieve a coherent and feasible high-level spec of what the system needs to do, let alone how all the details will work. Once you get past that phase, you find that the actual design and build of software systems relies on so many layers of abstraction that practitioners have to make a lot of assumptions in order to get anything done. In practice it works because we tend to keep the lower levels stable and coalesce around a relatively small number of proven stacks, but unlike the hard engineers knowledge of materials and physics, the actual platforms are all human defined and subject to change. Imagine how civic engineering would work if physics were just code written by humans that never stopped monkeying with it.
Exactly, nobody makes a fuss about packaging engineers because the milk cartons they design cannot stop shrapnel. Making a design that is good enough for the users' expectations while being significantly faster and cheaper to manufacture than the alternative ones is what engineers do.
I'm not sure who actually designs packaging material. I mean, I've never heard of a packaging engineering degree.
A company designing packaging might hire structural (sub field of civil) or mechanical engineers I guess. If so, that means they're an engineer in my book.
A company designing packaging might hire structural (sub field of civil) or mechanical engineers I guess. If so, that means they're an engineer in my book.
Packaging engineers are a great example. Clearly the standards in that profession haven't made "press here to open" a trustworthy instruction.
You should read this 1994 SciAm article (Software's Chronic Crisis, SciAm, September 1994). There are many copies of it on the web. It's old but it's still the best summary of the problem as it puts the software issue into context with other fields of engineering.
These links were the first I found and they've tested OK. The first is an html version, the others are PDFs with the last being the best quality (in color). If they don't work just search for the title and year.
http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/SciAmGibbs/...
http://sarec.nd.edu/courses/SE2017/Week1-TheSoftwareCrisis.p...
https://www.researchgate.net/profile/Wayt-Gibbs/publication/...
These links were the first I found and they've tested OK. The first is an html version, the others are PDFs with the last being the best quality (in color). If they don't work just search for the title and year.
http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/SciAmGibbs/...
http://sarec.nd.edu/courses/SE2017/Week1-TheSoftwareCrisis.p...
https://www.researchgate.net/profile/Wayt-Gibbs/publication/...
Should "sound engineers" in recording studios drop the title? "special effects engineers" in film production? Should the academy awards do away with the "scientific and engineering achievement award"?
If there were legitimate confusion about software engineers, I'd see the problem. If people who aren't licensed professional engineers are claiming they are, of if people are reading a book on SQL and PHP and hanging out a shingle as a structural engineer, then ok. But "engineer" is a very widespread term to describe the ingenious (Ingenieur, Ingenium, Engineer) application of design, technology, science, and mathematics to real world problems. That is probably the primary use of the term.
If there were legitimate confusion about software engineers, I'd see the problem. If people who aren't licensed professional engineers are claiming they are, of if people are reading a book on SQL and PHP and hanging out a shingle as a structural engineer, then ok. But "engineer" is a very widespread term to describe the ingenious (Ingenieur, Ingenium, Engineer) application of design, technology, science, and mathematics to real world problems. That is probably the primary use of the term.
"Should "sound engineers" in recording studios drop the title? "special effects engineers" in film production? Should the academy awards do away with the "scientific and engineering achievement award"?"
The usual definition of an engineer is someone with a degree in the subject and it's been that way for about a century or more. Most 'sound engineers' do not have one (but there are exceptions). In fact, most of those who I've known have no qualifications in the field at all. That's not to say they're not good at their work (as many are very competent).
SMPTE (Society of Motion Picture and Television Engineers) and the AES (Audio Engineering Society) used to require a degree for membership but I'm unaware of whether they still do or not (as it's a long while since I had anything to do with these institutions). If I recall one could automatically become a member of them if one was already a member of the IEEE (but it required a degree as well for membership). This reciprocal arrangement between professional bodies works when the core training is the same (I recall becoming a member of one institution after it took my name from another, all I did was tick the box and pay the fee).
The question of whether it matters if someone is called an engineer or not is probably only relevant when regulation and safety are involved. For example, my profession is electrical engineering and computing so I shouldn't (and wouldn't) misrepresent myself as a civil engineer and apply for a bridge-building job when that's not my profession (that's to say, I may be in engineering but I'm unskilled in the bridge-building branch of the profession).
Even if I secretly studied bridge building for, say, over a decade and was quite excellent in the subject I shouldn't be allowed to practice that skill without going through the formal accreditation process because when something goes wrong (and sooner or later it inevitably will), the lines of accountability will be dredged out (no pun intended). When this happens it's much easier for all involved to assume [know from one's qualifications] what the skills and expertise of those involved are so blame can be apportioned.
It's hard to imagine a situation where a sound engineer sitting behind a sound desk—or a film grader/editor at a Moviola film editor or its digital equivalent—can do anything that would endanger life so it likely doesn't matter what they call themselves.
The matter of using the term 'engineering' in connection with computer programming is a much more difficult and vexed matter for two reasons. The first is how practical software development actually measures up to other engineering professions, and second, the applications to which software is put.
In the first case there's a solid argument (as per the SciAm article reference I've posted elsewhere to this story), which is that the maturity of software development per se is well behind other branches of engineering (electrical and chemical engineering for instance). The second covers the fields where software is applied, which, as we all know, is everywhere.
Unlike my bridge-building analogy, we've not yet separated out a methodology (a separate engineering philosophy) for critical systems software development from other less critical systems. (It's obvious we need them separated but we still use common tools (compilers etc.) and common programming methodologies and this is a significant problem—I could provide reasons but they are too lengthy to cover here although for those interested the SciAm article is a good place to start.)
Put simply, the level of hardness and granularity of traditional engineering (set by a several-hundred-year long lineage of experience and backed by both domestic and international standards) that goes into hardware design and then building hardware—bridges, rockets, microchips, etc.—is not necessarily backed by the same hardness and granularity from the supporting software. And as we've seen in practice, in many, many instances this has been a major problem.
In my opinion, there will have to be rationalization and standards eventually. When that will happen is anyone's guess.
The usual definition of an engineer is someone with a degree in the subject and it's been that way for about a century or more. Most 'sound engineers' do not have one (but there are exceptions). In fact, most of those who I've known have no qualifications in the field at all. That's not to say they're not good at their work (as many are very competent).
SMPTE (Society of Motion Picture and Television Engineers) and the AES (Audio Engineering Society) used to require a degree for membership but I'm unaware of whether they still do or not (as it's a long while since I had anything to do with these institutions). If I recall one could automatically become a member of them if one was already a member of the IEEE (but it required a degree as well for membership). This reciprocal arrangement between professional bodies works when the core training is the same (I recall becoming a member of one institution after it took my name from another, all I did was tick the box and pay the fee).
The question of whether it matters if someone is called an engineer or not is probably only relevant when regulation and safety are involved. For example, my profession is electrical engineering and computing so I shouldn't (and wouldn't) misrepresent myself as a civil engineer and apply for a bridge-building job when that's not my profession (that's to say, I may be in engineering but I'm unskilled in the bridge-building branch of the profession).
Even if I secretly studied bridge building for, say, over a decade and was quite excellent in the subject I shouldn't be allowed to practice that skill without going through the formal accreditation process because when something goes wrong (and sooner or later it inevitably will), the lines of accountability will be dredged out (no pun intended). When this happens it's much easier for all involved to assume [know from one's qualifications] what the skills and expertise of those involved are so blame can be apportioned.
It's hard to imagine a situation where a sound engineer sitting behind a sound desk—or a film grader/editor at a Moviola film editor or its digital equivalent—can do anything that would endanger life so it likely doesn't matter what they call themselves.
The matter of using the term 'engineering' in connection with computer programming is a much more difficult and vexed matter for two reasons. The first is how practical software development actually measures up to other engineering professions, and second, the applications to which software is put.
In the first case there's a solid argument (as per the SciAm article reference I've posted elsewhere to this story), which is that the maturity of software development per se is well behind other branches of engineering (electrical and chemical engineering for instance). The second covers the fields where software is applied, which, as we all know, is everywhere.
Unlike my bridge-building analogy, we've not yet separated out a methodology (a separate engineering philosophy) for critical systems software development from other less critical systems. (It's obvious we need them separated but we still use common tools (compilers etc.) and common programming methodologies and this is a significant problem—I could provide reasons but they are too lengthy to cover here although for those interested the SciAm article is a good place to start.)
Put simply, the level of hardness and granularity of traditional engineering (set by a several-hundred-year long lineage of experience and backed by both domestic and international standards) that goes into hardware design and then building hardware—bridges, rockets, microchips, etc.—is not necessarily backed by the same hardness and granularity from the supporting software. And as we've seen in practice, in many, many instances this has been a major problem.
In my opinion, there will have to be rationalization and standards eventually. When that will happen is anyone's guess.
[deleted]
This is a perennial argument that I personally find both pointless and stupid. I have no problem calling myself a programmer - I don't find the word demeaning or inaccurate. My dad was a "programmer" in the '90s, after all.
That said, I call myself an engineer because that's what everyone I know doing the same job calls themselves. That's the point of language - to communicate. Even the author of this article hasn't provided any evidence that this causes confusion amidst a long ramble about how computer programs sometimes don't work (this happens in every profession), Uber doesn't consider itself a taxi company (completely irrelevant), and that other kinds of engineers design different types of things (obvious and self-explanatory). Even the author points out that you don't "always" need a PE license to practice these other disciplines in the U.S.
What purpose would be served by making a point of using a different title, other than satisfying the people who write these kinds of condescending articles? It would be easier for such people to get over themselves and stop pretending they don't know what I mean when I say I am a software engineer.
That said, I call myself an engineer because that's what everyone I know doing the same job calls themselves. That's the point of language - to communicate. Even the author of this article hasn't provided any evidence that this causes confusion amidst a long ramble about how computer programs sometimes don't work (this happens in every profession), Uber doesn't consider itself a taxi company (completely irrelevant), and that other kinds of engineers design different types of things (obvious and self-explanatory). Even the author points out that you don't "always" need a PE license to practice these other disciplines in the U.S.
What purpose would be served by making a point of using a different title, other than satisfying the people who write these kinds of condescending articles? It would be easier for such people to get over themselves and stop pretending they don't know what I mean when I say I am a software engineer.
There is a series of blog posts by Hillel Wayne, where he interviews former "real" engineers who became software developers, and asked them whether software development is engineering.
15 out of 17 subjects said yes, software development is engineering.
One interesting takeaway for me from that article is that we over-romanticise what "real" engineers actually do in their day-to-day life. "Real" engineering practices is messy and sloppy in ways that would make software developers uncomfortable, according to the some people who worked on both sides.
The articles are well worth a read:
https://www.hillelwayne.com/post/crossover-project/are-we-re...
https://www.hillelwayne.com/post/crossover-project/we-are-no...
https://www.hillelwayne.com/post/crossover-project/what-we-c...
15 out of 17 subjects said yes, software development is engineering.
One interesting takeaway for me from that article is that we over-romanticise what "real" engineers actually do in their day-to-day life. "Real" engineering practices is messy and sloppy in ways that would make software developers uncomfortable, according to the some people who worked on both sides.
The articles are well worth a read:
https://www.hillelwayne.com/post/crossover-project/are-we-re...
https://www.hillelwayne.com/post/crossover-project/we-are-no...
https://www.hillelwayne.com/post/crossover-project/what-we-c...
The linked articles you provide say that not everyone developing software is doing software engineering. Canada does offer the PEng license for software engineers, and the US used to offer the PE license in software engineering.
At least in Canada, the “engineering field” is divided into engineers, technologists, and technicians.
Some people involved in software work at the level of engineers, some work at the level of technologists, and others work at the level of technicians. I think having a finer grained way to discuss the different types of software development would be a helpful way to move the conversation forward.
This would also seem to align with what the article talks about having a richer vocabulary.
At least in Canada, the “engineering field” is divided into engineers, technologists, and technicians.
Some people involved in software work at the level of engineers, some work at the level of technologists, and others work at the level of technicians. I think having a finer grained way to discuss the different types of software development would be a helpful way to move the conversation forward.
This would also seem to align with what the article talks about having a richer vocabulary.
I agree with the sentiment but disagree with the metaphor. The truth is that software development is still a young profession with new standards still being, well, developed. Also the quality of software is much more at risk of being deteriorated by business shenanigans than say a bridge, so putting the blame on programmers for data breaches and even comparing software to bridges is plain naive. A more apt metaphor for developing software would be: you’re commissioned to build a car, but you’re forced to put it on the road halfway through the building process, and now you have to build the rest of the car without slowing down and hoping it doesn’t explode in the process.
What if you work on game engines, rendering engines, or simulation engines? I think 'software engineer' is different than just 'engineer', but it's used for short. Software engines, for lack of a better term, are software applications that do most of the runtime heavy lifting, of some kind, whether it's simulating worlds or rendering web pages. I agree it's different than just development, or just programming.
This article gets uppity about programmers using the term engineer, imagine their surprise when they find out US Navy mechanics call themselves engineers. The biggest lunkhead A-gang mechanics on my sub were all "engineers>"
Even the nuclear engineers onboard were not called that.
It's marketing.
"Engineer" shouldn't be a protected designation. It depends on the state: see this vice article on a licensing board getting shot down[0].
Professionals want to give themselves the most serious and qualified-sounding names they can.
Unfortunately, this article appears to be another in a long line of longform trolling designed to stimulate emotional response and drive clicks without any real substance..
[0]https://www.vice.com/en/article/yw798m/oregon-unconstitution...
"Engineer" shouldn't be a protected designation. It depends on the state: see this vice article on a licensing board getting shot down[0].
Professionals want to give themselves the most serious and qualified-sounding names they can.
Unfortunately, this article appears to be another in a long line of longform trolling designed to stimulate emotional response and drive clicks without any real substance..
[0]https://www.vice.com/en/article/yw798m/oregon-unconstitution...
Engineer is a protected title in many places because non engineers are not legally allowed to do certain safety critical work. If you got your way, some random who went to a bridge design boot camp would be designing the bridges in town
No... they wouldn't. Unless the only thing keeping unqualified people from doing safety critical work is the job title they give themselves.
I am currently learning 9046 norms each with 30 to 300 pages of densely packed text only about the LV electrical grid. I have to know these norms to be allowed to do anything meaningful.
If I don't know them I could still do stuff, but the likelyhood of landing in jail because what I planned started a fire or killed someone would be very real.
Going to jail because you managed to replicate a SQL injection that everybody and their dog knows since the 90s is something I really would like to see in software engineering.
Because you know: engineers are personally liable for the decisions they take and for the things they should have known but didn't.
If I don't know them I could still do stuff, but the likelyhood of landing in jail because what I planned started a fire or killed someone would be very real.
Going to jail because you managed to replicate a SQL injection that everybody and their dog knows since the 90s is something I really would like to see in software engineering.
Because you know: engineers are personally liable for the decisions they take and for the things they should have known but didn't.
This bothers me a little bit as well as an electrical engineer. Being an engineer generally means a shared body of knowledge. We all take a ton of calculus classes, and nearly everyone takes a circuits 101, thermodynamics 101, statics 101 (no not statistics), dynamics 101...etc before getting into core classes.
I wouldn't ever call myself a mathematician or a physicist despite having some overlap.
In the same manner, someone who either goes through a coding boot camp, gets a comp sci degree, or just reads some books and starts coding are not engineers. They're programmers/developers and one of them has the formal training of a computer scientist and can be called that too.
I'm not being elitist, it's just about using the right term. Engineer has meant something else for generations and overloading it doesn't help when they don't mean the same thing.
As far as software engineering goes, I'd have to look into it some more. If they also take some of the same root classes (Ex: circuits, calculus, thermo, dynamics, statics, material balances...etc) and then just focus on software, I'd be ok with sharing the title of engineer as they truly do have the same heritage.
I wouldn't ever call myself a mathematician or a physicist despite having some overlap.
In the same manner, someone who either goes through a coding boot camp, gets a comp sci degree, or just reads some books and starts coding are not engineers. They're programmers/developers and one of them has the formal training of a computer scientist and can be called that too.
I'm not being elitist, it's just about using the right term. Engineer has meant something else for generations and overloading it doesn't help when they don't mean the same thing.
As far as software engineering goes, I'd have to look into it some more. If they also take some of the same root classes (Ex: circuits, calculus, thermo, dynamics, statics, material balances...etc) and then just focus on software, I'd be ok with sharing the title of engineer as they truly do have the same heritage.
>But by definition, “engineering” has traditionally entailed the completion of an Accreditation Board for Engineering and Technology (ABET)-approved 4-year degree.
>Engineerwashing entails a shift from the noun to the verbal sense of “engineer.”
I urge the author who describes himself as "the Ivan Allen College Distinguished Chair in Media Studies" to stop engaging in blatant chairwashing until he has four legs and, ideally, a soft cushion.
I urge the author who describes himself as "the Ivan Allen College Distinguished Chair in Media Studies" to stop engaging in blatant chairwashing until he has four legs and, ideally, a soft cushion.
The writer seems to be fighting a battle that's already lost, against an imagined degradation of the status of engineer when the engineer term was never afforded the same status or responsibility as MD in medicine or JD in law. Medicine and law come with a set of legal responsibilities, government licensing, personal liability for incompetence and harm to others, and the threat of having your title stripped away. Engineer was only ever a certificate by the non-governmental ABET for college programs. Any employee deploying a degree of "ingenuity" to a problem for his employer is an engineer. If his ingenuity results in planes falling out of the sky, his employer is legally responsible, not him.
Of course, Professional Engineer (PE) is entirely different with similar legal responsibilities and sanctions as medicine and law. Maybe if the terms are too confusing PEs could do what lawyers and "doctors" did and start calling themselves Doctor Machinarius (DM) and stand among the ranks of MDs, JDs, and PhDs. Of course, that would require a regulatory body with actual teeth and government power instead of ABET.
Of course, Professional Engineer (PE) is entirely different with similar legal responsibilities and sanctions as medicine and law. Maybe if the terms are too confusing PEs could do what lawyers and "doctors" did and start calling themselves Doctor Machinarius (DM) and stand among the ranks of MDs, JDs, and PhDs. Of course, that would require a regulatory body with actual teeth and government power instead of ABET.
I thought calling programmers "engineers" was very odd until I saw this great talk:
Real Software Engineering by Glenn Vanderburg
Lone Star Ruby Conference 2010 https://www.youtube.com/watch?v=NP9AIUT9nos
Software engineering as it's taught in universities simply doesn't work. It doesn't produce software systems of high quality, and it doesn't produce them for low cost. Sometimes, even when practiced rigorously, it doesn't produce systems at all.
That's odd, because in every other field, the term "engineering" is reserved for methods that work.
What then, does real software engineering look like? How can we consistently deliver high-quality systems to our customers and employers in a timely fashion and for a reasonable cost? In this session, we'll discuss where software engineering went wrong, and build the case that disciplined Agile methods, far from being "anti-engineering" (as they are often described), actually represent the best of engineering principles applied to the task of software development.
Real Software Engineering by Glenn Vanderburg
Lone Star Ruby Conference 2010 https://www.youtube.com/watch?v=NP9AIUT9nos
Software engineering as it's taught in universities simply doesn't work. It doesn't produce software systems of high quality, and it doesn't produce them for low cost. Sometimes, even when practiced rigorously, it doesn't produce systems at all.
That's odd, because in every other field, the term "engineering" is reserved for methods that work.
What then, does real software engineering look like? How can we consistently deliver high-quality systems to our customers and employers in a timely fashion and for a reasonable cost? In this session, we'll discuss where software engineering went wrong, and build the case that disciplined Agile methods, far from being "anti-engineering" (as they are often described), actually represent the best of engineering principles applied to the task of software development.
I have a master of science degree in computer science. Where I live that is not that attractive anymore. Interviewers are like, oh this new framework, you know about this? They don't even pretend to be interested about the science part of programming.
I have a BEng in Software Engineering. My degree curriculum was approved by the IET, and they and the BCS have frequently raised the subject of chartered status and requirements in the UK, and I'd consider it but fear they could not keep up.
I build systems in the public interest to the same extent that all other engineers do. The idea that tech has had disasters and so is "below" engineers of other disciplines is dismissive of bridge collapses, plane crashes and nuclear reactor accidents that are nothing to do with the software branch of engineering.
This article is gatekeeping snobbery and makes no serious contribution to the discussion of my profession, or its standing.
I build systems in the public interest to the same extent that all other engineers do. The idea that tech has had disasters and so is "below" engineers of other disciplines is dismissive of bridge collapses, plane crashes and nuclear reactor accidents that are nothing to do with the software branch of engineering.
This article is gatekeeping snobbery and makes no serious contribution to the discussion of my profession, or its standing.
Wholeheartedly agreed! As a Canadian, I am upset that my current title is Software Engineer: https://en.wikipedia.org/wiki/Iron_Ring
I'm enjoying the irony in the fact that the "Iron Ring" can be made of either iron or stainless steel. The symbolism and principles represented matter more than technically correct naming conventions.
In the same way, the job title shouldn't matter as much as the principles of ethical professionals. Should we really be using job titles to indicate the expectations around ethical conduct?
In the same way, the job title shouldn't matter as much as the principles of ethical professionals. Should we really be using job titles to indicate the expectations around ethical conduct?
Interesting - the company I work for (based in US) was recently acquired by a Canadian business, and one of the immediate changes was the retitling of all "software engineers" to "software developers".
Yeah, Engineer is a protected title in Canada.
It's also protected (though rarely enforced) in some states. Unless they've changed the law, it's illegal to call yourself and engineer in Texas unless you're a Professional Engineer licensed by the state (or another state - I think there's reciprocity there - if only we could get that for carrying firearms...) This change was made sometime in the late '90s, and I should have taken advantage of the grandfathering opportunity which would have made PE certification easier. That said, I've never needed a P.E. stamp, since on any project big enough to require that level of formality, I had access to in-house or contract engineers that could sign off.
By comparison, if you deal with unity customer support, a “customer service engineer” will reply and fail to help you
Sweetwater, the music equipment store, has "Sales Engineers" https://www.sweetwater.com/about/sales-engineers/
I think sales engineer is generally fine (not sure about here though) if the title refers to an actual engineer that is knowledgeable on the product and using that knowledge to help the customer make a choice.
A buddy of mine (industrial engineer) scored extremely well on the P.E. exam and is sitting on the exam board now. He is a sales engineer as he likes people and talking.
A buddy of mine (industrial engineer) scored extremely well on the P.E. exam and is sitting on the exam board now. He is a sales engineer as he likes people and talking.
Sound Engineer, Studio Engineer, ... used a lot in music.
I think those are also not favored terms, but they're less annoying as they always use a prefix (sound, studio...etc) and don't just call themselves engineers like many in software do.
Again, I think technical work like coding is a worthy profession by itself. The title of coder or programmer seem to already work and are more specific.
Again, I think technical work like coding is a worthy profession by itself. The title of coder or programmer seem to already work and are more specific.
Exactly. That's why I think TFA is silly for singling out software engineers.
I've never seen a job in Canada advertised for Software Engineer, unless it actually required you to have an Engineering degree. In which case you could have an Iron Ring.
Supermarket Sweep is on netflix now. I enjoyed that show as a child. Having decided to watch a few episodes, I became interested at this new engineering discipline so many contestants were practiced in, "Domestic Engineer" was their profession. I had to google it. People worry about titles. I prefer to live comfortably, have a lax schedule and dress how I care. I happen to regularly concern myself with principles, tests, and yep, you guessed it: documentation. Im a software engineer.
Stopped taking this article seriously at "—oh, engineer, in tech-bro speak."
This is an ignorant position. In the US at least, software engineering is a valid way to refer to some programmers. The idea is MEANT to conflate traditional engineering disciplines with software development.
So much so the government itself uses this vernacular to describe programmers on its payrole.
Ref: Not a software engineer, programmer, or "tech-bro" ::rolls eyes::
Ref: Not a software engineer, programmer, or "tech-bro" ::rolls eyes::
I never got an engineering degree. I think of programming at my level more like plumbing than engineering. I am a software plumber.
Ive finished studies of computer science combined with electric faculty.
I bery well deserve to call myself an engineer after such studies.
If someone is self taught programmer, thats a completely different story.
I bery well deserve to call myself an engineer after such studies.
If someone is self taught programmer, thats a completely different story.
There are certainly people in the industry who are not qualified to be called "engineer"; whose job involves programming only. But there are others who are.
When did computers stop being deterministic? Just because your mainstream PC-OS is no longer a sane piece of engineering doesn't mean the entire field is lost.
I still find this sentiment hurtful after all these years. It comes across as demeaning of my credentials and my work.
Let's start with my degree. My master's degree reads "Informatics Engineer", a title that was approved at the national level by the EU country where I graduated. That alone should be sufficient in my opinion.
Degrees don't matter? What about people? When the exact work I do is performed by "true Engineers" then does that make it true enfineering? Most of my co-workers are Electronics Engineers and while they perform the same tasks I do, I have yet to see anybody question their worth.
Or perhaps my colleagues may be true Engineers, but the work they are doing is mere programming, as evidenced by a simple programmer like me doing it.
Maybe it's the processes we follow that matter. True engineering work involves design, documentation and review processes, after all. Well, the processes we follow come directly from EE best practices because that's the nature of the work we do (computer architecture). Software engineering also has its own similar design processes tailored to their needs. Not significantly different, I must say.
Maybe it's not the accreditation, the people or the processes. Perhaps the demarcation between engineering and programming is in the systems we design. They must be designs worthy of being patented, systems so important that people's lives are at risk if they malfunction.
I have a dozen patents -- none of them in software. I have worked on safety critical systems where death and dismemberment were expected consequences of malfunction. Importantly, not all "true engineers" work on safety critical systems either.
What else, then? The article talks about certification -- I wish they allowed us to become licensed so that we had less competition and higher software engineering standards.
Let's start with my degree. My master's degree reads "Informatics Engineer", a title that was approved at the national level by the EU country where I graduated. That alone should be sufficient in my opinion.
Degrees don't matter? What about people? When the exact work I do is performed by "true Engineers" then does that make it true enfineering? Most of my co-workers are Electronics Engineers and while they perform the same tasks I do, I have yet to see anybody question their worth.
Or perhaps my colleagues may be true Engineers, but the work they are doing is mere programming, as evidenced by a simple programmer like me doing it.
Maybe it's the processes we follow that matter. True engineering work involves design, documentation and review processes, after all. Well, the processes we follow come directly from EE best practices because that's the nature of the work we do (computer architecture). Software engineering also has its own similar design processes tailored to their needs. Not significantly different, I must say.
Maybe it's not the accreditation, the people or the processes. Perhaps the demarcation between engineering and programming is in the systems we design. They must be designs worthy of being patented, systems so important that people's lives are at risk if they malfunction.
I have a dozen patents -- none of them in software. I have worked on safety critical systems where death and dismemberment were expected consequences of malfunction. Importantly, not all "true engineers" work on safety critical systems either.
What else, then? The article talks about certification -- I wish they allowed us to become licensed so that we had less competition and higher software engineering standards.
As a programmer who does a lot of electrical engineering as well: It is not completly out there to question whether programmers are really engineers.
When I want to do the electrical wiring for a house there are close to 2000 norms each stuffed with formula and details, that I have to get right or I will have to fear the consequences.
When I write software it is more like "Lol this framework looks interesting, lets try it together with that code from coolcoder1982 on GitHub".
I know there are programmers who try very hard to specify and write good software, with formal correctness, tests and so on. And maybe those would be closest to the term "engineer", but there are so many people who just aren't, that the whole field suffers.
When something went wrong due to a software error for the past 3 decades it was (and still is) usually excused as if nobody could have done something to prevent it. Software error. Oh god. Nothing we can do. Jikes.
If my electrical installation starts a fire, I pay or go to jail. If the norm I based it on was wrong and that started the fire, the norm will get changed and everybody from now on has to follow these updated rules. Existing buildings might need to be updated. There are laws specifically regulating how often such checks have to be done. Because this is what engineers do: they follow boring norms, try to apply them to the problem and if they fail they personally suffer for it. In fact all that stiffness, all that lack of fun, all these rules can be seen as the engineers way of surving their career without landing in jail.
Meanwhile as a software engineer you can write code that processes the healthcare data for millions of people, leak all that data through a combination of bad decisions nobody should have made again since the early ninties and still stay a programmer, Buffer overflows, SQL injections, DIY crypto, unsalted MD5 hashing, you name it.
Again: maybe individual people have higher standards (me for example), but the lived practice is so bad, calling it engineering would really border to an insult against those who really put their careers, families and wellbeing on the line in other engineering professions.
If electrical engineering was like programming electrical fires and electrical shocks would be the leading cause of death.
When I want to do the electrical wiring for a house there are close to 2000 norms each stuffed with formula and details, that I have to get right or I will have to fear the consequences.
When I write software it is more like "Lol this framework looks interesting, lets try it together with that code from coolcoder1982 on GitHub".
I know there are programmers who try very hard to specify and write good software, with formal correctness, tests and so on. And maybe those would be closest to the term "engineer", but there are so many people who just aren't, that the whole field suffers.
When something went wrong due to a software error for the past 3 decades it was (and still is) usually excused as if nobody could have done something to prevent it. Software error. Oh god. Nothing we can do. Jikes.
If my electrical installation starts a fire, I pay or go to jail. If the norm I based it on was wrong and that started the fire, the norm will get changed and everybody from now on has to follow these updated rules. Existing buildings might need to be updated. There are laws specifically regulating how often such checks have to be done. Because this is what engineers do: they follow boring norms, try to apply them to the problem and if they fail they personally suffer for it. In fact all that stiffness, all that lack of fun, all these rules can be seen as the engineers way of surving their career without landing in jail.
Meanwhile as a software engineer you can write code that processes the healthcare data for millions of people, leak all that data through a combination of bad decisions nobody should have made again since the early ninties and still stay a programmer, Buffer overflows, SQL injections, DIY crypto, unsalted MD5 hashing, you name it.
Again: maybe individual people have higher standards (me for example), but the lived practice is so bad, calling it engineering would really border to an insult against those who really put their careers, families and wellbeing on the line in other engineering professions.
If electrical engineering was like programming electrical fires and electrical shocks would be the leading cause of death.
Is the person doing the electrical wiring for a house an "engineer"? Here in the German-speaking countries a vocal subset of Electrical Engineers will be very insistent that you recognize the mere tradesperson wiring the house/substation/factory floor following the norms is not an Engineer and fundamentally different, even if they are legally qualified to inspect and certify it. (unless they happen to also have an engineering degree, but that's not the common path)
Which I think translates to software: lots of development work is not necessarily engineering, but that doesn't mean engineering doesn't happen in software or that the field of Software Engineering is not a thing. And since we do not use the degree to distinguish, it gets tricky who gets that title and who doesn't, and what part of an individuals work is which.
(And that's not just a software thing, e.g. aviation flight engineers don't really fit that scheme either, despite aviation being a serious field)
Which I think translates to software: lots of development work is not necessarily engineering, but that doesn't mean engineering doesn't happen in software or that the field of Software Engineering is not a thing. And since we do not use the degree to distinguish, it gets tricky who gets that title and who doesn't, and what part of an individuals work is which.
(And that's not just a software thing, e.g. aviation flight engineers don't really fit that scheme either, despite aviation being a serious field)
No, the person doing the wiring is not typically an engineer. Even the person planing it might not be, in German speaking countries you would have to be a Meister or a VEFK. This roughly translates to other nations definitions of engineers. E.g. look at civil engineering
> There are laws specifically regulating how often such checks have to be done.
But that is true in software as well, as long as you are working on safety critical systems. Sure, most software engineering is not safety critical, but that doesn't make it less engineering. In the same way that an electronics engineer doesn't stop being so just because they happen to be working in non-safety-critical systems.
In essence the argument of safety boils down to "if it can't kill people then it is not engineering", which I find rather humorous.
But that is true in software as well, as long as you are working on safety critical systems. Sure, most software engineering is not safety critical, but that doesn't make it less engineering. In the same way that an electronics engineer doesn't stop being so just because they happen to be working in non-safety-critical systems.
In essence the argument of safety boils down to "if it can't kill people then it is not engineering", which I find rather humorous.
Sure, not killing people plays a big role. However in ELV consumer electronics there are also norms you have to follow and liabilities that could happen (burning batteries, EMI interference, etc). Usually extensive testing and processes of certification get rid of auch a thing.
I know certification in Software can be a flipping nightmare, but sometimes I wish they just had some hacker and data privacy lawyer look at it for a weekend and if they find something they cannot release it to the market.
I know certification in Software can be a flipping nightmare, but sometimes I wish they just had some hacker and data privacy lawyer look at it for a weekend and if they find something they cannot release it to the market.
Engineers, stop misspelling enginers.
You’re not making siege engines any more.
You’re not making siege engines any more.
No.
Lol, what?
[deleted]
Bridges have collapsed, buildings have failed, but that happens less than software crashes. Why is that? I think the most important differentiator is the tolerance for such failures. Software is written cheaply, quickly and fails more often because we can afford it to. If we could afford the same thing with buildings, they'd be made quickly and cheaply, but our societal tolerance for that is much lower.
I posit that software can be made to the same high standards as buildings or bridges, but it would have to be much simpler and/or way more expensive. So why not call software developers engineers? Just like structural engineers, we have to meet a quality bar set by mostly external circumstances. Is it the lack of industry certification? That would've happened, if the consequences of failing to meet the bar were the same or worse.