• Captain Janeway@lemmy.world
    link
    fedilink
    arrow-up
    123
    ·
    11 months ago

    Software engineering is just what any “engineering” field would be if they didn’t have standards. We have some geniuses and we have some idiots.

    Mechanical engineers, civil engineers, electrical engineers, etc. are often forced to adhere to some sort of standard. It means something to say “I’m a civil engineer” (in most developed nations). You are genuinely liable in some instances for your work. You have to adhere to codes and policies and formats.

    Software engineering is the wild west right now. No rules. No standards. And in most industries we may never need a standard because software rarely kills.

    However, software is becoming increasingly important in our daily lives. There will likely come a day wherein similar standards take precedence and the name “software engineer” is only allowed to those who adhere to those standards and have the proper certs/licenses. I believe Canada already does this.

    Software engineers would be responsible for critical software, e.g: ensuring phones connecting to an emergency operator don’t fail, building pacemakers, securing medical records, etc. I know some of these tasks already have “experts” behind them. But I don’t think software has any licensing/governing.

    Directly opposed to “engineering” would be the grunt work which I do.

    • ForgotAboutDre@lemmy.world
      link
      fedilink
      arrow-up
      32
      ·
      11 months ago

      Software engineering does have standards and methods to developing software. These standards and methods are applied in Defence and Aerospace applications. Software engineering was developed or conceived by NATO to manage the increasing complexity of software development.

      The big problem is people often confuse software development or programming with software engineering. Calling anyone that programs a software engineer. This isn’t the case. It’s entirely possible to be a software engineer without knowing how to code (but impractical).

    • ironhydroxide@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      20
      ·
      11 months ago

      “because software rarely kills” Depends on what you mean by rarely. Therac-25 was extremely dangerous due to a software bug. And this was over 40 years ago.

      Industrial robot accidents are a lot more common than needed and almost all are due to software “problems” (bad path planning, bad safety implementation, or just bugs in the control system software)

      Yes these things kill less than guns, or cars, or cranes, etc. But they still have affect in a lot of those accidents.

      There are very few things anymore that don’t have some kind of logic built into them. Be it software or analog logic, it was still “programmed” or designed. If there was something missed in design, that can easily have adverse affects that can lead to accidents and death not immediately attributed to the software.

      • Captain Janeway@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        11 months ago

        I was comparing it to civil or mechanical engineering. I agree that programming/software is growing and “infiltrating” our lives. That’s why I think it will become a licensed/certified term in the future. Software engineer will require a cert and some products will require certified engineers. Whereas web apps developers (most likely) will not use that title most of the time and we will just bifurcate those who work on “critical software” and those that do not.

    • Kidplayer_666@lemm.ee
      link
      fedilink
      arrow-up
      12
      ·
      11 months ago

      Engineer tends to be a protected term in many countries, so software engineer is no exception. It’s words like “programmer” or “developer” which are probably unregulated

      • NotSteve_@lemmy.ca
        link
        fedilink
        arrow-up
        6
        ·
        11 months ago

        The weird thing is that engineer is a protected term in Canada but every software dev title I’ve had so far includes it anyway. It doesn’t seem enforced at all here

        • masterspace@lemmy.ca
          link
          fedilink
          English
          arrow-up
          6
          ·
          edit-2
          11 months ago

          I honestly thought there was too, my official job title / offer includes it in the role, despite the role explicitly having no requirement for an engineering degree.

          I always found it funny, how I could do a 4 year electrical engineering degree, then work as an electrical engineer for 4 years, but never do my final law/ethics exam so couldn’t call myself an electrical engineer, but could just teach myself python and call myself a software engineer, turns out I was wrong.

          It is awkward though, especially in a remote work world, given that we compete directly against American “software engineers” for the exact same jobs.

    • bedrooms@kbin.social
      link
      fedilink
      arrow-up
      6
      ·
      11 months ago

      Software without standards. Am I replying to a person who writes his own OS to run hello world?

    • jadero@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      11 months ago

      I’d be very interested in learning more about how Canada manages “software engineer.” Because whatever is being done certainly doesn’t seem to include mandating where regulated professionals must be employed or punishing failures.

      Saskatchewan’s electronic health records system (eHealth) has had a couple of egregious failures that it shouldn’t have taken a “software engineer” to prevent.

      Several 911 services became unavailable during an outage that happened to also disrupt point of sale payment systems nationwide.

      Both of the relevant companies are telecommunications companies (Telus and Rogers, respectively), where one would expect “software engineering” to be conducted by “software engineers” regardless of regulation.

      A quick search for breaches in critical personal information will show that Canada is performing about as well as the US. Which is to say, abysmally.

    • Socsa@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      11 months ago

      There are definitely quality certifications for software. Plenty of govt acquisitions contracts require such certifications. We probably aren’t far from laws or executive mandates which require such things tbh

    • sag@lemm.eeOP
      link
      fedilink
      arrow-up
      8
      ·
      11 months ago

      We are useful?? Thanks You Man I hope my parents also understand that Software Engineering is also a real Engineering

      • wewbull@feddit.uk
        link
        fedilink
        English
        arrow-up
        6
        ·
        11 months ago

        Software engineering doesn’t treat failure anywhere near important enough for me to consider it proper engineering. Bugs are expected, excused and waived, which for anything critical just isn’t acceptable in my opinion.

        Is software still useful? … Sure.

        • theneverfox@pawb.social
          link
          fedilink
          English
          arrow-up
          1
          ·
          11 months ago

          Bugs are inevitable. Humans can’t write more than a few dozen lines without making a mistake - it’s inevitable because we’re barely sentient apes, floundering to understand the full scope of the problem space

          But through methodology, bugs can be mitigated. You can reduce their number, and fail gracefully. We have countless ways to do it, and we teach how widely

          There’s a science to it all, and those of us worth our salt know it… It’s not our fault that management disregards our warnings and pushes ever tighter deadlines.

          We know how to do better, our warnings just fall on deaf ears far more often then not

    • RubberElectrons@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      11 months ago

      Meh. There’s a saying in my field: “anyone can build a bridge, only an engineer can make one that barely doesn’t fall down”.

      Humorously reductive as it is, software is what makes that “barely” thinner than human calculation would normally yield. So… Yeah. Not what I’d call a pinnacle.

    • This is not the engineers fault though.

      It is highly political projects, politicians offloaded their old friends and competitiors onto the boeards and other functions and in the case of the airport major planning was undertaken by a guy who is a technical drawer and not an engineer.

      Most of these fuck ups could have been prevent, if the project management was done by project managers with an engineering background and if the owners side would have been represented by peoplewith a technical backgrounds.

      Source: i have worked in civil engineering for public projects. We wasted 50% of the time explaining Politicians and MBA bros C-levels why they can’t start by building the roof and why replanning half the stuff is a bad idea, when we are already on the market with bids for contractors.

      • SinAdjetivos@beehaw.org
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        For healthy working relationships and solid infrastructure you under-promise and over-deliver.

        For maximal profit and sustainable business models you over-promise and under-deliver.

        • 1993_toyota_camry@beehaw.org
          link
          fedilink
          arrow-up
          2
          ·
          11 months ago

          The company that under-promises won’t win the bid, though. Unfortunately the norm now is to overpromise, and then squeeze as many extra fees and concessions out of the project as possible.

          There’s also a culture of contractors vs engineers where limits willingness to work together to find solutions. “not my fault”.

      • interolivary@beehaw.org
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        Well sure that’s fundamentally true, but really doesn’t give any sort of accurate picture of how estimates are done any more than “humans are just collections of cells” does, and anybody who does estimates without using some sort of data as the basis and is purely guessing is doing it wrong as fuck.

        It’s not like we have no idea how long certain tasks have taken in the past, or what affects how long something will take.

  • udon@lemmy.world
    link
    fedilink
    arrow-up
    22
    ·
    11 months ago

    None of these engineers built a dam, ship, or plane. They did some math and drew some lines, and some other people built the stuff.

    • force@lemmy.world
      link
      fedilink
      arrow-up
      21
      ·
      11 months ago

      In this context it’s heavily implied “built” is used as “engineered/designed”, in the same way I “build” a shitty engine for an app

      • udon@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        Exactly my point. In the second case the two lines are also not the product, but it’s heavily implied that the dam, bridge is something useful, while the python code is useless. There are many examples where the opposite is the case

      • Socsa@sh.itjust.works
        link
        fedilink
        arrow-up
        9
        ·
        11 months ago

        I mean these days the average EE is a software engineer who is good at math and bad at software.

        • doctorcrimson@lemmy.today
          link
          fedilink
          arrow-up
          4
          ·
          11 months ago

          I believe that if an Electrical Engineer has qualification as a programmer then the two fields become the higher discipline “Computer Engineer.” At least most universities arrange their classifications as such.

        • Donkter@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          11 months ago

          I’m in engineering school and the ethos definitely is “engineers write bad code but it’s for simple tasks involving complex math.” As the world of engineering steers more and more towards coding we’re definitely going to be expected to write applications instead of simple Matlab scripts and there’s no way it’s going to be pleasant.

    • I_Has_A_Hat@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      11 months ago

      Comp Sci is not engineering. Programming is not engineering. I don’t mean this in an elitist way, it just flat-out doesn’t fit with other engineering fields. It’s firmly in the T area of STEM, not the E.

      • pixeltree
        link
        fedilink
        arrow-up
        13
        ·
        edit-2
        11 months ago

        Computer engineering is not comp sci lol

        Computer engineering is the hardware level of designing and building computers, it might involve firmware depending on the job and the area but it’s way closer to electrical engineering than software engineering. Software engineering is also very different than computer science.

        Software engineering is called that because it is the equivalent of engineering in software. You are engineering and designing a product/system. Computer science is more of the theoretical side, more detailed study of algorithms and math, etc.

        What do you think of electrical engineers? Is that “real” enough to be called engineering?

      • Cowbee [he/they]@lemmy.ml
        link
        fedilink
        arrow-up
        7
        ·
        11 months ago

        Computer Engineering is hardware engineering for Computers, with some programming. It’s a child of Electrical Engineering, just like Electrical Engineering is sort of a child of Mechanical Engineering.

        • I_Has_A_Hat@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          11 months ago

          And at what point in Computer Engineering do you require a fundamental understanding of Physics like every other Engineering field?

          • Cowbee [he/they]@lemmy.ml
            link
            fedilink
            arrow-up
            8
            ·
            11 months ago

            The part where you have to fundamentally understand how hardware actually works, ie how transistors, integrated circuits, and logic gates actually work on a physical level.

            You’re thinking of Software Engineering, and even then you’d still be off.

          • hips_and_nips@lemmy.world
            link
            fedilink
            arrow-up
            5
            ·
            11 months ago

            The point where I was using my master’s in computer engineering to design physical chips? You know, using my fundamental understanding of electricity, magnetism, and the physics that come along with it.

      • Cowbee [he/they]@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        I get it, haha. I know this is a programmer community, but it’s funny to me to think of programming as a progression beyond traditional engineering disciplines, rather than along side them.

        • RubberElectrons@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          11 months ago

          Don’t worry, someone else over here was saying programming is “the pinnacle” of engineering… Really hard not to disembowel a statement like that lol.

          I think programming is both an art and a science, like all engineering disciplines.

    • thequickben@beehaw.org
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      I personally disagree. Took 3 years of Electrical Engineering courses in college but finished with a B.S in Computer Science. Both are valid engineering disciplines, the only thing lacking on the computer side are standardized licensing tests and an oversight body. Software engineers have to build software that can affect life and death too, but somehow we don’t have as much regulation in the US which is super odd to me.

      • chicken@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        What makes something engineering vs not? Personally what I do doesn’t feel like engineering because I imagine engineering as being about following a particular process and doing things in a very cautious and structured way, where programming is normally way more chaotic.

        • madkarlsson@beehaw.org
          link
          fedilink
          arrow-up
          2
          ·
          11 months ago

          Your notion of an engineer is correct in a wide sense

          https://en.m.wikipedia.org/wiki/Engineer

          The fact that you feel programming is not that makes me sad. But likely dependent on what software and what you work with. For example, if you build software for NASA or Baxter and dialysis machines and the likes, you’ll get fired fast for not being structured. Working for Elon Musk and Twitter… Well…

          • chicken@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            11 months ago

            I don’t think it has to be a sad thing. Without that sort of structure you can be more imaginative, which has many advantages. Again, I don’t want to be an engineer, I feel that would suck all the joy out of it and just isn’t my style. That isn’t to say an engineering approach to programming doesn’t exist or isn’t useful/necessary in some cases, but I would say it isn’t the norm and probably shouldn’t be.

            • madkarlsson@beehaw.org
              link
              fedilink
              arrow-up
              1
              ·
              11 months ago

              I personally think it’s a bit of a fallacy to equal structure with less creativity.

              Look at Calatrava https://duckduckgo.com/?q=calatrava&t=fpas&iax=images&ia=images

              Further, you can’t design something like the Burj Khalifa without creativity

              Maybe the line goes where you are risking peoples life or not, maybe somewhere else. It still makes me sad that you equal programming with chaos. But that is very context driven. The drive for new software, new interfaces, new tech overall naturally breeds less oversight and less structure naturally ofc. But it doesn’t have to be that way, nor should it be if you ask me