Slashdot Mirror


Should Programmers Be Called Engineers? (theatlantic.com)

New submitter nervouscat writes: Game designer Ian Bogost argues that programmers shouldn't use the term "engineer" to describe themselves. He says the tech industry has "cheapened" the title, and that it's more aspirational than anything else. Quoting: "Traditional engineers are regulated, certified, and subject to apprenticeship and continuing education. Engineering claims an explicit responsibility to public safety and reliability, even if it doesn’t always deliver. ... Today’s computer systems pose individual and communal dangers that we’d never accept in more concrete structures like bridges, skyscrapers, power plants, and missile-defense systems. Apple’s iOS 9 update reportedly “bricked” certain phones, making them unusable. Services like Google Docs go down for mysterious reasons, leaving those whose work depends on them in a lurch. ... When it comes to skyscrapers and bridges and power plants and elevators and the like, engineering has been, and will continue to be, managed partly by professional standards, and partly by regulation around the expertise and duties of engineers. But fifty years’ worth of attempts to turn software development into a legitimate engineering practice have failed."

19 of 568 comments (clear)

  1. Something something question in headline equals no by ZiakII · · Score: 5, Informative

    No

  2. Definition by Anonymous Coward · · Score: 5, Insightful

    I get the point, but the definition of Engineering makes no mention of "regulated, certified, and subject to apprenticeship".

    Engineering:
    1.the art or science of making practical application of the knowledge of pure sciences, as physics or chemistry, as in the construction of engines, bridges, buildings, mines, ships, and chemical plants.
    2.the action, work, or profession of an engineer.
    3.Digital Technology. the art or process of designing and programming computer systems: computer engineering;
    software engineering.

    Engineer:

    1.a person trained and skilled in the design, construction, and use of engines or machines, or in any of various branches of engineering :
    a mechanical engineer; a civil engineer.
    5.Digital Technology. a person skilled in the design and programming of computer systems: a software engineer;
    a web engineer.

    1. Re:Definition by Zmobie · · Score: 4, Informative

      Not entirely true. When I took Engineering Ethics in college we went over this and the legal definition (in the US and Canada at least) is actually either a person who holds a P.E. in their respective discipline or someone working under the guide of a person holding a P.E (guide can mean they just review your work, we have to do this all the time at my company since P.E.s are not valid in a state unless issued by that state's P.E. authority). Software engineering is the only legal exception. Since no software P.E. actually exists a person can legally call themselves a software engineer if they hold a mild amount of experience (which is legally fuzzy) and there is no recourse if they screw something up. You can read all about it on the National Society of Professional Engineers website www.nspe.org/

      All that said, many (including myself) have argued for years software engineers should have a P.E. simply because it holds the people that wrote the code much more accountable for their actions. This way you can't leave a glaring security bug in the code that you knew about but just didn't want to fix and get away without any consequence for it. Texas, Florida and the Canadian boards have all actually supported this, but without the support from the broader group across North America it won't take any time soon. The standards probably would not be any where near as rigorous as other disciplines just because it is too difficult to check/prove/test software like other fields, but a baseline standard would help tremendously.

      So no the dictionary definition may not indicate that, but the legal definitions do.

  3. That time of the quarter already? by Anonymous Coward · · Score: 5, Funny

    I mean this comes up at least 4 times a year. I personally call myself High Codeomancer and have aliased all my shell commands to be different spells from popular fiction. It does make typing them out slower but you must suffer for your art.

  4. Not all of them by itamihn · · Score: 5, Insightful

    Not all programmes should be called engineers. Only some of them should.

  5. Not all engineers are regulated by MightyYar · · Score: 5, Informative

    I'm a mechanical engineer, and while continuing education is certainly necessary for the sake of both myself and the company that I do work for - I am not regulated in any way. It might be different if we did work with the government, but I have no requirement to be a Professional Engineer. I did sit for the test, but since no one at this entire company is certified there was no way to apprentice. Technically I could now sit for the test again and get the certification based on my work experience, but it is simply not worth my time or effort.

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  6. No. by ld+a,b · · Score: 4, Insightful

    A programmer is a software construction worker.
    It's easy, if someone designs a mechanism, he is no longer a programmer, he is a software engineer.
    However amateur or inept.
    The article mentions training as if it meant much and bridges didn't crumble and batteries didn't explode all the time all over the world.

    --
    10 little-endian boys went out to dine, a big-endian carp ate one, and then there were -246.
  7. The difference is starting us in the face, yet we by aussersterne · · Score: 5, Interesting

    back away from the distinction again and again. It's not programming vs not-programming, and it's not about building stuff in meatspace vs. building stuff in memory.

    It's about public vs. private effects and risks. People who build stuff for backyards = not engineers. People who build stuff for the public square = engineers. People who build a bridge over their own stream themselves = not engineers. People who build a bridge over a public byway for heavy public use = engineers.

    The same ought to be true in codingland. If you are building critical public infrastructure or software that many people must use in order to participate in society, then you should be licensed and bonded and held to higher standards. If you are building software that is for personal, private use, then this is not the case.

    Note that I am talking about instance of execution, not instance of code. For example, MS Windows would not be "engineering" code because each instance of execution is private, while the code inside, say, a traffic lights system, aircraft control system, or automobile is "engineering" code because these instances of execution happen in public, with public effects. (If MS Windows was to be used to run, say, a battleship, then it ought to be a separate "engineered" version held to higher standards of scrutiny, professionalism, and liability.)

    We don't certify and license people as engineers because they might touch wood and steel we think wood and steel are special or important, we certify and license people as engineers whose single instances of wood and steel construction will each touch (and possibly put at risk) many lives.

    --
    STOP . AMERICA . NOW
  8. "Software Engineer" != "Programmer" by ZahrGnosis · · Score: 5, Insightful

    When a building gets built, or a dam, or a pipeline, there's engineers, architects, brick layers, welders, and all sorts of other people involved.

    When you do software, "programmers" is just a catch name all that could fit several of those archetypes -- the only thing you have to do to be a programmer is to actually code. But there certainly ARE software "Engineers" -- people whose job it is to make sure that everything the designers and programmers are individually putting together should _work_, and not fall apart, and survive in the actual ecosystem the code is released in.

    Just like a good mechanical engineer shouldn't be above picking up a shovel or an acetylene torch now and again, if needed, even if it isn't still their forté, a good software engineer should probably be able to code, but that's not really their core purpose.

    And as for "Engineering claims an explicit responsibility to public safety and reliability, even if it doesn’t always deliver"... next time someone fails to steal your identity on the internet, thank a programmer, a software engineer, and probably a computer scientist among others. Next time I don't die driving over a bridge I'll thank a few mechanical and civil engineers, as well as the workers that did their job putting it together.

  9. Re:In Portugal "Engineer" is a regulated professio by MightyYar · · Score: 4, Informative

    In the US we have "engineers" and then we have "Professional Engineers (PE)". PEs are regulated in the usual US way - the certification and regulation is provided by the professional organization, but the state governments generally require certification in order to do certain types of things or to offer your services to the general public. Almost every civil engineer that I know is a PE. Every mechanical engineer that I know who works in the building trade is certified. However, the vast majority of engineers who simply design or manufacture stuff are not certified unless they have some specific reason to go through the hassle.

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  10. Re:Something something question in headline equals by David_Hart · · Score: 5, Interesting

    No

    It's a mote point. No matter what the opinion, the word Engineer is commonly included in computer related position titles (programming, networking, etc.) by companies, hiring agents, in normal conversation, etc. Once a new meaning for a word has entered the common vernacular it's near impossible to pull it back...

  11. Sometimes by Anubis350 · · Score: 4, Insightful

    Are you actually doing engineering work? Scoping out and building a system? If so calling yourself just a "programmer" may cheapen the scope of work you do. Moreover, the author points to huge software failures as examples of things that won't happen in Engineering, but bridges and buildings collapse too, trains derail, car designs turn out to be duds or unsafe, etc. Plenty of what the author defines as "real" engineering has run into the same problems he highlights in software. The author, frankly, seems to have a beef with software as a concept, and a problem understanding its role in the modern world. To answer the post title though: not all programming is engineering, but there is plenty of programming that is.

    --
    "goodbye and hello, as always" ~Prince Corwin, from Zelazny's Amber series
  12. In Canada, term "engineer" is legally protected by celest · · Score: 4, Informative

    In Canada, it's not so much a matter of programs "should not" as "must not" call themselves "engineers". The terms "engineer" and "engineering" are legally protected in all jurisdictions in Canada, much like the terms "lawyer", "medical doctor", etc.

    Programmers who are not licensed professional engineers may not call themselves engineers. The computer science and computer/software/electrical/systems engineering programs at Canadian universities are very different. The engineering programs are accredited at the national level (http://www.engineerscanada.ca/accreditation-resources) to ensure a minimum standard of education for the practice of engineering. There are also post-graduation examination(s) and internship requirements (typically 4 years) prior to licensing. There is no such accreditation for non-engineering programming/related programs.

    Further, programmers who are not licensed professional engineers may not do the work of engineers, even if they don't use the term. Many companies have trouble with this one. The definition of what constitutes engineering work can be found here: http://www.peo.on.ca/index.php... - For example, a programmer who is not a licensed professional engineer may not design the software controlling a self-driving car because life and safety are at risk.

    Laws & regulations: (For Ontario, but similar in all Canadian provinces/territories): http://www.ontario.ca/laws/sta... & http://www.ontario.ca/laws/reg...

  13. Re:Something something question in headline equals by Entrope · · Score: 4, Insightful

    I've done software engineering in the past. It was slow and expensive, parts of it were tedious, and parts -- particularly fallout from the fact that (fairly) rigorous software engineering is rarely done -- involved more hassle than they should have been. Even at that job, most of what I did was more traditional software development than engineering, and all my other software-developing jobs have been far from the level of rigor and care that I would call engineering.

    However, when I did software engineering, with clearly defined requirements and interfaces, with an explicit architecture and functional decomposition of the software, with carefully planned and executed verification and validation, the results were definitely higher quality than you would get from less time- and labor-intensive methods. Most of the time, cheaper methods are acceptable and worth the increased chance of defects. Flight systems, healthcare, other safety-critical systems, and financial computing usually, and justifiably, prefer to pay for more rigor and higher quality.

  14. Re:Something something question in headline equals by ShanghaiBill · · Score: 4, Insightful

    Only when they have to take a test to be certified as a Software Engineer and then are held legally liable for their mistakes.

    Plenty of "real" engineers have no certification and are not legally liable for their mistakes. My company employs several degreed EEs and MEs, and none of them are PEs, and none of them are personally liable for the safety of our products.

  15. Software is an engineering discipline by bigpat · · Score: 4, Insightful

    Programmers are not necessarily software engineers, so the question is dumb. Ask whether software is an engineering discipline and the answer is that yes it is. Not every software project is a software engineering project. Just like doing maintenance on your lawnmower doesn't make you a mechanical engineer.

  16. Re:Something something question in headline equals by arth1 · · Score: 4, Insightful

    And, the test cannot be "something failed, therefore you didn't do it right". We need to be able to distinguish malpractice from new discovery, i.e. an engineer isn't necessarily at fault when a new kind of material failure occurs that the engineering corpus as a whole has never observed and characterized.

    Yes, an engineer is at fault then. Every time.
    If I used a plastic that hadn't been tested for durability in a product that's supposed to be durable, I would have my hide stapled to the wall. The buck stops here.

    It's my responsibility to check every component I use, whether it's by making sure we do it ourselves, or accepting certifications that suppliers provide with an iron-clad contract putting the responsibility in their hands.

    Software "engineers" don't take that responsibility, and generally pass the buck any chance they get.

  17. Re:Something something question in headline equals by arth1 · · Score: 5, Funny

    It's a mote point.

    It's also a moot point!

    On one hand, it's a mote point.
    On the other hand, it's a moot point.
    On the gripping hand, it's a motie point.

  18. Engineering is not just building buildings by sjbe · · Score: 4, Insightful

    While in general the definition of engineering applies to programmers, as practitioners of mathematics and science, I would agree the more excepted definition of building physical things is more appropriate.

    I'm an engineer (among other things) and even have several degrees to prove it. But that isn't what really makes me an engineer. I'm an engineer because I do engineering. The types of engineering I do have nothing to do with building buildings and often aren't even about building physical objects. Most of what I do is properly termed process engineering. I don't design the object, I design the system to build it.

    As such, programmers are not really engineers. I always describe myself as software developer, not software engineer.

    Disagree. I'm not a programmer and you should call yourself whatever you are comfortable with. But I would call you an engineer because you are doing engineering work.