1. 44
  1. 18

    The expectations of a professional/licensed engineer can be fulfilled whether producing code or writing emails as much as they can by building bridges. I studied electrical engineering (and computer science) but haven’t touched a circuit in 4 years. Currently I’m applying for professional recognition, and of the 16 competencies the body wants to see, there is no requirement for anything physical.

    This body’s definition of what makes an engineer includes:

    • ethical behaviour
    • how you analyse problems
    • how you keep up to date on industry practice
    • how you communicate with peers and stakeholders
    • how you manage risk

    Some lessons I feel can be learnt from software practices: Agility, being able to plan for uncertainty particularly for problems where the solution is not known immediately; Revision management, version control was one of the first things I learnt in software and I’m constantly explaining to traditional engineers why it’s important for any publication.

    Some lessons I feel software practices could learn from traditional engineering: Stakeholder management; problem analysis (surprised how few sketches and produced for software systems compared with even the management systems I work with); communication.

    I’d say anyone working with software - from coder to management - can fulfill the behaviours expected of an engineer; many engineers build their communities without ever touching CAD or concrete.

    1. 4

      Forgive my ignorance but how exactly do they define ethical behaviour?

      I’d argue that someone working on literal bombs is highly likely more of an engineer than I am, yet I find that much much much less ethical than anything I’d ever work on.

      1. 3

        They would define it in a way that doesn’t touch anywhere close to that. I think it is the same way that Christian theology was able to exclude war acts from the “do not kill” thing. Any government recognized organization would be expected to do the same leaps.

        I suspect any safety considerations attached to ethical behavior would be for things not including when the thing drops from the sky. Like not accidently blowing up when being hit lightly by a hammer…

        1. 3

          Search for “{name of institution} code of ethics” to answer this. Some examples:

          And specifically in computering:

          1. 3

            Bombs are not unethical.

            You could use bombs to excavate a mine. You could use bombs to stop a horde of murderers coming to your town.

            If it is ethical to kill in self-defense, then it is ethical to build tools that could be used to kill in self-defense.

            1. 4

              Maintaining ignorance towards what your employer will use your work for, because hypothetically it could be used for something not-unethical, is not ethical behavior. You can assume that in OP’s question they’d be working for the military industrial complex.

              The only thing necessary for the triumph of evil is for good men to do nothing. As an engineer, you can make a difference. You’re a scarce resource. Simply choosing to work in a place that does good takes labor away from places that do evil or do “nothing”. And your wage will always be good enough to not have to do “nothing” at a place that does evil.

              1. 3

                The idea that it is ethical to kill in self defence is not universal. There are some that argue it is better to die than to kill. Also, though you could use a bomb to excavate a mine, that is not it’s purpose. Bomb is defined in wiktionary as “An explosive device used or intended as a weapon”. If an explosive device is designed and used for excavation it is not a bomb.

                Sorry to nitpick, I know these points are very niche. I simply want to point out that the statement ‘bombs are not unethical’ is open to debate.

              2. 2

                The other response to your comment (leeg) is spot on. For example, the organisation I’m seeking to recognise me has a code of ethics defined by: Demonstrate integrity, Practise competently, Exercise leadership, Promote sustainability. Deeper definitions are available in their code, and these definitions would allow defence workers, infrastructure builders, and software implementers to practice within their ethical framework.

                Part of such recognition is picking a professional body which is compatible with your personal code of ethics. If you are seeking people who have such recognition, then you could use the recognising body’s code of ethics to evaluate these people.

                Coincidentally, hours after my previous post I met an engineer who worked with bombs, though his were used to dig tunnels for highways and rail ;)

              3. 1

                When I took some EE a decade ago (switched to computer science, didn’t have the will to endure EE), I remember they had some specific reason why “software engineering” wasn’t an engineering discipline. I only wish I could remember what it was. I believe in Canada it wasn’t recognized at the time. The engineers saying this were certainly within the bounds of “physical engineering” - that is to say, their craft built upon real physical things instead of upon an “world”/architecture we as a species defined.

                I much prefer the list you have. I feel that is the a great direction for the industry.

                1. 2

                  If you’re interested in further depth on this, Engineers Australia is the organisation I’m referring to. People who undertook accredited study and work with software, whether it be computer games or medical devices, can be recognised as professional engineers based on their behaviours rather than strict preconceived notions (such as typically evidenced by exam).

              4. 12

                I’ve got a friend with a Mech. Eng. degree who spent some time in aerospace (he now does something less glamorous that blows fewer people up). At one point I was telling him that I wasn’t sure exactly what my job role was shaping up to be at a new company — I wasn’t tasked with writing anything in particular, and I wasn’t “architecting”, but I was given a system that was just past proof-of-concept stage and told to get it ready for production, so I was instrumenting it, stress-testing it, eliminating crashes, improving performance, and ensuring it could scale to massively more traffic — and it was turning out to be very gratifying. There were lots of problems, some of them weren’t easy to solve, and every bottleneck eliminated would end up revealing another one hiding just beyond. But as they fell, one by one, you could start to see the system just humming along and doing what it needed to do more and more efficiently, with fewer and fewer glitches.

                As I was explaining this to him, he said “well, I would call that engineering.” Given the usual reaction of engineers to anyone appropriating that label, I took that as a bit of praise that’s stuck with me ever since, and reminded me that there’s a place for applied science in what we do.

                1. 12

                  Note this is a rough draft: I’m working on a more polished version as well as a series of articles. But people seem to like it so far so I figured I’d share the current version.

                  1. 4

                    Interesting video.

                    Though I don’t understand why people want to be engineers so badly. Is it an ego thing?

                    Software development has more similarities with pigs wallowing in their own shit than with any serious engineering discipline from my perspective.

                    No quality standards, no punishment for gross misconduct, no loss of privileges for incompetence.

                    1. 3

                      Software development has more similarities with pigs wallowing in their own shit than with any serious engineering discipline from my perspective.

                      Just to be clear here, you’re saying you disagree with the entire video, right?

                      1. 2

                        Yes.

                      2. 2

                        If the only reason you can think of and think is constructive to discuss here is one you already know no one will endorse then I don’t think you are behaving virtuously.

                        1. 1

                          Oh, I forgot the comment section only exists to voice agreement.

                          1. 5

                            No, it exists for thoughtful discussion, which you aren’t making even a token attempt to provide.

                            1. 2

                              Yes, of course, the charitable, empathetic, imaginative and otherwise totally reasonable and only possible interpretation of my comment is that that is what I am saying.

                              I could also just have repeated the comment you are responding to, because you’re just doing it again.

                          2. 1

                            I share that suspicion. Giving workers a fancy job title seems to be a common way to motivate them (or at least avoid demotivating them).

                            On the other hand, I also think that construction of some software systems should be done in accordance with an engineering discipline. Control software in airplanes and cars for example. People who practice such discipline deserve to be called engineers. Even if they don’t want to be, they should be because it makes them aware of their accountability.

                            If you’re just making a video game, I don’t care how you do it (putting ethical questions about addictive game mechanics aside for a moment).

                            1. 0

                              I don’t want programming to be a regulated engineering field, for the specific reason that I’m worried about regulatory authorities defining “quality standards”, “gross misconduct” and “incompetence” in politically-biased ways in order to use “loss of privileges” as a stick to prevent types of software that they dislike from being written. Imagine if there was a regulatory body that had the power to strip a license from a programmer if they contributed to social media software that didn’t censor speech that body judged to be harmful to marginalized people (an inherently political judgment); or that kept selectively enforcing code quality standards on cryptocurrency software because a lot of the individual members of the regulatory body thought that cryptocurrency was bad for society.

                              1. 13

                                Just because there are bodies that certify (and de-certify) electronic engineers doesn’t mean that I can’t build circuits in my own time, or even do so professionally. It just means that if Boeing were to hire me, and then a system I built caused an airplane to crash, the people affected would have significantly better grounds to sue Boeing.

                                Engineering certifications are not nearly as effective an instrument of state power as you suggest here.

                                1. 2

                                  Isn’t this more about “professional engineers”? The type of person that has a “stamp of approval”.

                                  Anyone can work in an engineering field (with training, schooling) but not many are the final approvers who have a professional liability far beyond mere mortals.

                            2. 6

                              German perspective: You’re an engineer after getting a university degree in an engineering program (e.g., bachelor of science in information technology). You’re only allowed to call yourself an engineer after graduating. But then immediately.
                              Depending on school, program that may or may not involve lots of meta/how-to engineer courses.

                              No extra test but also no way for non-academics to become an engineer unless they go to a university. :/

                              1. 5

                                Similar in Sweden. The term “civilingenjör” covers all engineering, not just civil engineers (that degree is called “civilingenjör väg och vatten”) and is a protected term. You’re not allowed to present yourself as such unless you have graduated from an accredited institution (nor are you allowed to purchase the special ring you’re entitled to).

                                1. 3

                                  Similar in France. “Ingénieur” covers all engineering and is also a protected term. But a lot of people are obsessed by degrees here in France and it kinda sucks.

                                  1. 2

                                    Not exactly.

                                    “Ingénieur” (Engineer) is not protected. It is a job title and can be given to you as long as your job corresponds.

                                    The protected constructions are things like “Diplôme d’Ingénieur”, “École d’Ingénieur” and “Ingénieur diplômé” (Engineering Degree, Engineering School and “Engineer with a degree”, respectively). They are regulated by a body called CTI.

                                2. 5

                                  Haven’t watched yet, but I don’t think that we are. Going to watch the vid shorly! =]

                                  Some of us are artists, some another flavor of assembly line worker. I think the first do it for a reason of passion for software while the second are only interested in making a living.

                                  Think about how the day feels to you. Do you really feel like you’re doing any real engineering when you’re writing software? I’d be surprised if so.

                                  1. 8

                                    Having worked alongside and very closely with mechanical, electrical, and chemical engineers, I would say that yes, writing software is an engineering discipline as well. The similarities are pretty striking in terms of problem decomposition, modularity, planning, creativity, and so on. Engineering is about building something from nothing, which all these fields have in common.

                                    1. 3

                                      I think that based on your analysis, most artists are engineers too.

                                      In my opinion, creating something from nothing is art, not necessarily engineering. Also, most software “engineers” maintain things that already exist. They aren’t creating something from nothing.

                                      1. 3

                                        I think that based on your analysis, most artists are engineers too.

                                        Not sure I would jump all the way there, but they do have some things in common. Engineering also involves all the things that I listed in the previous sentence.

                                        Also, most software “engineers” maintain things that already exist. They aren’t creating something from nothing.

                                        Have you worked with any mechanical, electrical, civil, or any other of the traditional engineers? It’s at least 10x worse for them. How many bridges are designed from scratch vs an iteration of a previous design? How many EEs do something more than mix and match pre-existing circuits? And so on.

                                        1. 3

                                          How many bridges are designed from scratch vs an iteration of a previous design?

                                          Writing a program is like building a bridge not like designing a bridge. Designing a bridge is like coming up with a new algorithm or improving an old one.

                                          1. 1

                                            Writing a program is like building a bridge not like designing a bridge.

                                            I think this analogy is poor. If pressed to tell you what software process was like “building a bridge”, I would say installing software on a server - and we’ve gotten very good at making that fast and easy.

                                            1. 2

                                              Both analogies partly work and partly don’t. That’s why I made such an effort to talk to people with firsthand experience in both sides of the discussion.

                                    2. 2

                                      I like this, I’ve always thought of myself of an artist.

                                    3. 3

                                      Thanks for sharing this. I found it really interesting. Before watching, I’d have probably said that I do believe the disciplines have certain things in common but that I think I’m more like a writer or a sculptor than an engineer.

                                      This caught my attention in particular:

                                      software is much (much much much …) more consistent than any other kind of engineering

                                      It took me by surprise. I’d have said that environmental variability is so high with software that it breaks the consistency. The resistor example in the video feels like moving from one version of a compiler or library to another. The bugs that pop up due to environmental inconsistencies feel much more variable (I think) than resistor tolerances.

                                      1. 2

                                        Changing dependencies is changing your code. All the code you run is your code. It isn’t your environment. You are responsible for it, all of it.

                                        1. 2

                                          That is nice when it is true, but unfortunately sometimes you have to use tools and libraries that are part of a platform you don’t control. This is particularly common if you want to use the default app store on most consumer mobile devices.

                                          When I use things like Apple’s keychain, for instance, I consider that my environment as opposed to my code; I can’t change it. And it used to feel like they broke something there in every release of the platform. I don’t know if that’s specific one is still a frequent source of pain as I don’t need to work much with that these days, but it used to be. That’s a prominent example of an aspect of software that feels less consistent to me than, say, resistor tolerances.

                                      2. 3

                                        In the province I live in; the definition of engineer is predicated on the amount of economic and personal harm that you may cause based on failures on your part. The definition of engineer varies greatly across different localities.

                                        1. 3

                                          Does you degree have “engineer” in the name? Yes or no :)

                                          Mine doesn’t, I have a computer science degree. I had classmates in most of my course work that were electrical engineers. They are engineers, I am not. So what who cares. I’m a computer programmer or a software developer.
                                          I certainly engineer systems in my work. So don’t a lot of people that don’t call themselves “engineers”.

                                          1. 4

                                            Who would say no besides people who think that ‘engineer’ is a protected word that only applies to special people (themselves included of course) in their special club?

                                            You use some solidified math to solve some problem? That’s engineering.

                                            Fixing your neighbour’s bike is engineering. But some people would only call you a mechanic because you got your hands dirty.

                                            This whole thing is just a semantic and status game. Not really worth your time, unless you enjoy it of course.

                                            1. 5

                                              Who would say no besides people who think that ‘engineer’ is a protected word that only applies to special people (themselves included of course) in their special club?

                                              Among other things, it is the law of the land in Canada that “engineer is a protected word that only applies to special people.”

                                              1. 4

                                                You use some solidified math to solve some problem? That’s engineering.

                                                My parents are mathematicians and physicists. I am an engineer. All of us use mathematics to solve (practical) problems. However, we think so differently that I can ensure you they are not engineers.

                                                Fixing your neighbour’s bike is engineering. But some people would only call you a mechanic because you got your hands dirty.

                                                I don’t believe it is. And that is why a brick layer is called a brick layer, not a civil engineer.

                                                I find very easy to recognise an “engineer attitude”, but very difficult to define it.

                                                I would say that engineers design efficient solutions using pre-existing scientific and mathematical theories, limited by certain constraints (usually the triplet quality–price–time).

                                                That is the closest definition I can give to engineers.

                                                1. -1

                                                  I am an engineer.

                                                  And that is why a brick layer is called a brick layer,

                                                  Seems like a standard case of a special member of the special member club gatekeeping his specialness to me.

                                                  1. 7

                                                    It’s a standard case of trying to let a word keep its meaning as opposed to redefining it to be applicable to so many things that it becomes useless and a new word needs to be invented to describe the things a civil engineer does that a brick layer doesn’t.

                                                    Otherwise a bricklayer is also a scientist, an educator, an artist, a manager, a leader, a <insert other general word people use to describe aspects specific to their kind of job>.

                                                    1. 7

                                                      I am disappointed that you had to take two of my sentences, take them out of context to defend your standpoint.

                                                      So I will tell you why a brick layer is different from an engineer, and why on engineering course we had to layer bricks.

                                                      Let’s take the civil engineering example. An engineer computes the theoretical forces over every part of the structure, evaluates which materials are able to sustain such stress and make sure that even additional and unexpected stress won’t tear down the structure (using the famous “security factor” in the computation). It is a knowledge work and has certain responsibilities attach to it: for example, if a bridge falls down and a single person dies, the responsible engineer is prosecuted for manslaughter (back in my country, at least).

                                                      The brick layers, on the other hand, execute a skill work, in which their abilities comes less from acquired formal knowledge and much more from experience, and they are required to provide different guarantees, such as straight walls, proportion of sand and cement, properly spacing steel beams and so on. However, if the bridge falls, as a consequence or not of their job, they are not prosecuted for manslaughter; in fact, they are protected by law by a “shield” called engineer.

                                                      This difference was engrained at us in university years so we would deeply understand the responsibilities of our profession.

                                                      And, curiously, we also had classes where we would layer bricks and, afterwards, go to the lab to stress our little walls. From that particular class, I remember the professor tested our walls against the ones made by professional brick layers: all of ours collapsed easily, while the professional ones standed for the stress test. In the end, we got a lesson on trusting and respecting experienced brick layers and to stick to our expertise, but to understand our peers’ work.

                                                      Therefore, it is fallacious to say an engineer is simply a title and there is no difference between an engineer and a bricklayer. It is as silly as saying as a pilot and a flight assistant are no different because both work at a flying plane.

                                                      If your intention is to be politically correct, then let’s continue being correct and do not change meaning of words just to fix social injustices: let’s, instead, do as my aforementioned professor and show that we should respect the different types of jobs and, above it all, the symbiosis of them that makes a final product every body involved is proud of.

                                                      There is no reason to call a mouse a cat so you can protect the mouse.


                                                      My final remark: I felt unnecessarily disrespected by your suggestion that I belong to some sort of elite and trying to defend my privilege, especially because we never exchanged communications and because your quoted me in a convenient order to support your prejudice of me.

                                                      Please, I ask you to stop for a minute next time you feel this urge to attack someone with different ideas from you and evaluate the person’s ideas instead of drawing and stating premature conclusions that might spoil the person’s day: you seem like someone that cares about equality and respect among people.

                                                      1. 2

                                                        Your arguments are basically 2 points. 1. Engineers use “formal knowledge”. 2. Engineers are liable for damage.

                                                        For the first point, bricklayers have knowledge too. As stated by you. There’s no reason the knowledge of how to calculate forces should be privileged over the knowledge of how to lay bricks. For point 2, that is a legal issue. I don’t think words change their meaning based on how a legal system assigns liability.

                                                        So I don’t see how any of these would qualify an ‘engineer’ as special.

                                                        1. 2

                                                          I have to disagree with you, again.

                                                          For the first point, bricklayers have knowledge too. As stated by you. There’s no reason the knowledge of how to calculate forces should be privileged over the knowledge of how to lay bricks.

                                                          Physicists use the same formal knowledge as civil engineers: mechanics and mathematics. Still, they have different professional names because they address problems differently.

                                                          But my first answer to you was

                                                          I would say that engineers design efficient solutions using pre-existing scientific and mathematical theories, limited by certain constraints (usually the triplet quality–price–time).

                                                          And that is what differs the work done by an engineer from a bricklayer: the focus (i.e. spent most of its professional time) of the former is design using formal knowledge, while the latter focus on building a given design using acquired skill.

                                                          (It doesn’t mean a bricklayer is forbid to design, but his design is most likely to lack the formal methodology applied in an engineer’s design.)

                                                          So, in my perspective, what people call software architect is, actually, closer to a software engineer. And most people tend to call software engineer is simply a software developer.

                                                          For point 2, that is a legal issue. I don’t think words change their meaning based on how a legal system assigns liability.

                                                          I have to disagree with you: murder seems different from manslaughter even though in both cases a citizen killed the other. But the legal system names, judges and sentence people differently on name of the crime.

                                                          So I don’t see how any of these would qualify an ‘engineer’ as special.

                                                          It is so because of internal values. But if we compare “physician” to “nurse” (or, even stretchier, a “shaman”), or “pilot” to “steward”, then I think your internal values tend to disagree with your own statements.

                                                          1. 1

                                                            the focus (i.e. spent most of its professional time) of the former is design using formal knowledge

                                                            An engineer once was asked to design a circuit. he looked up the reference design from the chip vendor, and copy and pasted.

                                                            Was he engineering here? What formal knowledge and technique did he use?

                                                            murder seems different from manslaughter

                                                            This argument is basically “people in legal professions treat legally distinct catergories distinctly”. It doesnt prove much. Manslaughter is a legal term. People don’t use them generally.

                                                            It is so because of internal values. But if we compare “physician” to “nurse” (or, even stretchier, a “shaman”), or “pilot” to “steward”, then I think your internal values tend to disagree with your own statements.

                                                            You need to improve your mindreading skill. Pilots fly the plane, stewards don’t. Physicians and nurses are much more similar.

                                                            1. 4

                                                              Firstly, I would like to say that I like this discussion with you (when there is no personal attack): we have different points-of-view, and we keep pushing the discussion further.

                                                              An engineer once was asked to design a circuit. he looked up the reference design from the chip vendor, and copy and pasted.

                                                              Was he engineering here? What formal knowledge and technique did he use?

                                                              By your statement, I will take a wild guess and assume you are not a hardware or electrical engineer.

                                                              Hardware design is not simply putting elements in a board. Hardware design involves, among so many things:

                                                              • choosing the correct components based on the constraints of the project, both technical, spatial, financial and time;
                                                              • impedance matching among components;
                                                              • electro-magnetic compatibility on the wiring and components;
                                                              • thermal and power analysis of the design; and so on…

                                                              Of the four tasks above, I would say the first one is that with the least amount of formal knowledge and relies mostly on skills. The other three heavily rely on formal knowledge (Physics).

                                                              But back to your example, that is an attitude I could expect from an amateur hardware designer, a university student or, even, a junior engineer under supervision. Not from a professional engineer, in a professional environment: that is not what an engineer is expect to do, as I showed you by the small list of tasks when designing hardware.

                                                              Pilots fly the plane, stewards don’t.

                                                              That is the point I am trying to make, but on engineering: engineers design; builders build. And those are distinct activities.

                                                              Physicians and nurses are much more similar.

                                                              OK, we have a concept we converge.

                                                              So, in your opinion, does it make sense to have a separate word for physicians and nurses? Does it make sense to you that physician is a protect word, associated with an union and have certain legal responsibilities? Do you see people calling nurses, midwives, physicians and surgeons all by the same word, “physician”? (Technically surgeons are physicians, but that is fine.)

                                                              Clearly there are overlaps among all these professions but, to me, the core function of their job is different. And I would say that is clearer when comparing midwives to obstetrician: both deeply understand about pregnancy and are able to handle most cases of pregnancy, from the conception to the birth; however, that certain cases, formal knowledge (acquired in medicine school) is necessary to do the job properly.

                                                              That is what I have been taught and daily observe about (software, but also other) engineering: frequently there is an overlap between programmers, architects and engineers but, at (a good amount of) times, more specialised and formal knowledge (and mindset) is necessary to address some of the technical challenges of the project.

                                                              And, to me, that justifies the existence of the special university degree (engineering) and profession (engineer).

                                                              1. 1

                                                                So, in your opinion, does it make sense to have a separate word for physicians and nurses?

                                                                Sure.

                                                                Does it make sense to you that physician is a protect word, associated with an union and have certain legal responsibilities?

                                                                no

                                                                Do you see people calling nurses, midwives, physicians and surgeons all by the same word, “physician”?

                                                                I go by the humpty dumpty rule of language usage. Words mean what you want them to mean. For communication, you simply have to make sure the other party knows your definition.

                                                                By your statement, I will take a wild guess and assume you are not a hardware or electrical engineer.

                                                                You are deflecting here. You are not addressing the scenario I presented, and instead restated your definition.

                                                  2. 3

                                                    people who think that ‘engineer’ is a protected word that only applies to special people (themselves included of course) in their special club?

                                                    That’s the legal and universally acknowledged definition of the word.

                                                    You also can’t go around calling yourself a lawyer without being in the special club. I don’t imagine you have a problem with that.

                                                    You use some solidified math to solve some problem? That’s engineering.

                                                    Not what it means or has ever meant.

                                                  3. 2

                                                    Engineer – a person who designs, builds, or maintains engines, machines, or structures.

                                                    I’m ok with this definition. And software engineer is “engineer”.

                                                    1. 1

                                                      I am an engineer by this definition; because by eating food, I maintain my body, which is a biological machine.

                                                      1. 2

                                                        In some sort you are ;)

                                                    2. 2

                                                      At the end of the day it’s just a title, and you can put whatever title you want on LinkedIn.

                                                      1. 4

                                                        Unless you live in Canada, in which case it’s against the law to call yourself an engineer without an engineer’s certificate.

                                                        1. 3

                                                          Same situation in Germany, Sweden, France and numerous other countries.

                                                      2. 0

                                                        This title makes makes me assume the talk is going to either be language lawyering, or some kind of political licensing thing, neither of which are interesting to me. If there’s something deeper, I would recommend titling it differently. I know this just sounds petty but I feel it’s useful feedback, please don’t it personally.

                                                        1. 4

                                                          It’s neither. I interviewed 17 people who worked as both software and “traditional” engineers and had them compare and contrast their experiences.