[HN Gopher] Are We Really Engineers?
       ___________________________________________________________________
        
       Are We Really Engineers?
        
       Author : nathcd
       Score  : 108 points
       Date   : 2021-01-18 17:12 UTC (5 hours ago)
        
 (HTM) web link (www.hillelwayne.com)
 (TXT) w3m dump (www.hillelwayne.com)
        
       | ascotan wrote:
       | I have seen that a lot of people that now have "software
       | engineering" titles that are not doing "engineering of software".
       | They're doing network/platform management or some other task that
       | doesn't involve the actual design and architecture of software
       | systems. ie. it's more of a payscale for HR than an actual
       | discipline
       | 
       | Engineers should be able to understand design principles and be
       | able to architect a new system from those principles. In today's
       | world i think we are moving further away from this than closer.
       | We spend much of our time learning trivia such as how to fiddle
       | with a particular software platform to get it to work.
       | 
       | Additionally with all the various abstractions that we have built
       | (lock-in cloud services, high level languages, proprietary
       | platforms, etc) many people are no longer capable of discussing
       | with you what is happening on the CPU or how data should flow
       | through a system or the disadvantages of a distributed
       | architecture, etc.
       | 
       | I think that software engineering is still in it's infancy in
       | someways and hasn't yet matured enough to be an engineering
       | discipline. That being said there is an egalitarian quality about
       | being a "software engineer". We're all software engineers.
        
       | roenxi wrote:
       | There is something special about software engineering that
       | deserves a bit of thought - the discipline is all of 70-80* years
       | old. There are people on HN who are older than software
       | engineering.
       | 
       | Engineering is very much about the accumulation of experience -
       | the reason all the planning is up front isn't because the Secret
       | Society of Engineers said so, but because they are practicing
       | something that has between hundreds (electrical, maybe ~200
       | years) and thousands (mining, dates back to the stone age) of
       | years experience.
       | 
       | In 100 years, software engineers will have an enormous advantage
       | over almost all non-engineers at designing and running software
       | projects. There'll be a few amateur prodigies that nobody trusts,
       | and putting an engineer in charge of software projects will
       | mysteriously trigger a lack of things going wrong.
       | 
       | Software isn't unpredictable. Nearly nothing is unpredictable.
       | The process of figuring out which bits are predictable isn't
       | finished because the hardware keeps changing and forcing the tech
       | stack to change. When the S-curve of hardware progress flattens,
       | software engineering will gain in importance.
       | 
       | * Changed from 20-30 because that was wrong. Changes none of the
       | arguments.
        
         | weff_ wrote:
         | >the discipline is all of 20-30 years old.
         | 
         | How do you define software engineering such that it's 20-30
         | years old? Why isn't it 50 years old? I ask because I've heard
         | the argument that software engineering is a young discipline
         | but it feels like you're _really_ stretching it with those
         | 20-30 years.
         | 
         | >When the S-curve of hardware progress flattens, software
         | engineering will gain in importance.
         | 
         | But a lot of software engineering issues are entirely divorced
         | from the underlying hardware. So I'm not sure how the shape of
         | hardware has any significant bearing to our current situation.
         | 
         | >Engineering is very much about the accumulation of experience
         | 
         | I would argue that we actually know a ton about how to build
         | software. It's just that it's not really being taught or valued
         | or applied. I would argue that's an important distinction
         | because it strengthens the analogy of electrical engineer vs
         | electrician. So it's more about just an accumulation of
         | experience.
        
           | spiffytech wrote:
           | > But a lot of software engineering issues are entirely
           | divorced from the underlying hardware. So I'm not sure how
           | the shape of hardware has any significant bearing to our
           | current situation.
           | 
           | To play devil's advocate with the other's position, even just
           | over the time I've been in software since the early/mid 2000s
           | I've seen things shift a number of times as new hardware
           | creates new demands from our software or obsoletes old
           | development struggles. PC RAM capacities rising 100x from 20+
           | years ago, more operations coming over on a slow and flaky
           | WAN from untrusted devices, fewer people tolerating apps that
           | only work on the tower PC stuck on their desk, more apps
           | expected to sync state across devices because they're cheap
           | enough we can own a bunch of them, use cases we learned to
           | handle with plugged-in tower PCs adapting to power-draw-
           | sensitive mobile devices, mobile devices being 1.5GHz instead
           | of 16HMz, CPUs becoming fast enough that performance is often
           | a footnote concern for whether to implement crypto, dedicated
           | AI microchips changing what's possible on-device...
           | 
           | All of these seem like very reasonable justifications to
           | rethink the way we build software, to change what's standard
           | practice or to invent new tools that solve old problems in a
           | modern context. To some degree the clock on when our industry
           | starts accumulating stable knowledge won't start ticking
           | until these kinds of changes stop happening.
        
             | weff_ wrote:
             | >All of these seem like very reasonable justifications to
             | rethink the way we build software, to change what's
             | standard practice or to invent new tools that solve old
             | problems in a modern context. To some degree the clock on
             | when our industry starts accumulating stable knowledge
             | won't start ticking until these kinds of changes stop
             | happening.
             | 
             | But we already have stable knowledge that's simply not
             | considered valuable. Your list of changes over the decades
             | is of course a change but I don't understand why the
             | attitude is "unless things stay stable over the next 30
             | years, there's no point in trying".
             | 
             | All those SOLID, agile, TDD, DDD, micro-services memes that
             | are being implemented so superficially and cargo-cultishly
             | are actually grounded in a real understanding that has a
             | context, constraints, and trade-offs. The issue is that
             | superficial and cargo-cult application. "Software
             | engineers" that decide they're going to do micro-services
             | without understanding what it solves, how it solves it and
             | what they're trading off. And a business that doesn't care
             | or know enough to ask for better. Maybe they don't need
             | better! Maybe it's ok to slap together and the product will
             | be equally mediocre whether the devs use cargo-cult pattern
             | X or not. Maybe the quality doesn't matter that much to the
             | business. In which case the devs being hired also don't
             | need to actually know that much software engineering. In
             | which case maybe the idea of electrical engineer vs
             | electrician makes sense here too.
        
           | [deleted]
        
         | canadianfella wrote:
         | 20 years old? Are you high?
        
         | Jtsummers wrote:
         | While the dead comment is rude:
         | 
         | > the discipline is all of 20-30 years old.
         | 
         | Is kind of silly. The term "software engineering" originated in
         | the 1960s, well beyond your range for it.
        
         | VLM wrote:
         | "The Mythical Man Month" first edition is 45 years old as a
         | retrospective on a decade old development project 55 years ago.
         | 
         | The strongest indication programming is not engineering is
         | forgetting and reinventing the past. Also revolutionary tools
         | and techniques are invented far too often in CS.
         | 
         | In mechanical engineering we've had screws for a few centuries
         | and off the top of my head the most recent innovation in screw
         | fastener tech was the creation of the "Torx" screw standard in
         | the 60s. The Torx innovation was due to smarter torque
         | controlled automatic screwdrivers on assembly lines WRT
         | electronic drive tech and early digital control.
        
           | goatinaboat wrote:
           | _The strongest indication programming is not engineering is
           | forgetting and reinventing the past_
           | 
           | If it was engineering, or even a "profession", experience
           | would be prized, instead ageism is rampant.
        
           | ardit33 wrote:
           | lets be real, how many versions of the Combustion Engine
           | are.... a gazillion.
           | 
           | Gas, Diesel, Turbine, Rotary, in-line, V, Turbo, Carburated,
           | SuperCharged, SkyActive-X etc.. etc..
           | 
           | While the basics principles are the same and over 120 years
           | old, the Combustion engine has been re-invented and re-
           | engineered a gazillion of times...
           | 
           | Maybe some of you guys here are young, but there were cars
           | (large SUVs, or Sports Cars), that would consume 8-9mpg, yet
           | still be slow as molasses compared to today's cars.
           | 
           | So, yes while the basic principles of the combustion engine
           | are the same... but it has been re-engineered (from scratch),
           | a many times, and each time it would be slightly better and
           | better.
           | 
           | Same with planes, jets, tanks, etc...
        
             | tobmlt wrote:
             | Additionally, the process of doing the physical engineering
             | has changed drastically -- computational tools, design
             | space exploration, optimization methods. (recognizing that
             | the grandparent comment stuck specifically to screw-tech,
             | but it's interesting to think about physical-engineering-
             | innovation in broad terms)
             | 
             | Then there are innovations in manufacturing enabling new
             | designs. 3D printing is coming along. Not everybody has to
             | pull from a catalog of shapes, thicknesses, etc, for
             | structural design.
        
         | chrisseaton wrote:
         | > There is something special about software engineering that
         | deserves a bit of thought - the discipline is all of 20-30
         | years old
         | 
         | 20-30 years? You think software engineering began in 1990 at
         | the earliest?
         | 
         | Common production software, GCC for example, is older than
         | that.
        
         | xkeysc0re wrote:
         | >the discipline is all of 20-30 years old.
         | 
         | You are right that software engineering is a relatively young
         | field, but people have tried to apply engineering principles to
         | software since at least the Fifties. The term itself was coined
         | sometime in the early 60s and was used by the ACM in 1966.
        
       | siva7 wrote:
       | I think this question always poses something about status
       | insecurity as the old discussion of what makes a "true" software
       | developer. Engineering and Software Development share a key
       | characteristic which is about inventing and implementing things.
       | The key difference is that engineering is fundamentally based on
       | applied physics and math where software development doesn't care
       | about physics because it's an already solved abstraction in this
       | discipline.
        
         | Buldak wrote:
         | I think you're right about the underlying concern about status.
         | My sense is that people in this discussion are really asking
         | whether software engineering is just easier than mechanical or
         | chemical or aerospace--or whatever--engineering. That's also
         | why I don't think calls for certification standards really
         | address this concern (you can just as well be certified to do
         | something easy).
        
           | siva7 wrote:
           | the absurdity of the question becomes clearer if you start
           | thinking about the right tool for the job. if you need to
           | invent facebook you don't start with reinventing the wheel
           | but with applying software development. it's the right
           | abstraction for the job. and no sane mind would claim that
           | serving content to billion users a day is an easy task but in
           | the end it's just software.
        
       | iphorde wrote:
       | This is the dumbest debate next to using 2 spaces or 4 spaces.
       | The word engineer can be traced back to ingenium, the person that
       | operated a ballistic siege weapon. Ingen in Latin means in and
       | out. If you put something in, you get something out.
       | 
       | Over time, this went from the person operating a machine, to
       | someone building the machine, yet the person that operated it was
       | still called an engineer. This continues today. Engineers in
       | transportation have nothing to do with design. It is about
       | learning a process.
       | 
       | As an engineer, who holds IEEE certification, and certified with
       | the State Board of Professional Engineers, my field of study was
       | Computer Science and Mathematics. I do not hold a degree in
       | engineering. Yet, I was able to pass the certifications. The
       | state certifications are a joke, and I'm not paying stupid yearly
       | dues to continue that nonsense. This is about politics.
       | 
       | The certifications are protection mechanisms for gatekeeping
       | jobs. Not quality control. We now have standards to help with
       | that. For instance, ISO.
       | 
       | These titles are outdated, and stupid, and are hold overs from
       | the European caste system which everyone hates, but for some
       | reason people continue to relish with wanting a title. If you
       | want the caste system to continue, please make the title engineer
       | more important than it is.
       | 
       | If you hired for a job, who cares what your title is. It doesn't
       | matter. Just get your job done the right way, make sure adequate
       | testing is done, quality controls are in place, and move along.
       | 
       | To the person that said engineers go to prison if they're product
       | is defective, I would like to meet that person. Elon Musk's cars
       | catch fire, have killed people, but last time I checked, no
       | engineer went to prison.
       | 
       | If a person that operates a train can be called an engineer
       | (requires 10 days of training, a GED, not kidding), then a person
       | that operates a computer can be called an engineer.
        
       | jgwil2 wrote:
       | I like the author's conclusion and I think a good litmus test for
       | the difference between craftsmanship and engineering is the
       | adage, "If you're not taking measurements, you're not doing
       | engineering." So when we systematically measure and improve
       | performance, security, productivity or what have you, we are
       | doing engineering.
        
       | mrbill29 wrote:
       | No, because when software "engineers" are told to build a bridge,
       | two weeks before the bridge is set to open, the dependencies
       | change because they found out no one was using the bridge, so now
       | it's a train bridge. Also instead of going over a river, it's
       | going over a highway, also it's 1/3rd the length. Just need to
       | change some function calls right?
        
       | esoterica wrote:
       | Who cares? "Real" engineers love to gatekeep the term because
       | they think there's an aura of prestige associated with the term,
       | and they think that software developers calling themselves
       | engineers are trying to steal valor. But in the present economic
       | environment where fake engineers can make much more money than
       | real engineers, why would anyone want to pretend to be a real
       | engineer?
        
       | letitbeirie wrote:
       | My degree is in mechanical engineering but I've been working in
       | software for 4 years now but I worked on industrial control
       | systems for a number of years before that.
       | 
       | My answer: to an extent. Broadly speaking, software engineers do
       | _basically_ the same thing that "real" engineers do - learning
       | patterns and applying the useful/applicable pieces to the problem
       | at hand.
       | 
       | The fundamental difference that separates software engineers from
       | the rest is the consequence of failure and the culture of caution
       | that comes with it.
       | 
       | If you're working on (non-embedded) software and you ship broken
       | code to prod, chances are your consequences range from
       | embarrassment and some angry emails on one end to a major
       | financial loss at worst. With most other engineering disciplines,
       | the cost of a screw-up _starts_ with a major financial loss and
       | worst case? Honestly the sky is the limit. Fatalities,
       | environmental ruination, loss of critical infrastructure, you
       | name it - there are enough case studies on industrial horror
       | shows to keep you up for the rest of your life, and in
       | engineering school we had to read a lot of them.
        
         | watermelon59 wrote:
         | Sorry for going off a tangent here, but when you say you got a
         | CS degree after being a mechanical and energy engineer, do you
         | mean you went back to university for a full undergrad in CS? Or
         | was that a Master's?
         | 
         | I've been thinking of going back to school to go the opposite
         | route (CS -> engineering, probably aerospace), but I have no
         | idea how to go about it or how to estimate how much cash I
         | need.
        
       | oh-4-fucks-sake wrote:
       | I'm a bit of a centrist here:
       | 
       | I think of software lies somewhere nebulously between
       | craftsmanship and engineering.
       | 
       | There's a flavor of pure craftsman/artisan that can make an
       | excellent product with overall little "technical" knowledge. A
       | traditional potter works much on instinct, texture, feel. He
       | might know how to select a clay by color, not knowing or even
       | thinking about the constituent minerals. Water is added in eye-
       | measured doses.
       | 
       | Then, there's a flavor of pure engineer that executes most of his
       | tasks in structured, industry-prescribed, formally-verified,
       | deterministic ways. Particle aerospace engineers are the extreme
       | in this category--they're a slave to the formal methods that rule
       | their design, build, and test processes.
       | 
       | But we software "engineers" float back and forth between the two
       | --and all the time. One minute, we might hacking together a
       | throwaway script that checks if Amazon has toilet paper. The
       | next: writing a test for a rules engine that tests every corner
       | case in a truth table. Or proving that some algo runs in O(log n)
       | time.
       | 
       | Most craftsmen/artisans lie somewhere on this spectrum, but I
       | feel we software "engineers" wobble around a large swath.
       | 
       | So, call us software engineers, call us software craftsmen--they
       | both apply.
        
       | rdiddly wrote:
       | Look, do you use
       | 
       |  _specialized knowledge_ or _techniques_
       | 
       | to _design things_ ,
       | 
       | to achieve or cause a specific _outcome_
       | 
       | within certain _limits_ or _constraints_?
       | 
       | Then you're doing engineering. Whether to call yourself an
       | engineer, well in the absence of a formal certification program,
       | that's gonna be up to you and/or your employer. Former
       | civil/structural here (that's the bridge-building one, and as far
       | as I know, the most stringently credentialed/licensed).
       | 
       | It's helpful to remember that "engineer" comes from the French
       | _ingenieur_ which is also the source of the word  "ingenuity." So
       | an engineer is sort of an _ingenuity-izer_ if you will. If you
       | trace it back further, you get to the Latin _ingenium_ (engine),
       | of which the  "genium" part comes from _gignere_ (basically to
       | cause something) which gives us  "engender" and "generate" and
       | "progeny" so you see there's a creative aspect too.
        
         | GIFtheory wrote:
         | My take is that engineering is essentially the use of
         | predictive models to solve design problems. I think the general
         | trend is that the more accurate and universally accepted the
         | models are, the more 'engineery' a particular discipline is.
         | EEs use models of circuits and devices. ChemEs use models of
         | chemical reactions. MechEs use models based on physics.
         | Financial engineers use models of options pricing, etc. Optical
         | engineers use optics.
         | 
         | So, similarly, SWEs are engineers to the extent that they use
         | widely accepted models to solve design problems. People
         | building compilers, databases, or OS schedulers might be called
         | engineers, because there are relatively well accepted (but
         | evolving) models of the performance and capabilities of those
         | things---although those models are perhaps less universally
         | accepted than say, Newton's laws. Hacking, on the other hand,
         | is not engineering, because it is not backed by something like
         | a well-understood model. It therefore tends to command less
         | respect, as the output of such activity is less certain--since
         | there is no good predictive model to judge whether that
         | activity will achieve the goal.
        
       | sys_64738 wrote:
       | No, we're not. We are software developers who are indemnified
       | from being responsible for our bugs. Real engineers go to prison
       | for their bugs.
        
         | deanCommie wrote:
         | We need a button to flag posts as "Clearly just responding to
         | the headline and didn't read the article."
        
         | dilyevsky wrote:
         | Clearly you never owned a german car or a tesla. I doubt anyone
         | went to prison for those
        
         | Conlectus wrote:
         | The moral differentiation is one the author talks about a lot,
         | because it's the usual reaction.
         | 
         | That said; which engineering field are you basing this on? I
         | thought that generally only lead engineers or architects were
         | responsible in that way.
        
         | tobmlt wrote:
         | Not sure if this is hyperbole, but usually bugs are caught
         | elsewhere in the design spiral. If caught early enough, this
         | results in a chewing out at worst (I had a bad first job). If
         | caught late enough, this results in a law suit. (Seen it happen
         | from afar)
         | 
         | If you try to hide your bugs, paper over them, and somebody
         | gets killed... that's where the crime comes in... Looking at
         | you Boeing.
        
         | speedgoose wrote:
         | I doubt any engineer at Boeing will go to prison for the
         | engineering of the very deadly Boeing 737 max.
        
         | [deleted]
        
       | bsder wrote:
       | The one thing everybody seems to forget is that the term
       | "engineer" generally means "liable."
       | 
       | Do "software engineers" _really_ want to be liable for software
       | bugs? That 's what you're asking for.
        
       | jjk166 wrote:
       | I'm a mechanical engineer. Not every software developer is an
       | engineer in my book, but many if not most are.
       | 
       | Engineering is a method of problem solving: accomplishing goals
       | within a specified framework by using your understanding of the
       | situation to identify constraints and predictably satisfy
       | requirements.
       | 
       | To translate that into something more clear: if you can quantify
       | what you're doing, and within some range you know you'll succeed
       | and outside that range you will fail, you are doing engineering.
       | If you're regularly doing engineering, you're an engineer.
       | 
       | If you regularly find yourself saying "we need a server response
       | time of less than x" or "we only have y amount of memory to work
       | with" or "this layout reduces churn by z%", you're doing
       | engineering. Even if the numbers are only implicit (for example
       | saying it has to run on a phone is just a standin for it has to
       | meet the quantitative requirements to run on a phone) it still
       | counts.
       | 
       | There are plenty of software developers who are more artisans
       | than engineers - they don't think in terms of satisfying
       | requirements and what is "good enough" but rather in qualitative
       | terms. Perhaps they are more interested in how their software is
       | made than what it actually accomplishes, or perhaps they aren't
       | really trying to accomplish anything specific and are more just
       | hacking for its own sake. If nothing else, plenty of software
       | developers simply don't question why they are doing something in
       | a given way, deferring to past experience or taste over
       | understanding. Note that in many situations, the artisanal
       | approach is perfectly valid, though in cases where predictable
       | and optimized solutions are really necessary, an engineering
       | approach is really warranted.
       | 
       | Also note that no one exclusively engineers. Just because you're
       | not doing engineering right now doesn't mean you never did in the
       | past nor never could in the future. And vice versa, just because
       | you're an engineer at the moment doesn't mean you can't
       | occasionally apply an artisan's touch.
        
       | kissgyorgy wrote:
       | No, we are not! I just wanted to tweet today, that "Software
       | Development is NOT Engineering it's ART."
        
       | fjabre wrote:
       | This is just silly. Lots of hubris here. It's also silly to spend
       | much time thinking about this.
       | 
       | Of course we are engineers. OP uses "building a bridge" as an
       | example of 'real' engineers. This is patently ridiculous on the
       | face of it.
       | 
       | The one thing that unites us is we like to build. Whether it's
       | the great pyramids or the latest social network, engineers are
       | the ones who get it done.
       | 
       | We build. That's what engineers do. We build something to solve
       | some problem whether it's with bits and electrons or with larger
       | physical mediums like slabs of concrete. Engineers are builders
       | and they build to solve some particular use case.
       | 
       | "Scientists build to learn. Engineers learn to build"
        
         | Conlectus wrote:
         | I believe the comparisons between how engineering is practiced
         | make this more than "silly". The purpose of the writing is not
         | to answer that shallow question, but to better understand both
         | fields.
        
           | fjabre wrote:
           | When OP said that we are not 'real' engineers because we have
           | not built a bridge is when I stopped reading. For how could
           | anyone take him seriously after that?
           | 
           | 'Real' engineers are not judged by whether or not they can
           | build a bridge as if it's some rite of passage to being a
           | real engineer. That's ridiculous on the face of it.
           | 
           | That he used this example as some kind of proof to justify
           | his argument is where he lost me.
        
             | andrewchambers wrote:
             | No need to tell us again about your lack of reading
             | comprehension.
        
               | fjabre wrote:
               | Who is 'us'? I'm speaking directly to you.
               | 
               | Seems like you're just interested in name calling. When
               | people resort to name calling it usually means they've
               | lost the argument.
               | 
               | But I'm sorry you're having a bad day.
               | 
               | I'll leave it that. Thank you and take care.
        
       | leapis wrote:
       | "Of the 18 crossovers I talked to, 16 said yes."
       | 
       | I'm just as surprised to see the number be this high. I can't
       | help but wonder if this might be due to survivorship bias:
       | crossovers are, after all, self-selecting. Perhaps not all
       | engineers would say the same, if forced to swap roles.
       | 
       | Regardless, I'm excited to hear more from these crossovers. As a
       | (soon-to-be) recent graduate, I think there can tend to be a
       | great difference in perception between CS students and
       | Engineering students, particularly at institutions without
       | rigorous CS programs. Many tend to view CS students in the same
       | way that some CS students view bootcamp students- people
       | motivated by an "easy path to success". I've found this opinion
       | is rarely held of engineering students, given the reputation of
       | engineering programs. I think it's very useful to profile the
       | motivators, mindsets, and general attitudes between the
       | disciplines, if only to see that perhaps the difference isn't as
       | large as one might assume.
        
         | syntaxing wrote:
         | MechE here so my thoughts can be biased. It's high because of
         | two reasons. One the pay is typically much better (upward of
         | 20%-100% (yes 100) better) and secondly the "crossover" barrier
         | is much lower compared to other engineer mobility. For instance
         | I would argue, a MechE becoming a SWE is easier than a SWE to
         | become a MechE since companies are opened to SWE not having a
         | specific degree in it.
        
           | analog31 wrote:
           | I wonder if there might be a technological barrier. My degree
           | is in physics, so I depend on mobility for any hope of
           | employment. ;-)
           | 
           | It was easy to learn programming. One reason was that the
           | tools were always relatively cheap (even when they cost
           | money), and the cost to learn by trial and error was
           | negligible. At least this is true for the basics. Becoming a
           | good programmer who can be an asset to a large project is
           | outside my wheel house, though I'm in the process of
           | learning.
           | 
           | Today, for mechanical design, you at least need access to
           | SolidWorks, and the part of learning that comes from
           | experiencing failure is costly and time consuming. Surely 3d
           | printing is changing that equation, but not overnight.
           | 
           | But you can test the waters of programming without asking
           | anybody for permission, and if you discover that you hate it,
           | then you can just bury it.
           | 
           | Now, programming and mechanical design by themselves are not
           | _engineering,_ but if someone wants to get into a new skill
           | through the back door, they are similar. A person with
           | SolidWorks skills can be useful as a designer without being a
           | full blown engineer.
        
         | tobmlt wrote:
         | The answer is a clear yes in my case, but I work on commercial
         | numerical design and analysis software. The interleaving of
         | computers and engineering entailed here makes a hard case that
         | there is not an absolute "no" available. But computational
         | software is a corner case, I know. (sigh)
         | 
         | We certainly view our pure CS people as experts in what they do
         | -- and the things I see them do are, e.g., build out cloud
         | based versions of our product, add new GUI features, automate
         | build and test systems (until management tries to replace them
         | with us... a dubious proposition at best). That's just the
         | stuff I see day to day, since it's most closely tied with us on
         | the numerical side. Why wouldn't that be engineering? I could
         | speculate but I don't care to. We are all working to make the
         | product the customers want.
        
       | fancyfredbot wrote:
       | I tend to think of engineers as people who apply scientific and
       | mathematical techniques to solve real world problems. Clearly
       | some programmers do these things, but equally clearly some
       | programmers do not! Why would you expect a yes or no answer?
        
       | VLM wrote:
       | I thought it kind of odd the author asked randos off the street
       | to define "engineering"
       | 
       | Back in '47, the ECPD, which later more or less turned into the
       | ABET, used the definition:
       | 
       | "The creative application of scientific principles to design or
       | develop structures, machines, apparatus, or manufacturing
       | processes, or works utilizing them singly or in combination; or
       | to construct or operate the same with full cognizance of their
       | design; or to forecast their behavior under specific operating
       | conditions; all as respects an intended function, economics of
       | operation and safety to life and property."
       | 
       | It would seem programming-type-stuff is more of a technical craft
       | than an act of engineering. Ideally on the best days on projects
       | of small scope, programming can approach engineering levels of
       | rigor.
       | 
       | The tolerance for bugs is vastly higher in programming than in
       | structural steel engineering, for example. There are no valid
       | statistical analysis techniques for programming to reliably
       | predict quality of code, although infinite conflicting opinions
       | exist alongside some rather trivial rules. Some "full stack"
       | types approach full cognizance of their design; but its rare
       | outside narrow areas like embedded or device driver designers.
       | Economics of operation is usually hand waved away with "moores
       | law" and "batteries always get better over time", and
       | environmental impacts (aside from mere greenwashing and virtue
       | signaling) are ignored. Engineers use reliable and predictable
       | statistical process control methods to ensure mass produced parts
       | work together under a well defined standard, programmers are like
       | "here's a URL to the docs for the API from a couple versions ago
       | best of luck to ya".
       | 
       | I'd say on the technical continuum that programming is very much
       | like village blacksmithing. Somehow in general the horses get
       | horseshoes but its not cheap, efficient, safe, clean,
       | predictable, or fast.
       | 
       | The future being distributed very unevenly, I'd predict we'll see
       | the first widespread "real engineering" of computer-stuff appear
       | in corporate IT departments probably revolving around statistical
       | analysis of cloud computing.
        
         | 8note wrote:
         | Mechanical engineering has specifications for "bug" tolerance.
         | 
         | These are manufacturing tolerances and safety factors.
         | 
         | Unless you're testing the piece of steel you're bout to use,
         | you don't _really_ know that it 's yield strength is what the
         | box says. Similarly, the welding might be done by an apprentice
         | with a bad teacher, and during maintenance, the repair guy
         | might run out of a certain bolt and use a different one with a
         | washer.
        
       | hn3333 wrote:
       | Not sure if it applies to engineers, but there's a difference in
       | the job description between defining and implementing. Sometimes
       | someone knows some theory, does some math and is done. And his or
       | her result is passed to another person that implements it.
       | Sometimes it's the same person doing both, but probably less
       | often. Sometimes the implementer grows and starts putting down
       | some ground rules (becomes an architect) or the other way round
       | (for example there because might be more jobs for implementers).
       | 
       | Perhaps another distinction is between trying something and see
       | if it works, and knowing it will work (or won't work) before it's
       | implemented. Then the difference is between knowing from
       | experience and knowing from having studied the theory (and having
       | worked through the proofs).
        
       | blackcats wrote:
       | You can name anything you want, the career is not a protected
       | name. Software directors? Code artists? Byte doctors? Anything's
       | possible, nobody cares
        
       | 7thaccount wrote:
       | My own personal views (electrical engineer who deals a lot with
       | software and who codes a lot) are that you can find people that
       | can do engineering work without an engineering degree today. A
       | lot of that stems from powerful software that abstracts away much
       | of the math. So you can load a model into a vendor's product and
       | run transmission load flows without much formal training.
       | However, if you haven't taken any circuit classes, complex power,
       | calculus...etc, you're never going to truly understand the
       | results of what you're doing and the end results will suffer in
       | quality. That's why engineers are generally hired (assuming a PE
       | license isn't required) instead of anyone with a 4 year degree.
       | Before computers, a lot of that would be done by hand (at least
       | the calculations that were feasible at that time) and you would
       | pretty much have to have gone through an engineering, physics, or
       | math program to have those kinds of chops.
       | 
       | Software is different in a lot of ways. Especially at the high
       | level, you are solving a puzzle. Let's say you need to generate a
       | report. You've got all the tools in your language and several
       | libraries. You know you'll have to talk to a database, pull down
       | data into some kind of data structure, open a file handle, write
       | the data, close the file, and save the results somewhere and then
       | send an email. Is it technical? Yes. Challenging, well...maybe
       | not this example, but software can be very challenging yes. But
       | is it engineering? I wouldn't call it that. And no, I'm not
       | sneering at it, or calling engineering superior. I just see the
       | two as very different.
       | 
       | The stuff you do in engineering school (calculus, differential
       | equations, statistics, linear algebra, circuit analysis, signal
       | processing, Fourier transforms, control theory...etc as tools to
       | solve problems with radio, industrial machines, turbines..etc)
       | has pretty much zero to do with web design, standard business
       | apps, databases, compilers...etc. If you use engineering as a
       | general term to mean "make technical stuff" than you could apply
       | it to either field equally, but engineering has already had a
       | definition for many years and software is it's own thing. So use
       | the term "coder", "developer", "programmer", "hacker",
       | "complexity guru", or even "software engineer" as they all make
       | sense. But the general term "engineer" would apply to mechanical,
       | electrical, chemical, industrial, civil, biomedical...etc. All of
       | those fields have the same core math classes and they then
       | usually share an intermediate set of classes (thermodynamics,
       | dynamics, statics, circuits...etc) before the advanced classes
       | which specifically apply to your field. I don't think a very high
       | percentage of coders (amazing, technical, often better paid, and
       | very valuable as they are) have an overlapping lineage and
       | language with what you would think of as traditional engineering.
       | Believe me when I say I'm not gatekeeping the term either. I just
       | honestly feel like there these things are taxonomically
       | different. Maybe a new single word term should exist to convey
       | what software developer does with two words.
        
       | zaptheimpaler wrote:
       | More specific questions can be readily answered - is software
       | engineering as demanding of perfect execution as other
       | engineering disciplines? are software engineering projects
       | completed on time more/less relative to other disciplines? does
       | software engineering require formal certification to practice?
       | does it have a component of skill in that people who put in more
       | time or have more aptitude do better than others? is it more
       | critical or less critical to
       | 
       | But the "are we really engineers" question, like many others
       | about definitions is destined to go in circles IMHO. Most
       | important quote from the post:
       | 
       | > It's a standard Wittgenstein game problem: human constructs do
       | not neatly fall into precise definitions.
       | 
       | The actual debate seems to be around social status.. are software
       | engineers as high up the social status ladder as "real"
       | engineers? I don't know/care. Play stupid games, win stupid
       | prizes :D If software engineering stays a sufficiently selective,
       | high-paying, important field for long enough, it will gain the
       | prestige to be considered "real" engineering. Otherwise it will
       | not.
       | 
       | I think it will become both - more bifurcation. The top salaries
       | & status will be reserved for 1/10th of the engineers. A lot of
       | the bottom will become lower paid and more automated, closer to
       | technical support.
        
       | renewiltord wrote:
       | The enduring popularity of this question baffles me. I get it:
       | other people like other things. But is it an idle enjoyment or is
       | it something that helps conclude other things?
        
         | Barrin92 wrote:
         | It helps clarify to what standards software is supposed to
         | adhere. As the author points out, the key feature of
         | engineering is building to specification. Engineers have formal
         | processes, standards, fault tolerances and expectations.
         | 
         | The people who write software for a space-shuttle do
         | engineering work, your average app store app is likely not
         | 'engineered'.
         | 
         | I think it matters because it says a lot about how seriously
         | the software industry as a whole takes the quality of its
         | products and to what standards we hold software and with what
         | goals in mind we make software. If we treated software like
         | engineers treat aircrafts we'd likely have a lot less of it,
         | but what we had would probably not crash that often.
         | 
         | The debate is tied to the debate about why so much software
         | today feels so terrible and bloated and that makes it
         | relatively important in my opinion.
        
           | renewiltord wrote:
           | Fascinating. Thanks for sharing your perspective.
        
       | cs-szazz wrote:
       | This question gets more complicated in places like Ontario,
       | Canada, where the term "engineer" is actually protected. To call
       | yourself an engineer in a professional setting, you have to be a
       | member of the Ontario Society of Professional Engineers. Of
       | course in practice, they choose not to go after people who call
       | themselves engineer vs developer, but perhaps that will change in
       | the future.
        
       | toast0 wrote:
       | Yes [1], my degree says Computer Engineering; so prima facia,
       | that's what I am; I suspect some of my job titles said as much
       | too, but job titles are easier to fake than degrees. I'm sure as
       | anything not doing science. I bash on computer systems while
       | they're running with whatever implements are near by; just like
       | the people who run train engines do. Maybe that makes me a
       | mechanic, but I feel like there's a distinction because there's a
       | lot of original design in addition to fixing and modifying the
       | work of others.
       | 
       | [1] Not in the State of Texas; I'm not licensed, and don't intend
       | to be.
        
         | canadianfella wrote:
         | Train engineers are not engineers and they are not mechanics.
        
       | dropit_sphere wrote:
       | "Engineer" sounds like kind of a moving target. The only "real"
       | engineers design...engines. So it's worth asking what the actual
       | value is of "engineering."
       | 
       | In my mind, there are two: making stuff, and tolerances.
       | 
       | Making stuff is magic. Most people reading this can sit down at a
       | computer and formalize an idea such that the computer can do it.
       | Most people can't do this. It is valuable for the same reason the
       | ability to design a car or escalator or rocketship is valuable.
       | 
       |  _Tolerances_ is all about providing certain guarantees about the
       | stuff you make. I think most developers _could_ hit those
       | guarantees...if they were ever verbalized. What, you want me to
       | decrease memory usage by 50%? Actually, I probably _can_ do it.
       | At the very least, I can point you some academic papers as to why
       | it 's impossible.
       | 
       | But nobody has ever asked me to do that, ever (except in
       | interview questions). I suspect my experience is common among
       | developers.
       | 
       | So, from a "making-stuff" perspective, yeah, we're engineers.
       | From a "tolerances" perspective, most of us aren't, but wouldn't
       | have much trouble becoming them. It's just that no one actually
       | wants that.
        
       | [deleted]
        
       | totemandtoken wrote:
       | Mechanical engineer who worked as an energy engineer before
       | getting his CS degree speaking here, but I'd tentatively say yes.
       | I don't have a whole lot of experience using my CS degree yet but
       | the main difference between a software developer/SWE/programmer
       | and a hacker is the amount of paranoia that goes into making
       | something. If you are a good software engineer, you've tested and
       | verified everything and you've made sure there little to no risk
       | to your end user. If you don't you're a hacker.
       | 
       | Not to look down on hackers, but the main reason I think this
       | whole question exists in the computer side of the world but
       | doesn't exist for mechanical engineers is that there isn't the
       | hacker/engineer dichotomy in "traditional" engineering. Maybe
       | makers vs mechanical engineers counts, but almost all of the
       | makers I knew were employed as engineers.
       | 
       | A good software engineer/developer and a good "traditional"
       | engineer take the time to think through every edge case, every
       | corner case, and any other case that might cause problems.
       | Makers/Hackers just get to the first thing that works, damn the
       | consequences for anyone else. Which is fine because often the
       | only people using their product is themselves.
       | 
       | Just my $0.02
        
         | tobmlt wrote:
         | Computational software engineer with physical engineering
         | qualifications here -- we better be engineers on both sides of
         | the divide! I suppose I don't really count though, as far as
         | the question goes, since the software I write is used for doing
         | physical engineering, and is a tiny fraction of software
         | development, etc.
        
         | robocat wrote:
         | I suggest you avoid using the word hacker, as to me you are
         | using it in a negative sense, while missing that a good hack
         | can be excellent engineering. "Hacker" contains a wild variety
         | of behaviour and skills. The concept is too amorphous and
         | people have wildly disagreeing meanings associated with the
         | word (the meaning is very audience and context sensitive) so it
         | is difficult to use the word as a proxy for the sense you
         | wanted to convey, in a discussion with a wide audience.
         | 
         | Edit: I am suggesting hacker is a loaded/confusing word that is
         | definitely not the opposite of engineer. Good engineering and
         | good hacking are compatible - the right temporary fix can be
         | excellent engineering. Cowboy ([?]hacker) mechanical and civil
         | engineers exist, so the concept of hacking is not incompatible
         | with engineer. Using the word hacker intrinsically includes the
         | concept of software, so contrasting hacking and engineering is
         | not a tidy argument.
        
           | Thorentis wrote:
           | I would go out on a limb and say the negative connotations
           | are correct in most cases and usages. E.g.
           | 
           | "I'm just going to hack something together." (usually means
           | do substandard work but with the benefit of speed)
           | 
           | "It works, but it's a nasty hack." (a workaround that might
           | be clever, but isn't necessarily safe, testable, or
           | repeatable).
           | 
           | A "hacker" in the sense that GP is using it means somebody
           | who's default method of working involves doing the above on a
           | regular basis.
        
           | Groxx wrote:
           | tbh I think it's fine, this site is literally named "hacker
           | news". they're using the term in roughly the same way.
        
             | [deleted]
        
       | CamperBob2 wrote:
       | Did you design some software or hardware? Did somebody pay you
       | for it? Congratulations, you're an engineer. That, plus $4, will
       | get you a cuppa joe at Starbucks.
        
       | na85 wrote:
       | Aerospace engineer who dabbles in code here: I've seen a lot of
       | these articles and they always miss what I feel is the central
       | tenet of engineering, which is the ethical piece.
       | 
       | I've said it before on HN and I'll say it again: Engineering is a
       | social process, not a technical one.
       | 
       | It's a social process because society has certain expectations of
       | the people who design bridges and skyscrapers and cars and
       | toaster ovens. By certifying a design you as the engineer are
       | making a representation to society, not just that you are trained
       | but also that you have conducted yourself in an ethical manner.
       | You are making a representation that, for example, you did not
       | cut corners just to save your employer money, or that you sought
       | fair compensation for your work (so that you are properly
       | motivated to carry out your due diligence), or that you didn't
       | opt to use $fancy_new_but_not_proven product merely because the
       | manufacturer took you out to the strip club.
       | 
       | Conversely, when engineers screw up then society rightfully
       | demands that there be consequences whether punitive or remedial.
       | This is why engineering isn't just a job but a Profession, that
       | is to say Engineering as a field is self-governing. Professional
       | Engineers are accountable to their fraternal orders (regulatory
       | bodies) who are themselves accountable to society.
       | 
       | Given limitless time and money, anyone can design a bridge that
       | will stay up. But only a properly trained engineer can design a
       | bridge that will _just_ stay up, and therein lies the difference
       | between a software engineer designing and maybe implementing code
       | that will fly on the Space Shuttle versus me slapping together
       | some javascript for my personal website. The latter is not
       | engineering just because I 'm an engineer.
        
       | root_axis wrote:
       | You can approach the creation of software as an engineering
       | problem, but what's unique about software is that you can still
       | produce useful software even if you don't. If there are budgets
       | and deadlines and guarantees to be considered then you need
       | engineering.
        
       | tofuahdude wrote:
       | `This is an important question...`
       | 
       | It really isn't.
       | 
       | The definition of engineer is "a person who designs, builds, or
       | maintains engines, machines, or public works."
       | 
       | We're building software engines, machines, and public works. Just
       | because we're applying it for the software incarnation of the
       | concept doesn't break the definition.
       | 
       | This is getting silly.
        
         | weff_ wrote:
         | That's _a_ definition of engineering.
         | 
         | How isn't that like claiming you're a chef because you have a
         | catering company where you serve microwaved foods, and claim
         | it's silly to try to distinguish degrees of cooking skills.
        
         | robocat wrote:
         | Why does every person who pulls out a dictionary use a
         | definition that looks like it came from a century old
         | dictionary? Words change meaning over time. There were
         | computers a century ago.
         | 
         | By the definition you gave, no one can be a chemical,
         | industrial, or electronic engineer. Silly!
        
         | Conlectus wrote:
         | It may be an important question because answering it requires
         | dissecting the similarities and differences between software
         | development and the jobs that people usually call
         | "engineering".
         | 
         | In doing so, we see what lessons there are to take from each
         | other, and gain a better understanding of both fields. For
         | example, the author cites that version control is an innovation
         | that traditional engineering could hugely benefit from.
        
       | ssivark wrote:
       | I think the difference between craft and engineering is whether
       | the knowledge is systematized (not binary, but on a continuum).
       | 
       | Can decisions be motivated by clear objectives and rigorous
       | deductive reasoning, which are useful to validate the design
       | process and also to clearly communicate what is being done and
       | why?
       | 
       | A lot of conventional software "knowledge" is too hand-wavy &
       | wooly (not to mention fad-driven) to pass that threshold, imho. A
       | lot of software platforms/infrastructure we use is the way it is
       | for fairly arbitrary historical reasons, quite apart from the
       | fact that many domains where software is applied are quite hard
       | to parametrize rigorously. There are islands however, where the
       | design is fairly rigorous and could be considered closer to the
       | spirit of "engineering". But the most important input for a craft
       | to mature into engineering is time and rigorous effort.
       | 
       | Either ways, I don't see this question mattering too much in
       | immediate practice.
        
       | lwansbrough wrote:
       | 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.
       | 
       | I had a friend question me for calling myself a software engineer
       | (even though they referred to themselves as one.) I've been
       | programming for 15 years (8 years professionally) by 26 but they
       | were unemployed and not practising after getting their BSc.
       | 
       | So in my opinion, there's more charlatanism coming out of
       | academia than from honest professionals who have established a
       | career and deep knowledge of their profession. But then again,
       | I'm not building dams and bridges. So the answer mostly depends
       | on what you're doing and how you got there.
        
         | robertbalent wrote:
         | However, this is not enforced at all for software engineers.
         | 
         | So in lot of companies the official title is software engineer
         | even without any accreditation.
        
         | Humdeee wrote:
         | Is there a source on this? I thought this was for specifically
         | for "Professional Engineer" status. If not, myself (3 year
         | college program grad) and many, many others are not what our
         | current titles are as given by multiple employers.
         | 
         | I've asked many times even on these forums and have yet to get
         | a credible source on this. I've been officially "called" sw
         | engineer as per job title for roughly over a decade with 4
         | different large employers. I've never given this premise much
         | credibility because of that, and perceive it to be wishful
         | gatekeeping. I am hoping for some kind of clarification
         | however.
         | 
         | I'd like to retire one day being able to say I've built a 40-50
         | year career while being a living, breathing lie. That makes me
         | chuckle. =)
        
           | freshpots wrote:
           | https://engineerscanada.ca/frequently-asked-questions
           | 
           | "An engineer is an individual who has been issued a licence
           | to practise engineering by a provincial or territorial
           | engineering regulatory body after demonstrating that they
           | have the requisite education, skills, knowledge and
           | experience. An engineer is sometimes referred to as a
           | licensed engineer, a registered engineer or a professional
           | engineer."
           | 
           | Professional engineer and engineer are both functionally
           | equivalent and protected. You can't legally have the term
           | engineer in your title in Canada unless you are an accredited
           | engineer and pay your dues.
        
           | Khaine wrote:
           | Gatekeeping is the entire point of professional bodies, and
           | certifications. It is suppose to show that people with those
           | qualifications have sufficient skill and experience to do the
           | role.
           | 
           | This is one of the many problems with IT. I've interviewed
           | many people with IT Security certifications who cannot
           | explain the difference between encryption and hashing.
           | 
           | On the flip side, it is one of the great things about IT,
           | that you don't need to go to university to get a job.
        
           | rhodozelia wrote:
           | >Can a person with an engineering degree call themselves an
           | engineer in Canada?
           | 
           | >No. Individuals with an engineering degree are known as
           | engineering graduates, and a licensed engineer must take
           | responsibility for their engineering work.
           | 
           | https://engineerscanada.ca/frequently-asked-questions
        
         | hollimolli wrote:
         | Wonder whether it has the same impact on salary like the common
         | IT certifications (see e.g. https://www.forbes.com/sites/louisc
         | olumbus/2020/02/10/15-top...). Otherwise it's just a waste of
         | time.
        
         | dctoedt wrote:
         | > _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._
         | 
         | Same in Texas. [0]
         | 
         | [0] https://pels.texas.gov/downloads/eb17.htm (search for
         | "Software Engineering")
        
       | RupertWiser wrote:
       | I don't like to call myself a software engineer just because of
       | how contentious the term is. But I will admit that I do feel
       | somewhat more _precise_ at my current job than I was at my
       | previous.
       | 
       | I used to work in an agency and we would charge by the hour so
       | you needed to find a safe space between speed and safety. I wrote
       | some nice, and some not so nice code there.
       | 
       | I now work at a much larger company and the environment is vastly
       | different. We focus heavily on metrics, are very careful with
       | testing, make sure to design design components, security reviews,
       | and have plenty of documentation.
       | 
       | I really do wish software engineering could be used as the term
       | to identify this kind of environment where it's not just about
       | the code, but about all the stuff you do around code to ensure
       | it's safe.
        
       | sombremesa wrote:
       | I have a degree in Software Engineering and NOT CS. I had to
       | teach myself a lot of core CS, largely for interviewing in the
       | industry which is full of CS majors and people with myriad
       | unrelated degrees (or no degrees).
       | 
       | You can't call yourselves 'hackers' and 'engineers' at the same
       | time. (I mean, you _can_, but talk is cheap)
       | 
       | That's not a bad thing by a long shot. There's a time and place
       | for hacking as there is for engineering.
        
         | [deleted]
        
       | saberdancer wrote:
       | I'm not sure what the big deal is. I've finished my studies and
       | got a title that includes "software engineering".
       | 
       | Even with that title, I don't think it's a big deal if someone
       | who didn't get the same title calls himself an engineer. Talk is
       | cheap, but if you can create systems you can call yourself an
       | engineer in my opinion.
        
         | Enginerrrd wrote:
         | This right here is the major difference between software and
         | actual engineering. I studied and got a 4 year accredited
         | engineering degree and I have been working in civil engineering
         | for 7 years, but, I am not YET an engineer. I don't yet have my
         | license to independently verify and stamp designs. I've passed
         | most of the tests required to do so, but I've got another one
         | to do. In most jurisdictions in the US, there is a 4 year
         | minimum training period AFTER school, where you must train and
         | apprentice under an engineer before you can apply to take the
         | tests. They go through that application with a fine toothed
         | comb. To get authorization for that last test, I had to send in
         | sealed recommendations from 4 different licensed engineers
         | familiar with my work where any one of them has the opportunity
         | to basically say "no, this guy isn't ready" without my
         | knowledge.
         | 
         | What is lacking is an understanding of the ethics, duty and
         | responsibility to the public that is hammered into the
         | conventional engineers on day one. It starts with subtle
         | things... In school, we had very strict standards for report
         | formats. If you screwed up something (like putting a figure
         | title above a figure instead of below, or vice versa for a
         | table) you got ZERO credit for that report, regardless of how
         | much of your grade it counted for. If you misreported the
         | significant figures on a result? Zero credit. Didn't do an
         | appropriate error analysis? Zero credit.
         | 
         | This isn't just anal retentive BS though. It teaches from the
         | very beginning that failure to adhere to the code has serious
         | ramifications. It teaches you that when you, as an engineer
         | with a duty to the public, report a figure as a result of your
         | calculation, you had damn well better be right. If you get it
         | wrong, people can and do die.
         | 
         | In the real world, if I inappropriately call myself a
         | "Professional Engineer" or a "Structural Engineer", that's
         | straight up illegal. I can lose the right to future licensure
         | for something like that. If as a P.E., you make a mistake, or
         | perform work outside of your scope of knowledge, the licensing
         | board WILL sanction you ruthlessly. For minor things, they may
         | just require you to re-mentor under an engineer and get all of
         | your work reviewed before you stamp it. For more serious
         | things, you will lose your right to sign off on work at all.
        
       | bigger_cheese wrote:
       | I'm a Materials Engineer (I currently work in Metallurgy and
       | industrial refining, before that Lithium Ion battery research).
       | 
       | One thing I don't think was covered in the article was liability.
       | I think that is a major thing that separates software engineering
       | from other branches of engineering. Maybe it is not the case in
       | the US but in my country if I contribute to an engineering
       | project I can be held accountable in a court of law for my work.
       | 
       | I can see a future where software has similar laws applied to it.
        
         | chrisulloa wrote:
         | Working in healthcare, engineers are liable for breaching data
         | violations around health data. In everything from logging,
         | storage and deletion of data, developers need to make sure that
         | there is no personally identifiable information. There are
         | plenty of other high stakes domains where engineers are
         | certainly liable.
        
       ___________________________________________________________________
       (page generated 2021-01-18 23:02 UTC)