Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming

Should Programmers Be Called Engineers? (theatlantic.com) 568

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."
This discussion has been archived. No new comments can be posted.

Should Programmers Be Called Engineers?

Comments Filter:
  • by ZiakII ( 829432 ) on Friday November 06, 2015 @11:23AM (#50876771)
    No
    • by David_Hart ( 1184661 ) on Friday November 06, 2015 @11:42AM (#50876969)

      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...

    • "No" is good enough for a short answer.

      It is conceivable that at some future time, some code might be produced by folks using a more rigorous and less haphazard process than that used by most programmers today. Maybe that'd qualify as engineering.

      But I have some doubts that the code would be any better and I'm pretty sure that writing it would be slow, tedious, expensive, and not much fun.

      • by Entrope ( 68843 ) on Friday November 06, 2015 @11:52AM (#50877117) Homepage

        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.

        • I would agree that proper software engineering involves about 10% coding and a whole lot of doing a great many other things like documentation, specifications, and debates over interfaces (user, API, and even hardware hooks if you get to the driver level). and last but not least quality assurance testing to proof the system including formal code review. When I was spending more than 10% of my time actually coding, I thought I was making some real progress for the week... and started to get worried.

        • by Zmobie ( 2478450 ) on Friday November 06, 2015 @12:58PM (#50877817)

          Yea agreed, working in the airline industry for my career there is definitely a huge difference in systems that my company has to deliver and systems the average tech company pushes out. We spend more time developing the specifications, test plans, and running through them than I've ever heard from other people working in other software fields. Not only that, but when anything we have even has a hiccup (and a lot of times not our fault) our support group is immediately engaged and sometimes spends hours on the phone helping them limp along and fix the issue (the systems we deliver are not allowed to have downtime, most of them have to run for a decade with maybe a couple of hours a night to do cleanup/maintenance). When working with physical equipment and having to maintain extreme high availability/fault tolerance it qualifies as engineering in my opinion.

          That all said, I actually feel like there should be engineering oversight and regulations for software because allowing it to be the wild west and letting morons sling code out like crazy is exactly why we have all these security issues and such. I've argued for years that no matter how hard it is there should be some basic standards developed for software in general, but people either don't want it because it makes development more costly or they just dismiss it as impossible. I will conceit that it would be very difficult to develop standards equivalent to that of electrical or structural engineering, but it is definitely possible to at least create some to eliminate the morons that don't even know how to organize their code from spewing bug riddled messes out...

      • Re: no (Score:3, Insightful)

        by Spazmania ( 174582 )

        says the tech industry has "cheapened" the title

        I agree that software developers shouldn't be called engineers, but for the opposite reason. Developers are more than engineers, they're artists and intuitives. Calling them engineers cheapens the remarkability of the work software developers do. Treats development as if it was nothing more than the rote application of math to science.

    • 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. As such, programmers are not really engineers. I always describe myself as software developer, not software engineer.
      • by sjbe ( 173966 ) on Friday November 06, 2015 @01:43PM (#50878287)

        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.

    • by bigpat ( 158134 ) on Friday November 06, 2015 @12:30PM (#50877547)

      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.

  • Definition (Score:5, Insightful)

    by Anonymous Coward on Friday November 06, 2015 @11:26AM (#50876791)

    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.

    • by Anonymous Coward

      And see if you get a letter from the board that regulates engineers.

      Note that trash collectors call them selves sanitation engineers and stay-at-home parents are domestic engineers.

      • by lazarus ( 2879 )

        I did this. They called. They have a *lot* of lawyers (that's all they have), and they absolutely don't want people passing themselves off as structural engineers without the right certs (and memberships). My explanation resembled the parent of this thread and they were not amused.

        I had to change my company name.

      • The organization which controls the title Professional Engineer and which sets the standards some states use for licensure does in fact certify Professional Engineers in software just as they do for electrical engineering and other branches of engineering. So they recognize it IS engineering.

        They also recognize that just as most construction workers aren't engineers, neither are most code monkeys. It's a common mistake to think that everyone working on information systems or software is a coder. That's

    • by Luthair ( 847766 )
      Depends on where you live, in Canada you can't legally claim to be an engineer or do engineering without being a member of the professional body.
    • Where did you get these definitions?

      • by tomhath ( 637240 )
        Also question the source of the /. article. A "Game designer" wants to define who is an engineer and who isn't? Shouldn't we leave that up to Medieval History majors?
    • by gnupun ( 752725 )

      I get it, if a programmer writes, a = b | c, he's not an engineer. But if a VHDL/Verilog developer writes the same a = b | c, he's suddenly an engineer, way above the lowly software code monkey, even if the code they both write does the same thing.

      Both software developers and hardware Verilog/VHDL engineers write similar code, arithmetic and logic operators, conditional code, loops, variables etc. The main difference is hardware executes these statements in parallel and certain things like multiplication/di

    • Re:Definition (Score:5, Informative)

      by Zmobie ( 2478450 ) on Friday November 06, 2015 @01:14PM (#50877957)

      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.

    • Well, if you try to call yourself a Software Engineer in the state of Texas, you'll get yourself in trouble as it's legally a regulated title there.
      • by OhPlz ( 168413 )

        I've heard this claim before. It may have been true in the past, but it isn't now. I work for a fairly big company that is headquartered in Texas. My title ends with "software engineer" just the same as my peers that actually work out of the Texas office. We have a competent legal team, so if there were such a restriction, we would honor it.

  • by Anonymous Coward on Friday November 06, 2015 @11:26AM (#50876795)

    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.

  • There are a few I've worked with where I think the title of engineer would be fitting, but I've also met plenty where cowboy would be just as apt.

    I think engineer was cheapened a bit before programmers adopted the title though. Back in school we had a "custodial engineer" that swept the floors.
  • If builders built buildings the way programmers wrote programs, the first woodpecker to come along would destroy civilization.

    Any field with "science" in it's name isn't one.

    etc., etc. I was hearing the same stuff when I was in grad school back in the 80's. Who cares?

    • Any field with "science" in it's name isn't one.

      I very much prefer the term more widely used in French and Spanish, "Informatics".

      It more precisely describes the common core of the discipline - information processing, not only for building code, but also for analyzing data, systems and business processes, which are also essential to the craft.

  • Not all of them (Score:5, Insightful)

    by itamihn ( 1213328 ) on Friday November 06, 2015 @11:28AM (#50876809) Homepage

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

    • This!

      As stated:

      "Traditional engineers are regulated, certified, and subject to apprenticeship and continuing education."

      I only flippen dream. Let's be freaking truthful here. In my years I (and I would guess-ta-mate yours too) have seen many self proclaimed "engineers" whom I would not even call "road kill worthless hack jobs that make my life hell" coding on systems doing some of the stupidest crap. (but the boss likes them)

      But hell .. to be regulated is smoke and mirror and will never happen. God forbi

  • by vivaoporto ( 1064484 ) on Friday November 06, 2015 @11:28AM (#50876817)
    In Portugal the title "engineer" is subject to acreditation [sigarra.up.pt] by the Order (much like medical doctors or lawyers) and not all students that complete an engineering school can use engineer as the professional title.

    It's a distinction without a difference anyway, people mostly want to use "engineer" and "doctor" as a sign of status (replacing the old system of royal and noble ranks) while professionally it carries no difference at all.
    • by MightyYar ( 622222 ) on Friday November 06, 2015 @11:40AM (#50876953)

      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.

  • by MightyYar ( 622222 ) on Friday November 06, 2015 @11:28AM (#50876821)

    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.

    • I believe only civil engineers have those requirements. I know a lot of people who design all kinds of things and none of them are licensed. That ranges from every day products to cars to people who have moved on to SpaceX. But yes, if you want to design a bridge you're going to be required to have certain credentials. Does that mean none of the other people doing engineering work are engineers? I think they are. Does that extend to software? IDK, does it matter?
  • No. (Score:5, Insightful)

    by ld a,b ( 1207022 ) on Friday November 06, 2015 @11:30AM (#50876841) Journal

    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.

    • I do find it adorable that people think by tightly regulating who can call themselves "engineers", that it will magically make all those that have the qualifications competent.

  • by rwa2 ( 4391 ) *

    If they're already trained engineers developing code for engineering projects.

    Yes, there's some sort of corporate exemption loophole where a company's "engineering laborers" don't have to be licensed, since the company accepts the responsibility for being sued for defects. On public projects there's still a licensed engineer who reviews and signs off on the final plans.

    Next question.

  • by aussersterne ( 212916 ) on Friday November 06, 2015 @11:32AM (#50876861) Homepage

    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.

    • by CAIMLAS ( 41445 )

      OK. So follow this through logically for a moment.

      Engineering - Professional Engineers - is a tightly defined field, and is primarily required by government works. There are standards and specifications to which things must be built, based on known material strengths and capabilities.

      If it is exploratory work, it's not engineering, it's science. No PE is going to sign off on "clean room" type materials which haven't been subjected to a battery of tests. The materials available for common structural construc

      • same, but rather that the needs and purposes that lead to the title are the same. The standards will have to be different (appropriate to the materials, practices, etc. of the field), but the reason for the standards is nonetheless clear: code that the public relies upon must serve the public responsibly, and the public has an interest in ensuring that this is so.

        In private, for code whose execution instances will only affect one individual or family at a time, people are free to use Visual Basic code writt

  • by gstoddart ( 321705 ) on Friday November 06, 2015 @11:33AM (#50876871) Homepage

    I have a degree in Computer Science, and worked as a code monkey for a lot of years. I also know people who are Engineers.

    Where I live, engineer is a regulated word, part of a professional governing body (like doctors and lawyers), and which carries with it legal responsibilities and liabilities, and a minimum level of education.

    In no way shape or form do programmers live up to the title of "Engineer". They do things which have commonality with engineering, but they are not Engineers.

    There is no licensing, no accreditation, or professional body which oversees it.

    In my experience, calling programmers (or most people in the tech field) "Engineers" does a real dis-service to people are really are engineers. It's just usually people looking to add fancy sounding words to their business cards.

  • by jbeaupre ( 752124 )

    Why stop at Software Engineer? If you expropriating titles, why not take Software Physician? Software Attorney? Software Priest? Software Pilot? Software Mortician?

    Yes, it's technical and detailed and takes lots of planning and training. So do other professions. But it's not the same training or methodology. They each have their own professional name. Software people need to create their own professional name.

    Code monkey is pretty offensive. But Software Primate might fly. Just get the Software

    • by halivar ( 535827 )

      Software Priest? ... Software Mortician?

      No, these are apt. There are times where intercessory prayer for a test build is needed, and others where a grieving stake holder needs to be told their beloved application has passed on to a better system.

  • Here we go again (Score:4, Interesting)

    by CAIMLAS ( 41445 ) on Friday November 06, 2015 @11:34AM (#50876891)

    Look, 'software developers' are, to a large part, engineering software. They're making a machine, an engine designed for a specific purpose. I don't personally think MOST 'software engineers' qualify as actual engineers, they're neither bright enough nor especially forward thinking enough. But you're not going to hoist a regulatory body on an industry like software... we don't want it, and it won't help the industry. (Though, that's never stopped government before...)

    The fact that so, so many software developers are shitty engineers is besides the point. There are many, many shitty "real" engineers out there, too. The difference is that the damage of a single bad software 'engineer' is negligible compared to the damage of a single bad real world engineer.

    Knowing quite a few of both, I would say the biggest mindset difference between a software developer and an engineer is whether they're conservative or liberal. Software developers, for whatever reason, almost invariably seem to be very politically liberal, which I feel is the same mindset reflected in a lot of the disastrous "cleverness" so many developers inflict on people, but also in the ability to write extremely useful tools. Licensed engineers almost always seem to be fundamentally conservative (as are most good systems people), if not necessarily culturally or socially. Now, there are definitely exceptions to those rules, but for the most part they seem to be true - desire for pushing their own ideas, versus desires for order.

    Now, there are definitely people in the field who should be called "engineers", though they're typically not developers. They're the ones who are finding design, implementation, or use case issues - and those disciplines almost never fall under an 'engineering' title. (Though, Senior Software Engineers or whatever are often doing this, as well.)

  • by ZahrGnosis ( 66741 ) on Friday November 06, 2015 @11:35AM (#50876895) Homepage

    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.

    • 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.

      Actually you should thank the software engineers who designed and wrote the programs used to model and load test the bridge design for vibration simulations cause by vehicles and natural forces, simulated load testing of materials, joints, bolts and tensile strength, and simulated curing times based on atmospheric temperatures, humidity, and sun exposure.

      Everything it done by a computer now, which means everything relies on a software engineer in the equation.

  • To what end? (Score:4, Interesting)

    by LoyalOpposition ( 168041 ) on Friday November 06, 2015 @11:35AM (#50876897)

    If we want to be strict shouldn't the term "engineer" apply only to those people involved with the design, construction, operation, and maintenance of external-combustion steam-engines for use pulling large masses along doubled rails, and naval propulsion? I don't mind anyone calling themselves an engineer, so long as they don't defraud someone about their abilities for the purpose of selling them a bill of goods. And this from an engineer having two engineering degrees from major state universities.

    ~Loyal

  • Nothing new here, move along... We've been debating this for most of my 35 year professional career.

    (Personally, I'm in favor of distinguishing 'software engineers' from 'programmers', and licensing 'software engineers' -as a means to establish professional liability.- But I can assure you that very few companies are interested in the idea of liability for software products. Nor are they interested in paying the substantial costs for professional liability insurance.)

    • My diploma from the university says "Master in Science of Engineering, Software". So I guess I'm an engineer.

      But very little of what I've seen in my professional career can be labeled engineering with a straight face. The business is just not mature enough to do its business to engineering standards. I hope it'll grow up with time.

  • by U2xhc2hkb3QgU3Vja3M ( 4212163 ) on Friday November 06, 2015 @11:41AM (#50876963)

    Police Officer: "Are you classified as engineer?"
    U2xhc2hkb3QgU3Vja3M: "Negative, I am a web monkey."

    Fight for your bitcoins! [coinbrawl.com]

  • Sometimes (Score:5, Insightful)

    by Anubis350 ( 772791 ) on Friday November 06, 2015 @11:43AM (#50876975)
    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.
  • by Dishwasha ( 125561 ) on Friday November 06, 2015 @11:44AM (#50877003)

    I'll leave regulation for the engineers and automotive firmware developers. I'm upgrading my title to software physician so I can claim that I "practice" software development and don't incur any liability.

  • Software today isn't reliable, WAAAAHHH!!!!!

  • If in construction engineering, a single misplaced screw could the demolishion of an entire building, we'd still be living in caves.
    If, however, in software engineering a single misplaces screw causes minor inconvenience, all of a sudden we shouldn't be allowed to call it engineering.

  • Overlooked by the author: power plants, and missile-defense systems both are entirely run by software. Bridges, skyscrapers, power plants, and missile-defense systems are all designed in software.
  • Because it pisses off the insecure people who whine about this.

    The whole "engineer" requires licensure thing is a recent invention and is mostly for people to puff up their status, much like lawyers trying to make "esquire" happen. They already have a title, "Professional Engineer", and they can stick "PE" on the end of their names all they want, and no one else is allowed to.

    "Engineer" is a common word they don't and will never own, at least not in the United States.

  • As somebody who took Software Engineering in university, I would have to say that most programmers, myself included, are not working as software engineers.

    There's a lot of software that definitely should take more of an engineering approach. Things like vehicle control systems and systems that handle financial data.

    Other things like games on the other hand, probably don't need to be "engineered" and would probably be a lot more expensive if we required them to jump through a lot of hoops to be certified by

  • Which is exactly why non-traditional engineers developing software have progressed so much more quickly than other engineering disciplines.
  • by johnnys ( 592333 ) on Friday November 06, 2015 @11:48AM (#50877061)

    "But fifty years' worth of attempts to turn software development into a legitimate engineering practice have failed."

    Nobody has really tried to do this: There's more money to be made by keeping programmers as fungible low-level serfs and pumping out piles of "good enough" code, so all the pressure is against the creation of a proper professional practice.

    Why are engineers professional? Because the failures in the past of unprofessional engineers killed a lot of people. (I'm thinking pre-Brunel, not recently.) So societal pressure pushed engineers to self regulate and/or be regulated, and that pressure forced a profession to emerge.

    When a LOT of people start dying from bad software, then you'll see people wake up to the dangers: Hopefully you'll see a grassroots push to start to force liability on the producers of software and see some heads roll. That may lead to a push to regulate and control the standards that software needs to meet, and that may lead to some sort of professional software and ITSec organisation that will serve to raise the devs above serfdom and into a professional practice.

    IMHO, Linus Torvalds is a heck of a lot closer to a "software professional" than anyone at Microsoft.

    (If you take my tone as being critical of engineers, don't. I have the highest respect for engineers and I only wish that software developers and IT security people had the same level of professionalism!)

  • There is no concept of professional licensing for programmers, so there is no legal justification for this.
    Also, programming is not an applied science, so there is no philosophical reason for this.

  • I've seen this evolve over the years.

    From what I have seen it came about because companies are slow to adapt to changes. As such they have a hard time justifying larger salaries for Programmer or Systems Admin. Especially when the person in question has lots of experience.

    As such they began attaching "Engineer" and "Architect" to the titles as these words allow them to distinguish the knowledgeable and experienced programmer or admin from the rest and allow them to justify the higher salary.

    So it is more a

  • by celest ( 100606 ) <mekki@mekki.ca> on Friday November 06, 2015 @11:52AM (#50877111) Homepage

    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... [peo.on.ca] - 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... [ontario.ca] & http://www.ontario.ca/laws/reg... [ontario.ca]

  • I think your industry would do well to create a vetting system that established core competencies for professional software engineers. Anyone so established via education, training, and testing would be distinguished from the large mass of us who hack evenings and weekends and who really shouldn't be entrusted with protecting the health, safety, and welfare of the general public.

    Licensure is authority established via the government, usually each individual state. There can be reciprocity between them, but t

  • Engineer doesn't necessarily have to mean "Someone with professional certification who performs a task in a pre-designated method begat wholly by one's predecessors."

    The more general definition is simply "creator of systems".

    More to the point, we do have professional certifications, we have professional societies, and while we may not be represented by a national-level federation with standardized capabilities, we still present a much-in-demand skillset at a variety of levels. If I had to guess, I'd say th

  • But software engineering is a real discipline and something that exists. It is also something distinctly different from computer science, as the relationship between computer science and software engineering is one that is identical to that to other scientists like physicists and material scientists to mechanical, structural, and aerospace engineers.

    The problem is having somebody who has read a book about Visual Basic or taken a two week certification course and then is proclaimed "an engineer"... which is

  • I am an Electrical Engineer (P.Eng., FEC) One of my friends has a B.Eng. in Software Engineering. Yes, you can get an engineering degree in software.

    I've done a lot of programming and seen a lot of code and frankly, most of the people that say they can code are fucking awful at it. I've written a lot of embedded code, and the stuff I've worked on is still running more than ten years after the last set of human eyes looked at the repository. Realistically, every business that does programming should be r

  • No (Score:4, Interesting)

    by nerdyalien ( 1182659 ) on Friday November 06, 2015 @12:01PM (#50877233)

    I support the motion of *not* calling programmers as engineers.

    Starting from the academic point of view, engineering curriculum is far more different than a CS. General undergraduate engineering course comes with number of core modules with the purpose of teaching basic "Engineering Concepts". Furthermore, engineering courses are focused towards "skills training" by range of hands-on laboratory classes, design projects, team projects etc, to learn skills such as see the big picture, learn how to operate instruments, safety, planning etc.; which are a must to function as a professional engineer in industry. Then once in the trade, engineers generally become a member of a professional body e.g. IEEE, IEE, etc. and they are sworn to obey their code of conducts.

    Switching gears to my personal story, I trained as an electrical & computer engineer. After a stint in telecommunications industry, I went on to work in web development. I was quite appalled by the way "programmers" think and execute projects in general.

    When I worked in the telecoms, I observed that engineers spend quite a long phase in planning before actual execution. In the process, they have to comply range of regulations on telecoms, environment, etc.; and not to forget other concerns such as the commercial interests, backup plans, future expansions, long terms sustainability, maintainability etc. Overall, they consider the "big picture" and do not bog down with just the technical aspect. When it comes to execution, it is generally smooth and trouble free (usually there is a research & trial period before actual execution). Overall, I've seen much more customer orientation and long term view in engineering firms.

    When I worked for the software house, planning was considered a "waste of time" (and not to mention, practises like Agile are generally up the anti). And most often or not, you build the roof of the house before the foundation, then figure out how to connect two of them. By and large, there was poor customer orientation. And most damaging of all, lack of concern or thought on long term view of the project and its outcome. I've lived through many cycles of delivering half-baked solutions to client and milking them on the long run to fix those solutions (and in the worst case scenario, making client go bust). If it is a proper engineering firm, they will be sued for such kind of misconduct for sure.

    Just my 2 cents.

  • by the_skywise ( 189793 ) on Friday November 06, 2015 @12:02PM (#50877251)

    This Ian Bogost?

    https://en.wikipedia.org/wiki/... [wikipedia.org]

    "He holds a joint professorship in the School of Literature, Media, and Communication and in Interactive Computing in the College of Computing at the Georgia Institute of Technology, where he is the Ivan Allen College of Liberal Arts Distinguished Chair in Media Studies"
    "Bogost received his bachelor's in Philosophy and Comparative Literature from the University of Southern California in 1998. He then went on to get his masters in Comparative Literature from the University of California, Los Angeles (UCLA) in 2001, and received his doctorate in Comparative Literature from UCLA in 2008.[3]"

    Ahh... a liberal arts major telling us with STEM degrees what an engineer should be...

  • by sjbe ( 173966 ) on Friday November 06, 2015 @12:08PM (#50877297)

    If you are doing engineering then you are an engineer. What degrees or certificates you hold is irrelevant. My father worked as an engineer for the phone company for years but hold no formal degrees of any kind. Engineering is defined as "the application of mathematics, empirical evidence and scientific, economic, social, and practical knowledge in order to invent, design, build, maintain, research, and improve structures, machines, tools, systems, components, materials, and processes." If you are doing that then you are an engineer.

  • by ilsaloving ( 1534307 ) on Friday November 06, 2015 @12:09PM (#50877321)

    Engineers are responsible for the stuff they build. The average programmer is not.

    Engineers require formal education, certification, apprenticeship, etc. Anyone can call themselves a programmer, regardless of their level of skill. And the situation is just getting worse and worse, because everyone clamours about the importance of lowering the barrier of entry for new developers, resulting in more and more people who know less and less, all the while thinking that they they are on equal footing with someone who could write an artificial intelligence with Cobol and assembly language. (Yes, it's a silly example, I know, but you get the point) .

    I *wish* there was an engineering equivalent to software development. The number of people I come across that think they're god's gift to man, while being grossly incompetent, is depressing.

    Requiring people to be able to demonstrate that they actually know WTF they're talking about would probably wipe out a sizable percentage of the hacks out there, it would give the people who have the talent, but not necessarily the skill/experience, a goal to aim for so that they can *know* when they have reached a suitable level, and overall code quality would improve immeasurably because the people who know what they were doing wouldn't have to spend so much time preventing the boneheads from tanking the entire project.

    • by BlackHawk-666 ( 560896 ) on Friday November 06, 2015 @12:28PM (#50877519)

      It's not the programmer's fault that people who have no right calling themselves a programmer are clamouring to take up the title. The role of the programmer / computer scientist is still the same as it ever was, only now there's people with 6 weeks experience cut and pasteing JS into an editor thinking they are the same as a person with a 3 year bachelor degree in computer science.

      To me, the distinction these days is between programmers and coders. Programmers are qualified, skilled, highly trained professionals capable of writing new algorithms, improving old ones, understanding the underlying architecture and execution trade-offs...coders customise your WordPress blog.

  • by dpbsmith ( 263124 ) on Friday November 06, 2015 @12:13PM (#50877353) Homepage

    Donald Knuth's great work is called "The Art of Computer Programming."

    There's really no answer to this question, but it may help to consider the motivations and interests of the people who use the names. There is a cluster of meanings that hover around the word "engineering" and around the word "art." Programmers fall somewhere in between the two. The search for absolutes is meaningless.

    If you consider a symphony orchestra, it performs an economic job. It has to deliver cost-effective music on schedule. Performances contain defects; people need to decide on the acceptable level of defects. The performer are highly skilled operators of machinery like cellos and celestes. There is a management hierarchy; individual contributors, middle management (the "first seats,") upper management (concertmaster, conductor) etc. etc.

    Yet few would call musicians "music engineers."

    At the other extreme, the person who decides what heating and cooling systems need to go in a new building, and how the pipes and ducts should be sized and routed, exercises a great degree of creativity, but few would call them "HVAC artists."

    What can be said is that management wishes that programming were more predictable, more standardized, and less dependent on individual heroics by non-interchangeable, talented individuals. Management is apt to fall for any smooth talker who claims to be able to organize the work of programming to be less like art and more like engineering.

    Wishing, however, will not make it so, and the CMM Level 5 firms will continue to produce both good and bad work--healthcare.gov was the product of a CMM Level 5 organization. And meanwhile, both bad and good work will continue to be done by "undocumented, chaotic, ad hoc, reactive" manner by small teams of good people who give a damn.

    I always preferred to be called a "programmer" because I have always felt that "engineer" sent a signal that I was working for someone who didn't really understand the nature of my work. I think a violinist would prefer to be called a "violinist" than a "chordophonic engineer."

  • by courcoul ( 801052 ) on Friday November 06, 2015 @12:19PM (#50877443)

    In the industrial world where liability exists and is rigorously enforced, engineers who build software and hardware systems are respectable individuals with strict and comprehensive training, theoretical and practical, very worthy of the title and our gratitude in creating and advancing much of the infrastructure that makes our life easier (and in some cases, possible). A former student of mine works in GE's aircraft engine division (which makes the Dreamliner's engines, amongst others): if the effort he puts out guaranteeing that the software that makes such an engine run achieves a better than 99.999% reliability can't be called advanced engineering, then nothing can or ever will.

    Microsoft's infamous greediness in the consumer marketplace, OTOH, led the way many years ago to a cheapening in the public perception in what we are entitled to expect from something we pay for. Doesn't do what you wanted it to, or fails when least expected? Well, did you not read the EULA?? It says that's a what it is and you accept it as such. And if you don't like it, well... the software isn't even yours. We just let you use it for a fee, but we decide who can or cannot play with our ball. And since all thisway of doing business has never been challenged in court and concluding with a jurisprudence-establishing jury verdict (all such cases 99.99% of the time end in settlements with no acceptance of guilt or responsibility), things will not change.

  • by LifesABeach ( 234436 ) on Friday November 06, 2015 @01:14PM (#50877955) Homepage
    As long as there is a steady pay check involved.
  • by Ed Tice ( 3732157 ) on Friday November 06, 2015 @01:18PM (#50878005)
    Those that have engineering degrees and licenses and are working on safety critical systems! But not every guy with a compiler is an engineer. Disclaimer: I'm a guy with a compiler.
  • by bickerdyke ( 670000 ) on Friday November 06, 2015 @01:23PM (#50878077)

    I AM an engineer and I WORK in software development. Please son't mix that. The latter might change if I work at a different place or task. The first can't be taken away from me.

BLISS is ignorance.

Working...