
Programmers should stop calling themselves engineers (2015) - tomerbd
https://www.theatlantic.com/technology/archive/2015/11/programmers-should-not-call-themselves-engineers/414271/
======
airbreather
And in a slightly oblique way, when I was studying at engineering school
(University it is called in Australia) the joke among the students was that at
Uni we had two hours to get four questions half right(exams), but once we were
engineers we would have as long as it takes to not make a mistake.

The lecturers that had actually worked in real industry for any period of time
had another line, "Most of what you do as engineers could be done by many
people, but it the engineer that does it safely in a predictable time, budget
and quality".

There is no, "move fast and break things" in designing bridges, the electrical
grid, chemical plant, airplanes, or even the town sewerage system. If there is
it is normally baked in as a "proof of concept" phase very early on.

When it comes to unwanted consequences, the whole engineering approach is
built around conservative, known approaches with low risk of harm to humans,
demonstrable in court if need be.

Often the exposure of humans to harm from engineering decisions is
involuntary, whereas to software is voluntary. There are even special branches
of engineering that use software in preventing harm to humans that are tightly
controlled and have certified practitioners (Functional Safety - IEC 61508)

I don't think people who write software for a living are any less, or less
important, than engineers. In recent times it is hard not to argue that
production of software has been instrumental in changing the world more
rapidly than any other one profession or pursuit in the history of man.

But I do think that a lot of the time the workflows and methodologies employed
in the pursuit of these very rapid developments we have witnessed are not of
an engineering paradigm.

The majority of software development lives by different rules (appropriate for
the outcomes, consequences and potential rewards) and should be considered as
a different kind of activity, with it's own approaches.

~~~
healsjnr1
In a way I understand these comments, but I think they are drawing a very
black white line in a grey area.

I trained as an electrical engineer (but I'm now %100 software), yes there was
a lot about responsibility, safety etc, but to me the core of engineering and
in being an engineer is to be able to apply theoretical math and physics
concepts to real world problems.

That is why I did what I did, I didn't want to be an engineer to be an on
time, on budget, project manager. I did it to combine design, maths and
physics to build real world solutions to problems.

And this is why I would 100% consider myself a software engineer.

The accreditation and certification is missing (so far) because we are still
figuring out the best ways to apply engineering to building abstractions
(which is what I believe our field is). To me this doesn't make us any less
engineers.

~~~
pjmlp
It does exist, but sadly not widespread enough for those that care about
quality.

~~~
vlovich123
Quality isn't the end-all be-all. Engineering is about understanding tradeoffs
so that you can actually have a profitable business. It has always been
tightly coupled with business. You can't build a bridge if no one wants the
expense. Government is OK to regulate outcomes (like bridge can't fall down)
but it's not OK for it to start mandating that every bridge must be a
suspended bridge.

~~~
airbreather
This is the first misunderstanding of people not involved with QA in any way.
(IS9000 series).

In this sense, quality doesn't mean "goodness", rather it implies
predictability and repeatability. eg Are you doing what you said you would do
to make something of "goodness" you defined?

Under the ISO standards it is entirely suitable to have a quality assurance
system in your company that says, "we will make minimum effort to make to
minimum quality, to the measurable metric of x failures per y products and
intended product life span of z days".

The colloquial use and technical use of the word quality are quite different.

------
leoedin
I've got an aerospace engineering degree and have worked across a number of
industries, from satellites to robotics. These days my job is about 50%
software.

Software development _feels_ the same as other engineering design. You
generate requirements, prototype, test and iterate.

To argue that it's not engineering because it's not regulated is stupid,
partly because most engineering fields outside of buildings aren't
particularly regulated anyway, and partly because there's loads of regulations
which are just as relevant to software engineering.

Generally safety standards apply to the whole system - not just the electronic
design, but the software and hardware interaction. The complexity of software
means you have to take a slightly different approach to actually quantify risk
of failure, but it's still very much engineering.

~~~
pjmlp
Thing is, it is regulated, sadly not enough world wide.

Back in Portugal no one can call themselves Engineers if their degree wasn't
done at an university validated by the Order.

And even then, you are only allowed to sign certain kinds of projects after
getting the professional title.

Naturally coders, with roles similar to construction workers, can be anything.

~~~
leoedin
I think software development is a wide range of things, all the way from
hacking on WordPress plugins to safety critical software. "engineering" comes
in somewhere on that spectrum. Some software development is engineering, but
not all is.

------
roenxi
Companies work by dividing all tasks into smaller tasks and parceling them up
among the employees, aiming to specialise to knowledge of individual workers.

'Engineer' can mean a couple of different things depending on culture &
context, including I think a 'person who works on engines'. However,
professional engineers are technical decision makers.

A good engineer will think through a project from start to finish, anticipate
all the decisions that will come up, and make them. Not obvious trivial
decisions like 'does the bolt need tightening' but the big picture ones like
'is this standard acceptable?', 'is this trade off acceptable?'.

Big companies separate engineering from programming. Small companies will not
have the resources, so the roles will be combined. Adding a dependency,
changing an API and choosing major data structures are all engineering
decisions. Deciding how comprehensive the testing framework needs to be. Maybe
some algorithm choices.

Typing Python code is not engineering. Implementing some well established
algorithm like Quicksort is not engineering. Doing something using an API
because someone told you to is not engineering. Writing a unit testing is
probably not engineering. Move-fast-and-break-things is not engineering,
although it does seem to work very well.

There is overlap. I don't see why someone who is making big picture decisions
shouldn't call themselves an engineer. Being regulated and certified is only
mandatory if the government says it is.

~~~
pojzon
By your definition, anyone who is a full stack developer is actually a
software engineer.

To be honest any decent dev is interchangeable between positions in a
corporation, its simply better for your career.

I can create whole systems from ground to top, from design through backend and
frontend with infrastructure and orchestration. Can i call myself an Engineer
then ?..

~~~
roenxi
> Can i call myself an Engineer then ?..

Legally, I don't know. Personally, if you might be making a lot of engineering
decisions then I wouldn't object. I would probably consider a lot of full
stack developers to be basically engineers.

A FSD isn't necessarily making engineering decisions though. I can imagine a
FSD who is expected to make all elements of a stack work together without
having any real control over what composes the stack - maybe doing bugfixing,
configuration and integrating new bits on demand. That wouldn't be engineering
to me because there isn't a lot of control over high-level decisions.

------
Fellshard
Does it stop being an engineering practice because a vast number of
practitioners are incompetent, and fail to practice engineering rigorously?

Or is it rather the case that it is an engineering discipline with
frighteningly little done to train, apprentice, vet, and self-regulate its
practitioners?

Is it the nature of the work or the workers that define engineering? I'd argue
the former, every time.

As for 'the public good', that sounds like a convenient definition to make a
point, but didn't seem like an actual boundary one can set, beyond perhaps the
common bindings of engineering ethics blatantly missing in the software world.

------
xondono
As an engineer myself (EE) I disagree completely with OP.

Engineering is mostly about making tradeoffs.

It’s not that software does things different that other engineering fields,
it’s just that it faces different cost structures.

Bridges, buildings and infrastructure face huge costs when making changes in
the middle of the project. Some operations make changes almost impossible, or
so expensive that they are considered impossible. The worst case scenario for
software is starting over, but a lot of stuff can be fixed even _after_
release.

By the way, bridges, buildings and the like also have BIG blunders, but since
they are not necessarily visible from the outside, we assume they are nowhere
to be found. The internet exposes your app to thousands if not millions of
people with technical knowledge, but no one can see the cracks on the main
pillar of your building, so you fix it, you keep quiet and go on.

------
0-o
I get the premise of the article is to show that software developers aren't
all that special, and shouldn't call them engineers.

But what's frustrating to me is the blatant comparison of structural
engineering with computer security. The comparison stops at the point that
they're both in place to make sure nothing bad happens. Imagine building a
bridge and having to fend off hundreds of adversaries continuously getting
more advanced in finding ways to destroy your bridge.

------
liothen
So the article contends that software doesn't play critical role in society.
Apparently the author doesnt know that most power plants, nuclear or even
hydroelectric are run by software, not to mention a few small things like
medical equipment. Oh and airplanes use sofware too.... wait software is in
almost all critical engineering projects.

Maybe the author should do more research.

~~~
ncmncm
I see that you maybe skimmed it a little too fast.

It is _because_ software plays a critical role in society that it needs to be
done by engineers; but it largely isn't, and it shows.

~~~
tluyben2
It definitely shows: in my uni I had a professor (pupil of Dijkstra) who we
thought was very elitist (not so weird considering his pedigree) ; he said the
world will be a bad place if we continue the bad software practices and was
all for allowing (!) non engineers to make games and ‘fun things’ but not
anything that actually does anything that could lose money or health if done
badly. I have not spoken with him for a while but he must be crying every
night about the JS uprising.

20+ years further, I am starting to agree with many of his points.

------
lsc
What makes the whole thing super weird is that where I live, "software
engineers" which is to say, javascript programmers, get paid a lot more, say,
than civil engineers or aeronautical engineers... so it's weird that computer
technicians try to say they are Engineers rather than the other way around.

~~~
airbreather
Maybe depends where you are, I live in resources city, generally speaking a
good experienced engineer gets paid quite a lot more than good programmer.

Some experience you just can't overwhelm with any amount of youthful vigor or
brilliance when the consequences are substantial enough.

~~~
lsc
Yeah, probably depends a lot on where. I'm just a sysadmin, the difference in
pay between here in silicon valley and the cheaper parts of the US for my
labor are extremely dramatic. I mean, it's dramatic for better educated
programmers, too, but not nearly as much as it is for me with no degree and a
less prestigious title.

I know a bunch of people who worked at lockheed around here, and, like you'd
get literal MIT rocket scientists with security clearances making...
dramatically less than me, even though I have one of the lower paid technical
roles you can find at the FAANG companies.

------
andmarios
Engineering is not about building robust structures. It can be applied towards
that goal but that's it; an engineer takes specifications and constraints and
solves the problem within these bounds.

An important part of an engineer that the article fails to mention is the use
of the tools of applied mathematics. If you use an RDBMS and you normalize
your database, you are closer to an engineer than someone who can only handle
NoSQL.

------
acqq
Actually there are different things for which people study:

a) computer science

b) computer engineering

c) business and management

One who is an engineer (b) by training can spend most of his life implementing
the wishes of the (c) people, basing his work on some results obtained by the
(a) people, and the product can still be against the "public interest" as in
the implementation of the MCAS for Boeing 737 MAX (where it can be said that
the software was actually produced "according to the specifications" but that
the "specifications" were faulty). But that doesn't mean he isn't an engineer,
only that he works in an environment that is driven by the goals which aren't
of "public interest."

There are even more extreme "non-public interest" stories to be told, but that
just means that on many levels there should be more done to move the society
to do what the "public interests" are. Which as we know is not easy at all,
and surely not decided by the practitioners of of some engineering discipline
themselves.

(and moderators, please add 2015 in the title).

------
Ragib_Zaman
In a somewhat similar vein, I've always found it odd that engineering students
commonly refer to themselves as engineers. I agree with much of the linked
article and believe the title of engineer implies that one has already gone
through a rigorous testing and certification process and that you conform with
continual professional development and regulation. So it irks me slightly to
hear a first year student call themselves an engineer. It feels like a medical
student calling themselves a doctor.

In other fields where the title most designates that you regularly do an
activity and does not imply certification and strict regulation I think it's
fine to call yourself by that title even if you are a student. Many CS
students are programmers, or PhD candidates in mathematics are mathematicians.

~~~
pjmlp
Some countries do require certification, just like doctors.

~~~
amelius
Then I think there should be something like the Hippocratic Oath, but for
engineers.

"I swear by Hephaestus, god of technology, that I will write only software
that causes no harm to humans, and does not infringe on their privacy ..."

[https://en.wikipedia.org/wiki/Hippocratic_Oath](https://en.wikipedia.org/wiki/Hippocratic_Oath)

------
rdiddly
An engineer is just someone who uses ingenuity. Same word. ( _ingenieur_ I
believe)

Regulators should treat software as a licensed engineering discipline though.

Needs a [2015] in the title.

~~~
chirau
This is a very poor definition. Probably the poorest.

I wonder what your definition of a doctor is then.

Being a guilded engineer myself but now called a software engineer, I can tell
you with absolute certainty that software engineers as defined by industry
today do not make the cut.

They are the equivalent of witchdoctors to doctors. Make of that what you may
and then tell me again what an engineer is and what software engineer is

~~~
rdiddly
The argument about the meaning of the word is a massive and stupid
misdirection of attention. What counts is licensure. A point I already
addressed.

------
mto
Read that article couple years ago, but still I just have to look at the
quality of all the electric devices around me... It's not all bridges and
hospitals. Heck, even my electric toothbrush from Philipps can't make it
through a full year without failing (planned obdolesence or not).

Security aspects are typically even worse in non-software development fields.
Just look how awfully unprotected things like babyphones, elevators, cars etc.
always were and are.

Only that hardware hacking is usually riskier and less convenient (and often
not very rewarding).

But yeah, of course... The threshold to get started with software is lower.

------
Theodores
Job titles matter to people, why pay someone a raise for being good when you
can add an extra buzzword to their job description or change their job title
to something that sounds posh? It is a win-win for the company, they can
introduce their 'junior assistant' as 'senior engineer' to impress whomever is
being given the show and tell.

What I find objectionable to the pigeon-holing is that 'engineering' is one of
the most creative disciplines there is, whether you are engineering a bridge
or even software. But the wider world of artists can't see this. If you use
maths to make something then that is not 'creative' it is 'technical'.

This segregation of 'technical' and 'artistic' starts out in school, so if you
end up as an artist making brown pots then that is deemed 'artistic' and
thereby wonderfully creative despite the fact that brown pots have been made
in a similar way since before recorded history. If you teach an AI system that
has been trained on the Utah Teapot to make a brown pot in polygons then that
can't be 'artistic', even though art only ever innovates when new mediums come
along.

There is a related wrong-phrase with 'Computer Science'. How much science is
there is new ways of doing things with ones and zeroes? Or is this
'technology' that we are talking about?

I am not entirely happy with the word 'developer' either. Therefore the phrase
'computer programmer' works for a general audience as in 'I just do
programming' or 'oh, here is one of our programmers' (before door to darkened
room gets shut). If your work gets used by people then the validation should
come from the metrics that come from that, not from a title that is slightly
inflated.

------
mikasjoman
I don't see any difference between a mailfunctioning piece of software
creating serious harm to that of a crashing bridge. They can both kill, create
huge social disturbance and leave people ruined. The problem is that the field
still largely just thinks of them as bugs when it comes to software. That we
have an abundance of programmers not taking software engineering as serious as
the mechanical engineer is a huge problem today. When someone gets hurt from a
bug, the software engineer mostly gets away with it (or get a reprimand from
the boss) and doesn't get his/her licence to write professional code away. To
be honest, what we would need is a professional certification where the
software engineer should at random be required by law to be audited about
his/her code and potentially be forbidden to work with some type of projects
if it doesn't pass. I have seen way too many nasty outcomes and suffering
during my career in the industry to hold any other opinion. We have real
software engineers out there who write clean, rigid & maintainable code - but
the industry is flushed with hobby tinkerers allowed to work on projects that
can result in serious harm. Calling oneself a software engineer should be
regulated, audited like any other engineering field. That we don't require it,
leaves us with the nasty results that is an ongoing disaster. Anyone can write
a piece of software, the way anyone can build a bridge. Ensuring neither of
them come crashing down and adhering to principles and practices that doesn't
make it come crashing down with high certainty is what's makes engineers
different. If you have read the book "structures - or why things didn't fall
down", you know that those other engineers from other fields also fail on and
off. The difference is that in software we just keep building the next bridge
go come falling down when the previous broke.

------
cm2187
I think the article is right for the wrong reason. There is nothing in
engineering that relates to public interest particularly. I am sure there are
good engineers in the tobacco industry. I hold a formal engineering degree
myself, not a single line in the curriculum relates to public good.

But I think the article is right that programmers are cheapening the term
“engineer” by their incompetence. Anyone can call oneself a programmer and for
a non technical business owner, there is no way to know that their programmers
are not going to pepper their systems with rookie mistakes: sql injection
vulnerabilities, unvalidated user inputs, unpatched software, default, shared,
hardcoded or missing credentials, clear text passwords, etc. None of this is
hard or expensive but this is the cause for the quasi totality of data leaks
in the past.

How do we create confidence in this profession? It’s not a university degree,
I am not sure any CS course even covers this basic stuff, and that does
nothing for the stock of existing programmers.

------
reilly3000
Less death is attributable to software engineering, but certainly more harm
could be attributed to it. What happens to our species if you engineer the
perfect algorithm for controlling the attention of a whole people group, then
use it to stimulate their most base emotions?

~~~
jacquesm
As 'software is eating the world' more and more deaths will be attributable to
software development and there comes a point where the rest of the world will
no longer be content with the crap our industry produces.

------
enz
> "It undermines a long tradition of designing and building infrastructure in
> the public interest."

Well, that's what some of the so-called software engineers actually do. And
they are not necessarily doing programming.

I would agree that most of the programmers should stop calling themselves
engineers because programming is not engineering per se. I would agree that we
must stop considering "SE" and "programmer" synonymous in most cases. Maybe
the term "software craftsmanship" can be a good alternative.

However, it does not mean that "software engineering" as a discipline does not
exist. I think it exists and people doing it should call themselves software
engineers. And those people are not necessarily doing programming.

------
somada141
‘The title “engineer” is cheapened by the tech industry.’? That’s a little
over the top ain’t it?

There are a lot of degrees combining electrical & computer engineering. My
diploma was in such a degree and my PhD was in informational technology and
electrical engineering. I think the lines between the two fields are blurred
and by no means do I believe that one title/specialisation is better or
harder.

I started working as an EE and later on moved to coding and both fields have
their own challenges and hurdles. I never felt that a person that didn’t get a
degree explicitly in engineering doesn’t get to call themselves an engineer.

------
siscia
I wrote about the same topic here: [https://redbeardlab.com/2019/04/08/on-
dignity-and-self-respe...](https://redbeardlab.com/2019/04/08/on-dignity-and-
self-respect-of-a-profession/)

I disagree with the author, some of our work is definitely not engineering,
making yet another e-commerce look nice is not engineering) developing
browsers, web servers, cryptographic libraries, databases and all the basic
tool used in the profession is definitely engineering.

------
pjmlp
At very least those that haven't taken an Informatics Engineering degree, with
professional title should stop calling themselves engineers.

There is a certain level of expectation beyond such title.

------
bobosha
I feel it's false equivalence to consider the "engineering" required to build
bridges and buildings vs. coding websites and mobile apps. Mind you, those
fields of traditional engineering have hundreds, perhaps thousands of years of
experience (read: disasters) to draw upon. Software engineering is barely 50
years old - the equivalent of mud huts, straw roofs and ropes & plank bridges
in construction. Like with anything else, these things takes time to mature.

------
tomerbd
"In the United States, registration or licensure of professional engineers and
engineering practice is governed by the individual states. Each registration
or license is valid only in the state where it is granted"

[https://en.wikipedia.org/wiki/Regulation_and_licensure_in_en...](https://en.wikipedia.org/wiki/Regulation_and_licensure_in_engineering#United_States)

------
Avi-D-coder
While a random js dev should not be called an engineer, the complexity and
societal impact of modern software stacks far surpass most "true" engineering
projects.

If Linux, Google, networking, etc.. were to stop working what would be the
global economic cost?

If your work requires using formal methods, maths and extensive testing to
ensure the reliability of the most complex systems known to man, than your an
engineer not just a programmer.

------
amelius
An engineer is a person who introduces CPU speculative execution bugs. A
programmer is the person who works around them.

Speaking of which, a CPU is typically designed in a programming language such
as VHDL, so by the logic of the article Intel's engineers are mostly just
programmers as well ...

------
amelius
This piece reminds me of the old saying "if Microsoft built cars, they would
crash twice a day".

[http://homepage.tinet.ie/~nobyrne/ms-
cars.htm](http://homepage.tinet.ie/~nobyrne/ms-cars.htm)

------
amelius
An engineer is a person who uses numerical simulation software to guarantee
safety of bridges, buildings etc.

A programmer is the person who wrote that software.

------
itronitron
a term that is widely used will have multiple meanings. considering who gets
referred to as an 'artist' these days i can't really be upset with how the
term 'engineer' is applied.

------
demarq
because bad "traditional" engineering isn't taking lives or casing financial
loss and poor health?

The article was a "lets take an ideal apple and compare it to a rotten
organge"

------
t0ughcritic
I think while we are at it, MDs need to remove the Dr. Prefix as well, no
other profession regardless of if they have a doctorate or not does this.

