7 ms·
Programmers: Stop Calling Yourselves Engineers (2015)
- deleted 6y ago[deleted]
- thanatos519 6y agoWholeheartedly agreed! As a Canadian, I am upset that my current title is Software Engineer: https://en.wikipedia.org/wiki/Iron_Ring https://en.wikipedia.org/wiki/Iron_Ring
- mpalmer 6y agoInteresting - 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".
- bluefirebrand 6y agoYeah, Engineer is a protected title in Canada.
- dublin 6y agoIt'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.
- gentleman11 6y agoBy comparison, if you deal with unity customer support, a “customer service engineer” will reply and fail to help you
- caseyohara 6y agoSweetwater, the music equipment store, has "Sales Engineers" https://www.sweetwater.com/about/sales-engineers/ https://www.sweetwater.com/about/sales-engineers/
- detaro 6y agoSound Engineer, Studio Engineer, ... used a lot in music.
- caseyohara 6y agoExactly. That's why I think TFA is silly for singling out software engineers.
- 7thaccount 6y agoI 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.
- 7thaccount 6y agoI 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.
- bluefirebrand 6y agoI'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.
- benjaminjosephw 6y agoI'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?
- karamanolev 6y agoI think the points they're making are all valid and I share the concerns outlined, but I disagree more than I agree. 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.
- inglor_cz 6y agoSoftware 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.
- detaro 6y agoI 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.
- seumars 6y agoThe thing is, buildings are being built cheaply but most people can’t afford to make a different choice: https://twitter.com/dreamboatslim/status/1382282414374932482 https://twitter.com/dreamboatslim/status/1382282414374932482
- 6y ago
- unanswered 6y agoThere 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.
- geebee 6y agoShould "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.
- hilbert42 5y ago"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.
- david-gpu 6y agoI 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.
- atoav 6y agoAs 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.
- imwillofficial 6y agoStopped 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::
- seumars 6y agoI 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.
- imwillofficial 6y agoThis 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.
- modshatereality 6y agoWhen 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.
- proc0 6y agoWhat 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.
- djoldman 6y agoIt'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-unconstitutionally-fined-a-man-dollar500-for-saying-i-am-an-engineer-federal-judge-rules https://www.vice.com/en/article/yw798m/oregon-unconstitution...
- gentleman11 6y agoEngineer 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
- khalladay 5y agoNo... they wouldn't. Unless the only thing keeping unqualified people from doing safety critical work is the job title they give themselves.
- atoav 6y agoI 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.
- yen223 6y agoThere 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-really-engineers/ https://www.hillelwayne.com/post/crossover-project/are-we-re... https://www.hillelwayne.com/post/crossover-project/we-are-not-special/ https://www.hillelwayne.com/post/crossover-project/we-are-no... https://www.hillelwayne.com/post/crossover-project/what-we-can-learn/ https://www.hillelwayne.com/post/crossover-project/what-we-c...
- wheelinsupial 6y agoThe 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.
- PaulRobinson 6y agoI 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.
- mk81 6y agoNo.
- darepublic 6y agoI never got an engineering degree. I think of programming at my level more like plumbing than engineering. I am a software plumber.
- abriosi 6y agoLol, what?
- tdeck 6y agoThis 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.
- alboy 6y ago>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.
- pojzon 6y agoIve 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.
- hasmanean 6y agoEngineers, stop misspelling enginers. You’re not making siege engines any more.
- magicsmoke 6y agoThe 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.
- AtNightWeCode 6y agoI 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.
- yesenadam 6y agoI 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 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.
- pizzaknife 6y agoSupermarket 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.
- 7thaccount 6y agoThis 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.