19 votes

Are software engineers "engineers"?

23 comments

  1. [10]
    joplin
    Link
    Yeah, these arguments make me laugh. I honestly don't care what you call me as long I keep getting to do my job. That said, I had some thoughts about what he wrote: I'm glad he pointed this out: I...

    Yeah, these arguments make me laugh. I honestly don't care what you call me as long I keep getting to do my job. That said, I had some thoughts about what he wrote:

    I'm glad he pointed this out:

    In Canada you can’t even call yourself a “Software Engineer” unless you’re accredited!

    I have several Canadian coworkers (I'm in the US), and some of them went through the whole accreditation. They had to meet certain standards and got inducted into a guild. I think they even got a special ring! Ooo! Fancy! I see no difference in the quality, efficiency, or speed of their output vs. the other employees I work with. We all seem to do a pretty decent job.

    Things like calculus, trigonometry, and differential equations are in this category. This is what most people in the US learn in high school, codifying it as what they think of as “math”.

    In software, we don’t use these things

    Lol, wut!? I use those things daily for software engineering (or programming, or whatever you call it). I work on graphics mostly, and we use a ton of trig, and a quite bit of calculus with a little diff EQ. But if you're designing databases, maybe not so much?

    Growing up, my father was an electrical engineer at a well-known automotive company. I don't think he was much more rigorous in his designs than my colleagues and I are in ours (though I could be wrong). Certainly what he designed was physical, and if it went haywire, it could potentially kill someone. But I suspect much of his job was similar to mine, philosophically speaking. We use our knowledge of our field to come up with a design to meet some business need, implement it, test it, adjust it, and eventually release it. There are likely still flaws in it, but they're rare enough and small enough that most of the time they don't matter to the end user or have any significant consequences.

    software engineering is real engineering, but a lot of people who write software aren’t doing software engineering.

    Yeah, totally. Some people are just putting together pre-made building blocks sometimes without even understanding what they do or why they do it, while others are making blocks, putting them together, and making them accessible to others. It's definitely a spectrum!

    And in a related vein, computer science is also real science!

    11 votes
    1. post_below
      Link Parent
      The engineer vs not engineer debate in software makes me laugh every time it comes up. It seems to imply that the the concept of "engineer" is so rareified a thing that some sort of gatekeeping is...
      • Exemplary

      The engineer vs not engineer debate in software makes me laugh every time it comes up. It seems to imply that the the concept of "engineer" is so rareified a thing that some sort of gatekeeping is required before you qualify for so noble a title.

      Why? Because engineering requires a degree? Well, sometimes anyway. Because you have to be able to structure your thinking in particular ways? Because you could end up making something where the quality has potential consequences? That's true of so many fields.

      I always imagine the debate is largely the result of middle management types who are perpetually afraid of anything that feels outside the lines and obsessed with categorization. That and people who are overly impressed by their bachelors degree.

      It's so silly how much some of us care about titles here in the adolescence of humanity. The only thing that matters is can a person do the thing, or can they not do the thing. Call them whatever you want. Or better yet, call them whatever they want

      4 votes
    2. stu2b50
      Link Parent
      From what I can tell this has actually eroded significantly, mostly because it's not true in the US, and US has such a vice grip on technology everywhere but China. The fact that Amazon, or Google...

      In Canada you can’t even call yourself a “Software Engineer” unless you’re accredited!

      I have several Canadian coworkers (I'm in the US), and some of them went through the whole accreditation. They had to meet certain standards and got inducted into a guild.

      From what I can tell this has actually eroded significantly, mostly because it's not true in the US, and US has such a vice grip on technology everywhere but China. The fact that Amazon, or Google for instance have the job title as "Software Engineer" in Canada as well, but give no shits about PE licensing, has bled over, and even at the few largish Canadian tech firms like Shopify, in accordance with US hiring no preference is given to PE licensed candidates, and everyone is a software engineer.

      I believe, for instance, at Ontario's PE they merely "discourage" using the title "Software Engineer" if you aren't PE licensed.

      5 votes
    3. [2]
      skybrian
      Link Parent
      Theoretical computer science (algorithms, algorithmic complexity, and the like) is closer to pure math in that all details of the real world are abstracted away and it’s about proving theorems....

      Theoretical computer science (algorithms, algorithmic complexity, and the like) is closer to pure math in that all details of the real world are abstracted away and it’s about proving theorems. Sure, you might use computers, but so do mathematicians sometimes.

      Meanwhile, machine learning seems considerably more empirical and experimental. Theory hasn’t caught up with the experiments yet.

      4 votes
      1. vektor
        Link Parent
        There's certainly branches that are very theoretical. However, regarding the current state of the art in NLP and CV, you are certainly correct.

        Meanwhile, machine learning seems considerably more empirical and experimental. Theory hasn’t caught up with the experiments yet.

        There's certainly branches that are very theoretical. However, regarding the current state of the art in NLP and CV, you are certainly correct.

        2 votes
    4. [5]
      vord
      Link Parent
      The accreditation bit is actually a very important part of other engineering disciplines. Do you want to drive a car that wasn't designed by an accredited engineer? Software engineering (at this...

      The accreditation bit is actually a very important part of other engineering disciplines.

      Do you want to drive a car that wasn't designed by an accredited engineer?

      Software engineering (at this time) is a bit of a misnomer. And I'm not sure it's possible to get there in a way that isn't detrimental to software development.

      3 votes
      1. [3]
        nukeman
        Link Parent
        Are you referring to accreditation for the engineering school or PE licensing itself? The former is certainly very important, the latter is mixed. I (chemical) don’t have my PE license, neither do...

        Are you referring to accreditation for the engineering school or PE licensing itself? The former is certainly very important, the latter is mixed. I (chemical) don’t have my PE license, neither do most of my coworkers (mostly mechanicals and electricals), and we wouldn’t hesitate to call ourselves engineers. (For context, I work in the nuclear sector. No PE required, although loads of paperwork is.)

        4 votes
        1. GoingMerry
          Link Parent
          I think this is a point a lot of posters are missing. In Canada, the post-secondary program is accredited and the licensing is done on a provincial basis. The accreditation shows you have the...

          I think this is a point a lot of posters are missing. In Canada, the post-secondary program is accredited and the licensing is done on a provincial basis. The accreditation shows you have the requisite education, the licensing (essentially) shows you have the requisite experience (working under a licensed engineer).

          After passing an accredited program, you get an iron ring in a vaguely cultish ceremony. After you are licensed, you are unceremoniously sent a rubber stamp in the mail with your name on it to sign off on work that deals with public safety.

          99% of my software engineering class did not pursue a professional engineering license. There’s not a lot of work we want to do that requires it.

          2 votes
        2. vord
          Link Parent
          I think both is ideal, and perhaps PE needs revamped, akin to medical licensing. A bad engineer could potentially harm far more people than a bad doctor.

          I think both is ideal, and perhaps PE needs revamped, akin to medical licensing.

          A bad engineer could potentially harm far more people than a bad doctor.

          2 votes
      2. stu2b50
        Link Parent
        Sure? I don't think Ford or something is going to put an idiot in charge of QA suddenly just because ABET accreditation doesn't exist. In fact, I would bet that the makeup of engineers at Ford...

        Do you want to drive a car that wasn't designed by an accredited engineer?

        Sure? I don't think Ford or something is going to put an idiot in charge of QA suddenly just because ABET accreditation doesn't exist. In fact, I would bet that the makeup of engineers at Ford would probably not change at all if they stopped considering ABET accreditation. It's not like they automatically hire all ABET graduates to begin with. They're still going to hire from people with experience and education from well known universities.

        I would trust a mechanical engineer with 10 YoE to know what they're doing no matter how accredited they are, and I would distrust a newgrad no matter how accredited they are. And that's what team heirachies are for.

        4 votes
  2. SunSpotter
    Link
    As a senior mechanical engineering student, CS professionals gatekeeping themselves out of being called engineers is honestly pretty funny to me. Most mechanical engineers (and adjacent majors...

    As a senior mechanical engineering student, CS professionals gatekeeping themselves out of being called engineers is honestly pretty funny to me.

    Most mechanical engineers (and adjacent majors such as aerospace and nuclear) have only a rudimentary knowledge of other fields of engineering such as electrical engineering and computer science. In effect, we know enough to know that we know nothing. So we view people who are really proficient in those outside fields of engineering, essentially as wizards. I get the impression from most other students, professors and professionals that software engineers are seen as peers, and an integral part of the design process in the modern world. No one I know of would look down on a programmer for choosing to call themselves a software engineer.

    However, one argument they made in favor of software engineers being "real" engineers isn't quite right. While it may be true that most forms of engineering don't outright require licensing on a legislative basis, most employers require or strongly prefer some kind of license unless it's an entry level job. A civil engineering friend of mine basically had to get his PE license the moment he got his first real job outside of college. And in my field of Mechanical Engineering, taking an EIT exam isn't an uncommon requirement if you're looking for a job with more than a couple years experience. I suspect the author talked with older engineers who grandfathered themselves in with their own experience, by starting back when the job market was scarcer and employers cared less.

    Regardless, I will make a case for software engineers by making a case against the authors suggested term "software craftsman". Traditional fields of engineering can be just as much of an artform as computer science, and honestly while I have no qualms with CS professionals calling themselves engineers, it is a bit insulting to infer that other forms of engineering are not similarly a craft which require creative thinking. It's not all building bridges as the author described, nor is it building small mundane things like staplers. There are an uncountable number of specialized devices which need to be designed for simplicity, longevity and strength, and there are millions of ways to go about solving those design problems, but only a few good ones. Finding those few good designs, is an art and creative skillset unto itself. We never were told to flip open our textbooks and learn the skills behind proper internal combustion engine design. We're taught mechanical thinking and the requisite math to validate our designs. Honestly, I imagine this isn't much different from most computer science degrees. You aren't taught how to make specific programs, you're taught how to program, how to think efficiently, and the underlying math to make your programs work. That's engineering.

    Don't let people tell you that it isn't, just because you can cut and paste large snippets of code from github or stack exchange and make a functioning product out of your miraculous spaghetti code. There's a lot of cut and paste in traditional engineering as well. It's hard to give too many examples with my limited experience, because I'd probably say it wrong, but I know from experience that it does happen. Overall, call yourself whatever makes you feel comfortable; don't feel obligated to invent some new term for what you do, or feel compelled to avoid describing yourself as an engineer.

    9 votes
  3. [2]
    JRandomHacker
    Link
    I think my favorite part of this article (which is the most thorough look I've seen at the question in the title) is the statement that most fields of traditional "engineering" also have a closely...

    I think my favorite part of this article (which is the most thorough look I've seen at the question in the title) is the statement that most fields of traditional "engineering" also have a closely related field that's not called "engineering" - and that software has a uniquely-small gap between the "engineering" and "not engineering" parts of the field.

    7 votes
    1. Ixa
      Link Parent
      America seems to have an underlying assumption in the software world that, If you know how to program and you want to do it for a living, you're probably going to college/university and getting a...

      America seems to have an underlying assumption in the software world that, If you know how to program and you want to do it for a living, you're probably going to college/university and getting a degree. More importantly, that everyone who codes for a living are either some sort of self taught geniuses, or they're fresh off some three week bootcamp that does nothing to prepare them for real development, or they went to college.

      Where I'm from, you can also become a software developer by learning it as a craft - you go to coding school for three-four years, and get a lot of practical experience with whatever languages and frameworks are popular in enterprise software at the moment. When you look for a job, some positions will be looking for a software engineer - who understands computer architecture, discrete math, all that stuff - and some positions will "just" be looking for a programmer, who knows a specific language or framework and can code to spec.

      (That being said, lots of people who graduate as software engineers still end up doing the "just programming" stuff for a living, but that's true of regular engineers as well. Lots of people just enjoy being hands-on in their field and work as technicians.)

      2 votes
  4. [8]
    jackson
    Link
    Something related and interesting- the University of Texas does not include Computer Science within the College of Engineering like most other schools (though some may put it in its own college,...

    Something related and interesting- the University of Texas does not include Computer Science within the College of Engineering like most other schools (though some may put it in its own college, like Georgia Tech). UT placed Computer Science in the College of Natural Sciences!

    5 votes
    1. [6]
      stu2b50
      Link Parent
      Another thing to look at is the number of well known CS programs that aren't ABET accredited - last time I looked over half of the top 10 CS programs do not have ABET accreditation (for CS, that...

      Another thing to look at is the number of well known CS programs that aren't ABET accredited - last time I looked over half of the top 10 CS programs do not have ABET accreditation (for CS, that is - CE or ECE or EECS or <insert acronym> usually have it). Including Stanford, which no longer has ABET accreditation for CS or EE, in fact.

      An interesting side effect of this is that NASA legally cannot hire Stanford CS or EE graduates. Seriously. You could be a Stanford CS or EE graduate with 10 years of experience and you cannot be hired at NASA because you must have a ABET accredited degree.

      Perhaps one competitive advantage for private orgs like SpaceX.


      edit: Source for the NASA thing

      Applicants for AST positions must have successfully completed a bachelor’s degree with a major in a field of study specified in this desk guide from a college or university that is accredited by ABET

      https://searchpub.nssc.nasa.gov/servlet/sm.web.Fetch/NSREF-3000-0566_NASA_AST_Qualification_RatingReqtsDeskGuide-V1.pdf.pdf?rhid=1000&did=5581529&type=released

      4 votes
      1. nukeman
        Link Parent
        TOP KEK I mean, wow, that’s nuts. I can sorta see the argument for CS (although I agree with @vord below regarding the amount of safety-critical software), but not for EE. An interesting point for...

        TOP KEK

        I mean, wow, that’s nuts. I can sorta see the argument for CS (although I agree with @vord below regarding the amount of safety-critical software), but not for EE.

        An interesting point for requiring ABET accreditation (or an equivalent)

        1 vote
      2. [4]
        jackson
        Link Parent
        Interesting! Fortunately my program is ABET accredited :) Is there a reason many of these schools don't have ABET accreditation? Is ABET outdated or something?

        Interesting! Fortunately my program is ABET accredited :)

        Is there a reason many of these schools don't have ABET accreditation? Is ABET outdated or something?

        1. [3]
          stu2b50
          Link Parent
          I think the Stanford page puts it succinctly It doesn't matter apart from edge cases like patent law or government jobs like NASA (but, let's be honest, vast majority of CS majors are chasing the...

          I think the Stanford page puts it succinctly

          While such accreditation is useful in certain disciplines such as civil engineering, it has no practical significance whatsoever in computer science.

          It doesn't matter apart from edge cases like patent law or government jobs like NASA (but, let's be honest, vast majority of CS majors are chasing the bag, which the public sector is not going to offer). And you have to pay for it, and it gives you less flexibility in how you make the curriculum but offers little in return.

          1. [2]
            vord
            Link Parent
            I dunno, software powers a lot of critical stuff these days. If it's important for the physical design of a car to be done by accredited engineers, why isn't their firmware which controls almost...

            it has no practical significance whatsoever in computer science.

            I dunno, software powers a lot of critical stuff these days.

            If it's important for the physical design of a car to be done by accredited engineers, why isn't their firmware which controls almost every aspect of their functioning?

            1 vote
            1. stu2b50
              Link Parent
              Well, it depends on what you mean. The reality is that it has no significance in practice - it's not required for jobs, it's not required for academia. Likely you'll never even know whether or not...

              Well, it depends on what you mean. The reality is that it has no significance in practice - it's not required for jobs, it's not required for academia. Likely you'll never even know whether or not you have ABET and it'll never come up.

              If you're wondering if it should matter, I also don't think so. That rests on the idea that ABET accredited graduates somehow write more stable or safer code, but... they don't? If anything, there seems to be a negative correlation between how good the school is and whether or not they have ABET. The reality is that every car you've driven likely has most of its code written by non ABET accredited software engineers.

              It just seems to be a weird sort of gatekeeping that was more important back in the yee olde days when engineering was less developed and you needed to know if they guy in front of you took calculus or not. But now I also don't think it should be necessary in mechanical or civil engineering. The job markets for these are highly competitive and it's a joke to think that ABET accreditation really says something about a candidate over the rest of their resume.

              2 votes
    2. andre
      Link Parent
      I have a Bachelor of Arts in Computer Science from UT Austin - it actually used to be in both schools, with some of the non-CS elective classes being the differentiating factor.

      I have a Bachelor of Arts in Computer Science from UT Austin - it actually used to be in both schools, with some of the non-CS elective classes being the differentiating factor.

      1 vote