In your opinion what’s the difference between the two? In my opinion both terms are frequently used interchangeably in the workplace.

But I’d like to consider myself as an engineer, because although I don’t consider myself to be good at it, I think I cares about the software that I worked on, its interaction with other services, the big picture, and different kinds of small optimizations.

I mean, what is even engineering?

  • Elias Griffin
    link
    fedilink
    English
    2
    edit-2
    1 year ago

    Maybe, postulating, as I consider myself an Engineer and not a Developer.

    Tangentially related: https://comeriohomes.com/the-difference-between-a-developer-and-a-home-builder-2/

    Brainstorm thoughts dated just now

    I guess it’s in the conveyance of the word? Engineer seems like fitting a puzzle piece. Creating Software in a vast eco-system of language, OS, Frameworks, Platforms, Networks, and views it’s progression in time. For instance planned obsolescence, graceful failure in the “pipeline of things”, tolerates network topology changes, etc.

    Maybe Engineers build with well designed, graphed/drawn, and planned strategy of the components in interaction with all other systems, including OS failings, local Network failing, Internet failing, Management Failings (workplace), on and on. The more things you can account for the more brilliant an Engineer you are.

    Software Developer seems more linear. You take an idea and start with a good program. Then it’s built up and up until it becomes a great piece of Software.

  • corytheboyd
    link
    fedilink
    19
    edit-2
    1 year ago

    It’s a huge faff, you will get a different answer from every person you ask. They’re used interchangeably, and it just doesn’t matter.

    To entertain your prompt. Real world engineers (structural, etc.) aren’t entrusted the title because they “care” about what they build, it’s because they have to be correct, and as such, they follow extremely rigid process and take the time to never be wrong. Obviously I do not have real world structural engineering experience, but I think we can all agree on this from an outside point of view.

    That’s not how software works most of the time, and it’s even heavily discouraged in a lot of the industry. We learn from failure, and the consequences of software failing are nil compared to the consequences of a bridge failing. This is a huge superpower of software, not a weakness, or some sign of deficiency. It is the key reason software evolves so quickly. Software engineers (or developers, alchemists, whatever) are allowed to fail, learn from mistakes, and improve. They can test completely new, never been done ideas, nearly for free, and nearly instantly.

    Again, I don’t really care though what the industry wants to call it, developer or engineer. It doesn’t matter and it’s all made up anyway.

    • Pyro
      link
      fedilink
      English
      41 year ago

      I quite like the term Software Alchemist.

      To me, the words “engineer” and “developer” both imply that a well thought out and structured plan is in place for them to do their job. Not so with “alchemist”, which implies a fair amount of experimentation and uncertainty, both of which are very common in the software industry.

      • corytheboyd
        link
        fedilink
        11 year ago

        It’s always been one of my favorite ways of describing the job :)

    • @[email protected]
      link
      fedilink
      21 year ago

      NGL I think that’s a pretty crappy article. Very little of it is research, it’s just assertions and arguing his POV philosophically. He also gets basic things wrong, and says “civil engineers work on buildings.”

      • @[email protected]
        link
        fedilink
        11 year ago

        The research is the interviews he did with engineers. That sentence is obviously a simplification, especially since he immediately follows it with one about talking to a civil engineer who builds mines.

  • @[email protected]
    link
    fedilink
    61 year ago

    I am in my first job that’s a full-on “software engineer” title, which is a move I wanted to make. However, leading up to it I have a 20 year engineering career covering various aspects of electronics as well as software.

    What I work on is C/C++ that runs the company’s main industrial product, and not some more mainstream web or app development. So it’s software work as part of a multidisciplinary team to design or improve a physical product.

    So for those reasons I only think of myself as an “engineer.” But I can totally see how other jobs using similar skills would be more “software dev” or even “I’m in IT.”

  • @[email protected]
    link
    fedilink
    11
    edit-2
    1 year ago

    This whole thread was weird to read as a Canadian:

    In Canada the title “engineer” is a legally protected term. You can’t legally call yourself a software engineer without going through the Engineers Canada accreditation.

    You are a software engineer if you are an engineer in good standing. Calling yourself a software engineer without accreditation is fraud.

    Edit: I was curious, so I looked it up. The exact same is true in the US:

    The title engineer is a protected title, that’s protected in law, and it’s been protected for over 100 years.

    Edit 2: Don’t believe everything you read online, lol. See below re: the US

    • @[email protected]
      link
      fedilink
      61 year ago

      I’m not sure where you’re quoting from, but as far as I can see, only “Professional Engineer”, “Licensed Engineer”, and “Registered Engineer” are protected in the US.

    • @[email protected]
      link
      fedilink
      31 year ago

      Canadian Engineering Associations will actually get you for illegally labeling yourself an Engineer. I did a software developer program and after graduating a few people decided to start calling themselves engineers. The organization contacted each person individually and I belive the program coordinator. It is a serious title here, it is the same as a healthcare worker calling themselves an RN without being registered with the nursing college.

  • stilgar [he/him]
    link
    fedilink
    English
    51 year ago

    IMO an engineer should be able to develop a complex system which an entire company could potentially be based upon.

    A developer who isn’t an engineer would focus more on individual libraries, apps or tools that don’t necessarily require the mindset of an engineer to design and maintain.

  • @[email protected]
    link
    fedilink
    39
    edit-2
    1 year ago

    Considering the almost complete lack of standards, certification, licensing in most areas of programming, I don’t think there’s a ton of difference.

    I’ve held both titles without rhyme or reason between the two. Even in areas requiring high compliance - HIPAA, PCI/DSS, NIST Standards, FERPA, etc - training achieved doesn’t tend to be reflected in a programmer’s title. (Even while the same level of training turns into acronym soup among their IT peers.)

    One way I try to live up to the title “Engineer” - even when I don’t wear it - is by holding myself to the Engineering Code of Ethics.

    • Elias Griffin
      link
      fedilink
      English
      3
      edit-2
      1 year ago

      Superb for including the Engineering Code of Ethics which I didn’t know exsisted! In my decades of working on every part of Computer Systems, Information Systems, unfortunately, I personally think if you work for Big Tech, you cannot abide those Code of Ethics. From the website>

      Fundamental Canons

      Engineers, in the fulfillment of their professional duties, shall:

      1. Hold paramount the safety, health, and welfare of the public.
      2. Perform services only in areas of their competence.
      3. Issue public statements only in an objective and truthful manner.
      4. Act for each employer or client as faithful agents or trustees.
      5. Avoid deceptive acts.
      6. Conduct themselves honorably, responsibly, ethically, and lawfully so as to enhance the honor, reputation, and usefulness of the profession.

      How many Google Code Monkeys violate 1 or more of those on the daily? For instance in Canon 1, it does not say profit is paramount, but that public welfare is paramount. In fact, you could argue that is a competing objective working for Big Tech and following ethics.

    • @[email protected]
      link
      fedilink
      41 year ago

      One of the issues is that devs don’t know about the normal engineering certifying body (at least in the US). One of the problems with that body was its expectation that a software engineer also know other forms of engineering. For example, a chemical engineer needs to know some civil and industrial engineering to get their certification. It’s almost nonsensical to ask someone building cloud apps to understand the principles of chemical engineering unless their work is in chemical engineering.

      I know a ton of engineers that don’t view software as a field that can use the term because of its lack of certification.

  • @[email protected]
    link
    fedilink
    111 year ago

    I think it’s just a “branding” difference. I was at a company once that changed everyone’s titles from developer to engineer. It was mostly done cause engineer was more hip.

    I think developer was more used a decade ago. I would not be surprised if it cycles back at some point. It’s just like clothes fashion or whatever.

  • @[email protected]
    link
    fedilink
    7
    edit-2
    1 year ago

    I hold an M.Sc. in software Engineering and it is not just a “software developer” but an actual masters degree from an engineering university. It’s a civil engineering degree with focus on software and systems that runs software (e.g embedded systems). It is a protected title by law in many countries. I think Americans started abusing the software Engineer title a decade or two ago and hence many think it is just a title anyone can use as they like.

    • @[email protected]
      link
      fedilink
      1
      edit-2
      1 year ago

      At least 25 years ago (correction: 25 years and 3 months since I was hired as a software engineer in America without an engineering degree).

      And did you really compare a software dev with a BSc against your MSc (not a MEng?) and compare those apples and oranges as if they were peers?

      Im not sure about America now, but in my country the title “P.Eng” (professional engineer) is restricted by law to those who have gained a degree as an engineer specifically, B.Eng or bigger, and have written a subsequent certification exam.

      • @[email protected]
        link
        fedilink
        21 year ago

        Not sure what you mean about your apples and pears comparison thing. Around here we have two levels of engineering - diploma engineer and civil engineer and that’s also the title you get.

        Due to some countries not understanding this differentiation, we use the more common B.Sc for Diploma and M.Sc. for civil. You can then specialize in different areas like software, electronics, AI, health tech, and many more. So basically we have all the engineering courses + the special courses on top.

  • @[email protected]
    link
    fedilink
    English
    131 year ago

    As a former civil engineer who now works in software, “software engineer” irks me. “Engineer” means you’re supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

    • @[email protected]
      link
      fedilink
      61 year ago

      As a former civil engineer who now works in software, “software engineer” irks me. “Engineer” means you’re supposed to be licensed

      This really depends on the country you live in. In some countries you need a license, some need you to have some kind of university degree and others don’t care at all. So we cannot really use that measure as a definition.

      • @[email protected]
        link
        fedilink
        English
        31 year ago

        This really depends on the country you live in.

        Not really. There are two aspects to this problem: one is how people assign arbitrary and meaningless titles to themselves, and another is regulatory requirements by jurisdictions to be able to legally assume a role.

        I can call myself senior dubstep engineer, and that’s perfectly fine. I can’t call myself a civil engineer and sign off on a construction project or a permit. No one cares if I’m actually a senior dubstep engineer or if I’m junior at best. In the meantime, you will get in trouble if you try to sign off on a construction project, no matter of how stubborn you are with regards to calling yourself an engineer.

    • Superb
      link
      fedilink
      English
      81 year ago

      This is seriously what’s missing from the software field. There is no rigor or responsibility

        • Elias Griffin
          link
          fedilink
          English
          2
          edit-2
          1 year ago

          Very intersting! I’m not so sure about the oathiness of:

          1. I will make frequent, small, releases so that I do not impede the progress of others.
          2. I will do all that I can to keep the productivity of myself, and others, as high as possible. I will do nothing that decreases that productivity.

          But I think the real oath impact there is:

          1. I will continuously ensure that others can cover for me, and that I can cover for them.

          In Government work that, ^, is considered career ending.

          I will improve upon this, thanks for the awareness.

    • @[email protected]
      link
      fedilink
      English
      31 year ago

      “Engineer” means you’re supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

      Good point. We definitely don’t, and it’s what’s causing huge amounts of trouble in the world, rather than using software for the greater good.

      But engineer sounds better by some definitions, and it strokes the ego of employees, so companies like to use it to give more prestige to the role.

    • @[email protected]
      link
      fedilink
      2
      edit-2
      1 year ago

      Just to be clear, that is not exclusive to “engineering,” as other professionals have similar legal requirements (doctors, lawyers, fiduciaries).

      More generally, on a personal level, people are expected to act with integrity, and we have laws that provide them legal protections for whistleblowing.

      The actual practice of engineering is about problem-solving within a set of constraints. Of course the solution should not harm the public, and there are plenty of circumstances where software is developed to that standard.

      When a PE stamps a plan, they are asserting that they personally have reviewed the plan and process that created it and that it meets a standard for acceptable risk (not no risk!). That establishes the boundary of legal liability. In software, we generally do not have that process that fits in a legal framework, but that doesn’t mean that professional software engineers aren’t making those assessments for life-critical systems.

      For other kinds of systems, understand that this is a new field and that it doesn’t have the bloody history that got “real engineering” to where it is today. A lot of the work product of most software engineers just don’t have stringent safety requirements, or we don’t understand the risks of certain product categories yet (and before you try to rebut that, remember that “building codes are written in blood” because people were applying technology before it was well-designed/understood).

      Anyway, “engineering” is defined by a lot more than if you or your boss has a stamp (and in point of fact, there are plenty of engineers in the US that work as engineers without being a PE, or with any intention of ever having the stamp. Are they real engineers?)

    • @[email protected]
      link
      fedilink
      English
      3
      edit-2
      1 year ago

      As a former civil engineer who now works in software, “software engineer” irks me. “Engineer” means you’re supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

      This. I think some people don’t understand that titles are not whimsical status symbols and hold actual legal and regulatory meaning. A random guy can hold an engineering degree and not be an engineer, while a random guy with no degree can actually be a engineer if he jumps through all the hoops.

      In engineering fields, being a member of a professional engineering body is critical to work in the field, because the main value proposition of these credentials is to prevent incompetent people from working on critical tasks which can potentially have important consequences to society if they are done poorly. For example, people can die if an engineer signs off on a project for a residential building that collapses due to shoddy work. If that happens then the engineers who signed off on the project will be investigated and if they are held responsible not only can they be held criminally responsible for their work but their license will be pulled, which is society’s response to ensure this problem won’t happen again.

      • DroneRights [it/its]
        link
        fedilink
        English
        11 year ago

        And the criteria for which bodies are considered professional can often come down to government or capitalism, both of which are very flawed. It should come as no surprise that software developers, who tend to be anarchists(see: the existence of FOSS), are distrustful of statist and capitalist regulatory bodies.

  • Emma
    link
    fedilink
    141 year ago

    Well, if I remember my software engineering prof correctly, software engineering is mostly about bringing an engineering mindset to software development. You wouldn’t just slapdash an airplane together in a weekend and shove it out on the runway. There’s a process for making sure we don’t kill people with deadly flying contraptions.

    Software engineering is that same idea applied to software systems. There is a process for making sure we do our job without causing undo harm. You wouldn’t want to just slapdash together something that has to be HIPAA compliant and has to meet other security regulations. You plan. You test. You revise. You ensure the product doesn’t publish the sensitive medical records of every patient on the front page before it ends up in production. That is the work of a software engineer.

    • @[email protected]OP
      link
      fedilink
      11 year ago

      I really like this answer, because now I’m confident that I’m at least acting as an engineer. Thanks!

    • @[email protected]
      link
      fedilink
      English
      21 year ago

      That is the work of a software engineer.

      To build upon this, we need to keep in mind that at least in some jurisdictions the role of a certified engineer is only required in projects with relevant size, and the responsibility of that engineer is to ensure the project complies with all requirements and therefore be held responsible for any mishap. This means that it’s perfectly fine if non-engineers work independently on complex tasks, provided that an engineer attests that their output is fine and takes responsibility in case it isn’t and it causes problems.

  • @[email protected]
    link
    fedilink
    English
    51 year ago

    I typically tell people that engineering is applying physics. If you aren’t directly interacting with the physical world, you are most likely a developer.

    Working on an app, no matter how complex (or unessarily convoluted) generally makes you a developer. If you aren’t thinking about impact of clock cycles, actuation/hardware interfaces or sensing, there is a high chance that the work you do has little to no risk or a chance of failure that is governed by the physical world. As said in other comments, engineers design and sign off on things. There is an implication that there is an unknown constraint, unlike a fully observable software environment.

    • @[email protected]
      link
      fedilink
      31 year ago

      I think this is a terribly naive view of the impact the physical world has on software development. Most web development is actively concerned with throughput which is governed by bandwidth limitations and API construction. The user experience concerns that go into, say, the design of medical interfaces is no different from the design considerations of physical switches in a cockpit. Alert fatigue is just as much a consideration for monitoring in software as it is for industrial controls.

      I also disagree that engineering is applying physics for user experience concerns I brought up. If your industrial controller makes it impossible to understand what’s going on when shit hits the fan (eg Three Mile Island), I would argue you as an engineer have failed. That’s not applying physics unless we’re stretching “applied physics” to cover the movement of subatomic particles through brains as psychology.

      • @[email protected]
        link
        fedilink
        English
        2
        edit-2
        1 year ago

        I appreciate your opinion. I know that the qualification I made is a controversial one as everyone wants to be an ‘engineer’, but I’m still confident it holds. Applying physics is not purely at the atomic level. In web development, one of the physical challenges can be bandwidth, however, while most people claim to concerned about bandwidth, in reality they don’t do anything about it. Minifying code is cool, but that’s not doing any engineering by itself. Calculating the throughput your datacenter can dish out for your 1million users as you write a function that optimizes load vs lag of streaming video, that’s engineering.

        Thinking about user interaction and experience is more psychological than it is physical in most cases. Designing the user experience of a medical device or cockpit switch are both not automatically qualified for engineering: unless, you are designing the medical interface to overcome spasms that someone with Parkinson’s has, or, the cockpit switch is designed with a plastic mix to survive the temperature, vibration or weight requirement, it’s going to be more of an art-than-science. I’m not saying one is worse, but we need to make the distinction between designers, developers, scientists and engineers.

        I understand that everyone wants to be an engineer, whether for pride or just to feel more important (hell I want the engineer title too). Unfortunately, the tech industry (with arguably one of the most conflated egos) liberally tossed around software engineering to every role to attract talent and I don’t see that changing. It’s a profession, so whatever you are being paid to do will determine if you are engineering

        • @[email protected]
          link
          fedilink
          21 year ago

          I don’t give a shit about the title. I think it’s a joke. The analysis you’ve given suggests you don’t understand both software and engineering.

          • Bandwidth is much more than what data centers put out. There’s a constant question of request/response size and the factors that go into scaling. If your idea of web development is just code minification, your idea is wrong.
          • Engineers can’t pass the design buck. If you wouldn’t tell a hardware engineer, “the design of the circuit board doesn’t matter; don’t worry about size or crossed circuits,” then you can’t tell an engineer the use of the systems they design is just the realm of the designer. I know a few industrial engineers that would be annoyed by your ignorance of an entire branch of engineering.
          • Why does everyone want to be an engineer? I’m really missing that point.
    • @[email protected]
      link
      fedilink
      51 year ago

      By that definition almost all people who call themselves software engineers would be wrong. That doesn’t automatically mean, you’re wrong though.

      Personally, I disagree with your definition of software engineers needing to directly interact with hardware stuff in order to be engineers. Wikipedia defines software engineering as

      the application of systematic desciplined, quantifiable approach to development, operation and maintenance of software and the study of these approaches; that is, the application of engineering and computer science to software.

      So it’s all about the systematic approach to complex systems, not about whether or not you directly interact with hardware interfaces.