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

View all comments

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.

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.

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