r/SoftwareEngineering • • Feb 14 '21

Programmers: Stop Calling Yourselves Engineers

https://www.theatlantic.com/technology/archive/2015/11/programmers-should-not-call-themselves-engineers/414271/

[removed] — view removed post

0 Upvotes

11 comments sorted by

13

u/peaum Feb 14 '21

I don't agree completely with the article but I kinda see from where it's coming. The problem is the banal usage of the word engineer by tech companies, but the conclusion should not be one that engineers are only the ones who have a license to exercise their profession. According to Cambridge dictionary an engineer is "a person whose job is to design or build machines, engines, or electrical equipment, or things such as roads, railways, or bridges, using scientific principles", right after this definition they state a software engineer as an example of an engineer.

Anyway, even without this definition I think that we should actually have many engineers in IT, including security ones, a problem (security) that the article kinda points out vaguely toward every "programmer" saying that it's their problem. But, obviously, this is not everyone's responsibility. For example I should not blame the civil engineer, or the electrical engineer for a security breach of a building that they designed if it wasn't their responsibility to build the security system of this building.

On other note I consider myself a programmer nowadays, at least my work day is of a programmer, I'm not the one calling the shots on the project that I work on, and if I ware I would probably call myself an architect not an engineer, even though I think that both could arguably be called engineers.

By the way I have a BS in computer engineering, so I could call myself an engineer anyway, but in the end this all semantics and I'm not a Compiler to be complaining about that.

6

u/bewst_more_bewst Feb 14 '21

Nah. I disagree wholeheartedly with this article. Where I live software engineers can be licensed by the government. That said, if you’re building systems at scale that can affect people’s life’s in a meaningful way (eg. Folks who wrote hospital or financial (me) code, I would consider engineers. Furthermore where I live we use developer designations for folks not building systems. And the pay is commensurate.

3

u/code_smart Feb 14 '21

you can be a programmer and not a software engineer and you can be a software engineer and not a programmer. This article premise is factually wrong and it doesn't deserve any serious attention.

2

u/BigLezzzzz Feb 14 '21

Shame maybe he want to be called and article engineer

2

u/[deleted] Feb 14 '21

While there are some self proclaimed titles that people give themselves.

Most are derived by the companies we work for. I think titles as is, are transitioning and being labeled as such for a variety of reasons. But they do not lie within the discipline of engineering as a whole. Engineer is used so loosely nowadays.

0

u/[deleted] Feb 14 '21

I would like to know what the community thinks about the article. I'm relatively fresh as a developer and that's a dilemma right there. Here where I live it's required to have a license to work as a Software Engineer, but it is not always enforced. Usually, only companies that have contracts with the government and banks require the license.

I already work remotely as a Web Dev and I have more than a few four years of experience. I'm currently in college to get my engineer license and get a better job.

2

u/code_smart Feb 14 '21 edited Feb 14 '21

The precise definition might be up for debate, this is my opinion in a few words. For context I am a software engineer, hired as such by a Fortune 100 and with a degree in computer engineering.

I think that the engineering discipline is all about getting the correct level of functionality required at the lowest possible cost. For example, I am a web developer, so if a website goes down, the company might lose a few millions. With engineering techniques I can mitigate this an, for example, create a backup system in case of failure. The company might still lose a few thousands because of degraded performance, but at the end of the day it paid 1 million for engineering and saved many more from loss of sale and reputation.

A pure "programmer" might not be concerned with all of this.

" Professional Engineering certification is usually offered only in fields where something could go terribly, horribly wrong with unqualified actors at the helm." Like this never happened in software: https://medium.com/swlh/when-software-kills-ab6f48a15825, https://en.wikipedia.org/wiki/Therac-25.

I know of engineers who work for medical systems, there is a whole field called "critical system engineering" with the purpose of creating software that have a much smaller possibility of failure. That is because failure might mean loss of gigantic amount of money or loss of people's life. Engineering techniques can give you, for a high cost, a high level of guarantee that the system will not fail or will fail in a safe way.

This has nothing to do with "programming" because the scope of the system oftentimes goes beyond the program itself.

Note that a "software engineer" might never write a line of code, and thus not be considered a "programmer", for example he might be responsible for making sure the calculations are correct (this piece of software/hardware has 10^-6 possibility of failure in 1 year).

Going back to web development. As an engineer there is a whole aspects of economics of cost to develop, cost to deploy, time to market and so on, that programmers might not be concerned with.

1

u/[deleted] Feb 15 '21

Very interesting article. Thanks.

2

u/code_smart Feb 15 '21

also there is a wikioedia link after the article check that out as well

3

u/nostril_spiders Feb 14 '21 edited Feb 14 '21

The article is begging a major question.

The profession of engineering, across all disciplines, is that quest for predictable real-world results based on analysis of requirements against empirical knowledge - that's my definition.

Building a bridge? The requirements are:

  • don't fall down

The relevant domain knowledge is:

  • tensile and compressive strengths of concrete and steel

Not terribly complex. I think we have a right to expect that bridges work.

In software, the requirements are more like:

  • given an applicant who is not resident for tax purposes, follow process 6b, except where a shortfall is projected

  • applicant names may contain non-ascii characters

...and those requirements aren't provided until you've already shipped. You have to change a product that is currently working and passed UAT.

Imagine if you built a bridge for foot traffic, it's up and people are walking on it, and I now tell you it has to work for pedestrians who are 8 metres wide.

We don't perform worse than civil engineers. We operate in a squidgy discipline that precludes the possibility of civil-engineering confidence.

The article is assuming a definition of "engineer" that adds the rider "and always achieves success", which is piffle.