7 ms·
Programmers should stop calling themselves engineers (2015)
- siscia 7y agoI wrote about the same topic here: https://redbeardlab.com/2019/04/08/on-dignity-and-self-respect-of-a-profession/ https://redbeardlab.com/2019/04/08/on-dignity-and-self-respe... I disagree with the author, some of our work is definitely not engineering, making yet another e-commerce look nice is not engineering) developing browsers, web servers, cryptographic libraries, databases and all the basic tool used in the profession is definitely engineering.
- deleted 7y ago[deleted]
- lsc 7y agoWhat makes the whole thing super weird is that where I live, "software engineers" which is to say, javascript programmers, get paid a lot more, say, than civil engineers or aeronautical engineers... so it's weird that computer technicians try to say they are Engineers rather than the other way around.
- airbreather 7y agoMaybe depends where you are, I live in resources city, generally speaking a good experienced engineer gets paid quite a lot more than good programmer. Some experience you just can't overwhelm with any amount of youthful vigor or brilliance when the consequences are substantial enough.
- lsc 7y agoYeah, probably depends a lot on where. I'm just a sysadmin, the difference in pay between here in silicon valley and the cheaper parts of the US for my labor are extremely dramatic. I mean, it's dramatic for better educated programmers, too, but not nearly as much as it is for me with no degree and a less prestigious title. I know a bunch of people who worked at lockheed around here, and, like you'd get literal MIT rocket scientists with security clearances making... dramatically less than me, even though I have one of the lower paid technical roles you can find at the FAANG companies.
- galfarragem 7y agoSuply and demand explain most phenomena. Where I live, and in most places - I believe - there are some traditional engineers and architects that earn more than a software engineer. However, they are outliers, a regular one is comically bad paid comparing with a regular software engineer. Disclaimer: I worked as an architect in a previous life.
- badpun 7y agoA profession can be high pay and low prestige (ex. prostitution). Engineering is more prestigious than programming, so no wonder than programmers want to be called engineers.
- airbreather 7y agoAnd in a slightly oblique way, when I was studying at engineering school (University it is called in Australia) the joke among the students was that at Uni we had two hours to get four questions half right(exams), but once we were engineers we would have as long as it takes to not make a mistake. The lecturers that had actually worked in real industry for any period of time had another line, "Most of what you do as engineers could be done by many people, but it the engineer that does it safely in a predictable time, budget and quality". There is no, "move fast and break things" in designing bridges, the electrical grid, chemical plant, airplanes, or even the town sewerage system. If there is it is normally baked in as a "proof of concept" phase very early on. When it comes to unwanted consequences, the whole engineering approach is built around conservative, known approaches with low risk of harm to humans, demonstrable in court if need be. Often the exposure of humans to harm from engineering decisions is involuntary, whereas to software is voluntary. There are even special branches of engineering that use software in preventing harm to humans that are tightly controlled and have certified practitioners (Functional Safety - IEC 61508) I don't think people who write software for a living are any less, or less important, than engineers. In recent times it is hard not to argue that production of software has been instrumental in changing the world more rapidly than any other one profession or pursuit in the history of man. But I do think that a lot of the time the workflows and methodologies employed in the pursuit of these very rapid developments we have witnessed are not of an engineering paradigm. The majority of software development lives by different rules (appropriate for the outcomes, consequences and potential rewards) and should be considered as a different kind of activity, with it's own approaches.
- lifeisstillgood 7y agoBrilliantly put. Thank you
- jacquesm 7y agoThis big difference is in a single word: responsibility. The software industry has somehow gotten away with conflating engineering and the disclaiming of responsibility. In the long run that is not tenable.
- ksec 7y ago
- vlovich123 7y agoI feel dumber having read that.
- roenxi 7y agoCompanies work by dividing all tasks into smaller tasks and parceling them up among the employees, aiming to specialise to knowledge of individual workers. 'Engineer' can mean a couple of different things depending on culture & context, including I think a 'person who works on engines'. However, professional engineers are technical decision makers. A good engineer will think through a project from start to finish, anticipate all the decisions that will come up, and make them. Not obvious trivial decisions like 'does the bolt need tightening' but the big picture ones like 'is this standard acceptable?', 'is this trade off acceptable?'. Big companies separate engineering from programming. Small companies will not have the resources, so the roles will be combined. Adding a dependency, changing an API and choosing major data structures are all engineering decisions. Deciding how comprehensive the testing framework needs to be. Maybe some algorithm choices. Typing Python code is not engineering. Implementing some well established algorithm like Quicksort is not engineering. Doing something using an API because someone told you to is not engineering. Writing a unit testing is probably not engineering. Move-fast-and-break-things is not engineering, although it does seem to work very well. There is overlap. I don't see why someone who is making big picture decisions shouldn't call themselves an engineer. Being regulated and certified is only mandatory if the government says it is.
- pojzon 7y agoBy your definition, anyone who is a full stack developer is actually a software engineer. To be honest any decent dev is interchangeable between positions in a corporation, its simply better for your career. I can create whole systems from ground to top, from design through backend and frontend with infrastructure and orchestration. Can i call myself an Engineer then ?..
- pjmlp 7y agoIf you have an university degree, validated by the Order as providing the necessary knowledge to be one, then go ahead.
- roenxi 7y ago> Can i call myself an Engineer then ?.. Legally, I don't know. Personally, if you might be making a lot of engineering decisions then I wouldn't object. I would probably consider a lot of full stack developers to be basically engineers. A FSD isn't necessarily making engineering decisions though. I can imagine a FSD who is expected to make all elements of a stack work together without having any real control over what composes the stack - maybe doing bugfixing, configuration and integrating new bits on demand. That wouldn't be engineering to me because there isn't a lot of control over high-level decisions.
- liothen 7y agoSo the article contends that software doesn't play critical role in society. Apparently the author doesnt know that most power plants, nuclear or even hydroelectric are run by software, not to mention a few small things like medical equipment. Oh and airplanes use sofware too.... wait software is in almost all critical engineering projects. Maybe the author should do more research.
- liothen 7y agoAlso software powers your phone and more importantly the autocorrect feature.
- ahaferburg 7y agoYou can edit your posts, you know. Or delete them.
- liothen 7y agoi was using an iphone app at the time that didn't provide the functionality.
- ncmncm 7y agoI see that you maybe skimmed it a little too fast. It is because software plays a critical role in society that it needs to be done by engineers; but it largely isn't, and it shows.
- liothen 7y agoWith most engineering there are standards and math is the main constant. Software is more akin to baking you know what to make but how you make it will differ (largely because of different programing languages) as does the taste of the intended customer.
- tluyben2 7y agoIt definitely shows: in my uni I had a professor (pupil of Dijkstra) who we thought was very elitist (not so weird considering his pedigree) ; he said the world will be a bad place if we continue the bad software practices and was all for allowing (!) non engineers to make games and ‘fun things’ but not anything that actually does anything that could lose money or health if done badly. I have not spoken with him for a while but he must be crying every night about the JS uprising. 20+ years further, I am starting to agree with many of his points.
- Fellshard 7y agoDoes it stop being an engineering practice because a vast number of practitioners are incompetent, and fail to practice engineering rigorously? Or is it rather the case that it is an engineering discipline with frighteningly little done to train, apprentice, vet, and self-regulate its practitioners? Is it the nature of the work or the workers that define engineering? I'd argue the former, every time. As for 'the public good', that sounds like a convenient definition to make a point, but didn't seem like an actual boundary one can set, beyond perhaps the common bindings of engineering ethics blatantly missing in the software world.
- andmarios 7y agoEngineering is not about building robust structures. It can be applied towards that goal but that's it; an engineer takes specifications and constraints and solves the problem within these bounds. An important part of an engineer that the article fails to mention is the use of the tools of applied mathematics. If you use an RDBMS and you normalize your database, you are closer to an engineer than someone who can only handle NoSQL.
- reilly3000 7y agoLess death is attributable to software engineering, but certainly more harm could be attributed to it. What happens to our species if you engineer the perfect algorithm for controlling the attention of a whole people group, then use it to stimulate their most base emotions?
- jacquesm 7y agoAs 'software is eating the world' more and more deaths will be attributable to software development and there comes a point where the rest of the world will no longer be content with the crap our industry produces.
- rdiddly 7y agoAn engineer is just someone who uses ingenuity. Same word. (ingenieur I believe) Regulators should treat software as a licensed engineering discipline though. Needs a [2015] in the title.
- chirau 7y agoThis is a very poor definition. Probably the poorest. I wonder what your definition of a doctor is then. Being a guilded engineer myself but now called a software engineer, I can tell you with absolute certainty that software engineers as defined by industry today do not make the cut. They are the equivalent of witchdoctors to doctors. Make of that what you may and then tell me again what an engineer is and what software engineer is
- enz 7y ago> "It undermines a long tradition of designing and building infrastructure in the public interest." Well, that's what some of the so-called software engineers actually do. And they are not necessarily doing programming. I would agree that most of the programmers should stop calling themselves engineers because programming is not engineering per se. I would agree that we must stop considering "SE" and "programmer" synonymous in most cases. Maybe the term "software craftsmanship" can be a good alternative. However, it does not mean that "software engineering" as a discipline does not exist. I think it exists and people doing it should call themselves software engineers. And those people are not necessarily doing programming.
- xondono 7y agoAs an engineer myself (EE) I disagree completely with OP. Engineering is mostly about making tradeoffs. It’s not that software does things different that other engineering fields, it’s just that it faces different cost structures. Bridges, buildings and infrastructure face huge costs when making changes in the middle of the project. Some operations make changes almost impossible, or so expensive that they are considered impossible. The worst case scenario for software is starting over, but a lot of stuff can be fixed even after release. By the way, bridges, buildings and the like also have BIG blunders, but since they are not necessarily visible from the outside, we assume they are nowhere to be found. The internet exposes your app to thousands if not millions of people with technical knowledge, but no one can see the cracks on the main pillar of your building, so you fix it, you keep quiet and go on.
- amelius 7y agoThis piece reminds me of the old saying "if Microsoft built cars, they would crash twice a day". http://homepage.tinet.ie/~nobyrne/ms-cars.htm http://homepage.tinet.ie/~nobyrne/ms-cars.htm
- itronitron 7y agoa term that is widely used will have multiple meanings. considering who gets referred to as an 'artist' these days i can't really be upset with how the term 'engineer' is applied.
- 0-o 7y agoI get the premise of the article is to show that software developers aren't all that special, and shouldn't call them engineers. But what's frustrating to me is the blatant comparison of structural engineering with computer security. The comparison stops at the point that they're both in place to make sure nothing bad happens. Imagine building a bridge and having to fend off hundreds of adversaries continuously getting more advanced in finding ways to destroy your bridge.
- leoedin 7y agoI've got an aerospace engineering degree and have worked across a number of industries, from satellites to robotics. These days my job is about 50% software. Software development feels the same as other engineering design. You generate requirements, prototype, test and iterate. To argue that it's not engineering because it's not regulated is stupid, partly because most engineering fields outside of buildings aren't particularly regulated anyway, and partly because there's loads of regulations which are just as relevant to software engineering. Generally safety standards apply to the whole system - not just the electronic design, but the software and hardware interaction. The complexity of software means you have to take a slightly different approach to actually quantify risk of failure, but it's still very much engineering.
- pjmlp 7y agoThing is, it is regulated, sadly not enough world wide. Back in Portugal no one can call themselves Engineers if their degree wasn't done at an university validated by the Order. And even then, you are only allowed to sign certain kinds of projects after getting the professional title. Naturally coders, with roles similar to construction workers, can be anything.
- leoedin 7y agoI think software development is a wide range of things, all the way from hacking on WordPress plugins to safety critical software. "engineering" comes in somewhere on that spectrum. Some software development is engineering, but not all is.
- somada141 7y ago‘The title “engineer” is cheapened by the tech industry.’? That’s a little over the top ain’t it? There are a lot of degrees combining electrical & computer engineering. My diploma was in such a degree and my PhD was in informational technology and electrical engineering. I think the lines between the two fields are blurred and by no means do I believe that one title/specialisation is better or harder. I started working as an EE and later on moved to coding and both fields have their own challenges and hurdles. I never felt that a person that didn’t get a degree explicitly in engineering doesn’t get to call themselves an engineer.
- acqq 7y agoActually there are different things for which people study: a) computer science b) computer engineering c) business and management One who is an engineer (b) by training can spend most of his life implementing the wishes of the (c) people, basing his work on some results obtained by the (a) people, and the product can still be against the "public interest" as in the implementation of the MCAS for Boeing 737 MAX (where it can be said that the software was actually produced "according to the specifications" but that the "specifications" were faulty). But that doesn't mean he isn't an engineer, only that he works in an environment that is driven by the goals which aren't of "public interest." There are even more extreme "non-public interest" stories to be told, but that just means that on many levels there should be more done to move the society to do what the "public interests" are. Which as we know is not easy at all, and surely not decided by the practitioners of of some engineering discipline themselves. (and moderators, please add 2015 in the title).
- pjmlp 7y agoAt very least those that haven't taken an Informatics Engineering degree, with professional title should stop calling themselves engineers. There is a certain level of expectation beyond such title.
- Ragib_Zaman 7y agoIn a somewhat similar vein, I've always found it odd that engineering students commonly refer to themselves as engineers. I agree with much of the linked article and believe the title of engineer implies that one has already gone through a rigorous testing and certification process and that you conform with continual professional development and regulation. So it irks me slightly to hear a first year student call themselves an engineer. It feels like a medical student calling themselves a doctor. In other fields where the title most designates that you regularly do an activity and does not imply certification and strict regulation I think it's fine to call yourself by that title even if you are a student. Many CS students are programmers, or PhD candidates in mathematics are mathematicians.
- pjmlp 7y agoSome countries do require certification, just like doctors.
- amelius 7y agoThen I think there should be something like the Hippocratic Oath, but for engineers. "I swear by Hephaestus, god of technology, that I will write only software that causes no harm to humans, and does not infringe on their privacy ..." https://en.wikipedia.org/wiki/Hippocratic_Oath https://en.wikipedia.org/wiki/Hippocratic_Oath
- Avi-D-coder 7y agoWhile a random js dev should not be called an engineer, the complexity and societal impact of modern software stacks far surpass most "true" engineering projects. If Linux, Google, networking, etc.. were to stop working what would be the global economic cost? If your work requires using formal methods, maths and extensive testing to ensure the reliability of the most complex systems known to man, than your an engineer not just a programmer.
- mikasjoman 7y agoI don't see any difference between a mailfunctioning piece of software creating serious harm to that of a crashing bridge. They can both kill, create huge social disturbance and leave people ruined. The problem is that the field still largely just thinks of them as bugs when it comes to software. That we have an abundance of programmers not taking software engineering as serious as the mechanical engineer is a huge problem today. When someone gets hurt from a bug, the software engineer mostly gets away with it (or get a reprimand from the boss) and doesn't get his/her licence to write professional code away. To be honest, what we would need is a professional certification where the software engineer should at random be required by law to be audited about his/her code and potentially be forbidden to work with some type of projects if it doesn't pass. I have seen way too many nasty outcomes and suffering during my career in the industry to hold any other opinion. We have real software engineers out there who write clean, rigid & maintainable code - but the industry is flushed with hobby tinkerers allowed to work on projects that can result in serious harm. Calling oneself a software engineer should be regulated, audited like any other engineering field. That we don't require it, leaves us with the nasty results that is an ongoing disaster. Anyone can write a piece of software, the way anyone can build a bridge. Ensuring neither of them come crashing down and adhering to principles and practices that doesn't make it come crashing down with high certainty is what's makes engineers different. If you have read the book "structures - or why things didn't fall down", you know that those other engineers from other fields also fail on and off. The difference is that in software we just keep building the next bridge go come falling down when the previous broke.
- Theodores 7y agoJob titles matter to people, why pay someone a raise for being good when you can add an extra buzzword to their job description or change their job title to something that sounds posh? It is a win-win for the company, they can introduce their 'junior assistant' as 'senior engineer' to impress whomever is being given the show and tell. What I find objectionable to the pigeon-holing is that 'engineering' is one of the most creative disciplines there is, whether you are engineering a bridge or even software. But the wider world of artists can't see this. If you use maths to make something then that is not 'creative' it is 'technical'. This segregation of 'technical' and 'artistic' starts out in school, so if you end up as an artist making brown pots then that is deemed 'artistic' and thereby wonderfully creative despite the fact that brown pots have been made in a similar way since before recorded history. If you teach an AI system that has been trained on the Utah Teapot to make a brown pot in polygons then that can't be 'artistic', even though art only ever innovates when new mediums come along. There is a related wrong-phrase with 'Computer Science'. How much science is there is new ways of doing things with ones and zeroes? Or is this 'technology' that we are talking about? I am not entirely happy with the word 'developer' either. Therefore the phrase 'computer programmer' works for a general audience as in 'I just do programming' or 'oh, here is one of our programmers' (before door to darkened room gets shut). If your work gets used by people then the validation should come from the metrics that come from that, not from a title that is slightly inflated.
- cm2187 7y agoI think the article is right for the wrong reason. There is nothing in engineering that relates to public interest particularly. I am sure there are good engineers in the tobacco industry. I hold a formal engineering degree myself, not a single line in the curriculum relates to public good. But I think the article is right that programmers are cheapening the term “engineer” by their incompetence. Anyone can call oneself a programmer and for a non technical business owner, there is no way to know that their programmers are not going to pepper their systems with rookie mistakes: sql injection vulnerabilities, unvalidated user inputs, unpatched software, default, shared, hardcoded or missing credentials, clear text passwords, etc. None of this is hard or expensive but this is the cause for the quasi totality of data leaks in the past. How do we create confidence in this profession? It’s not a university degree, I am not sure any CS course even covers this basic stuff, and that does nothing for the stock of existing programmers.
- demarq 7y agobecause bad "traditional" engineering isn't taking lives or casing financial loss and poor health? The article was a "lets take an ideal apple and compare it to a rotten organge"
- amelius 7y agoAn engineer is a person who uses numerical simulation software to guarantee safety of bridges, buildings etc. A programmer is the person who wrote that software.
- amelius 7y agoAn engineer is a person who introduces CPU speculative execution bugs. A programmer is the person who works around them. Speaking of which, a CPU is typically designed in a programming language such as VHDL, so by the logic of the article Intel's engineers are mostly just programmers as well ...
- tomerbd 7y ago"In the United States, registration or licensure of professional engineers and engineering practice is governed by the individual states. Each registration or license is valid only in the state where it is granted" https://en.wikipedia.org/wiki/Regulation_and_licensure_in_engineering#United_States https://en.wikipedia.org/wiki/Regulation_and_licensure_in_en...
- deleted 7y ago[deleted]
- bobosha 7y agoI feel it's false equivalence to consider the "engineering" required to build bridges and buildings vs. coding websites and mobile apps. Mind you, those fields of traditional engineering have hundreds, perhaps thousands of years of experience (read: disasters) to draw upon. Software engineering is barely 50 years old - the equivalent of mud huts, straw roofs and ropes & plank bridges in construction. Like with anything else, these things takes time to mature.
- t0ughcritic 7y agoI think while we are at it, MDs need to remove the Dr. Prefix as well, no other profession regardless of if they have a doctorate or not does this.
- mto 7y agoRead that article couple years ago, but still I just have to look at the quality of all the electric devices around me... It's not all bridges and hospitals. Heck, even my electric toothbrush from Philipps can't make it through a full year without failing (planned obdolesence or not). Security aspects are typically even worse in non-software development fields. Just look how awfully unprotected things like babyphones, elevators, cars etc. always were and are. Only that hardware hacking is usually riskier and less convenient (and often not very rewarding). But yeah, of course... The threshold to get started with software is lower.