
Programmers: Stop Calling Yourselves Engineers - duggieawesome
http://theatln.tc/1NXSTAl
======
imgabe
As a licensed Professional Engineer and wannabe programmer, this guy should
get off his high horse. There's a difference between an engineer and a
Professional Engineer. Much of the engineering industry, electrical,
mechanical, chemical, etc. does not require licensure. It's only needed in
specific industries where engineering services are offered directly to the
public. I don't think anyone is confusing software engineers with PEs.

And building things in the public interest? Please. These things our built in
our _client 's_ interest. Yes, sometimes that client is "the public" in the
form of a local, state or Federal government, but not always, and for many
engineers, hardly ever. It's also dubious that the government's interest
coincides with the public interest. I worked for a firm that bid on the
contract to design the NSA's 60MW datacenter in Utah. We didn't win, but
someone did, and they happily took the money to build it. Public interest
indeed.

Yes, we recommend building things in sustainable, efficient ways whenever
possible, but at the end of the day someone else is footing the bill. As long
as they aren't asking for something outright illegal or dangerous, they'll get
it. If they want to knock together a building that barely meets code minimum
requirements, that's what they'll get.

> Today’s computer systems pose individual and communal dangers that we’d
> never accept in more concrete structures like bridges, skyscrapers, power
> plants, and missile-defense systems.

It's still pretty early days as far as computer systems go. It's only a little
over a hundred years ago that hundreds of people died in a fire[1] causing us
to realize the egress doors need to always swing _outwards_ and should not be
locked. And that's after how many millennia of building buildings?

We don't accept these dangers now because we know what they are after people
having died from them in the past. We won't know what things we will need to
watch for in computing until they happen.

[1]
[https://en.wikipedia.org/wiki/Triangle_Shirtwaist_Factory_fi...](https://en.wikipedia.org/wiki/Triangle_Shirtwaist_Factory_fire)

~~~
cholantesh
>And building things in the public interest? Please. These things our built in
our client's interest.

As soon as I read the tagline, I thought, "Surely he's presuming all
engineering is civil engineering." That's the only way that argument holds.

------
jozzas
I'm a Software Engineer. It's printed on my undergraduate degree, it's on my
business card, and it's recognised by the engineering association in my
country. So no, I won't.

"Traditional engineers are regulated, certified, and subject to apprenticeship
and continuing education. Engineering claims an explicit responsibility to
public safety and reliability, even if it doesn’t always deliver."

I DO have an explicit responsibility to public safety and reliability (it
comes with the degree). I have to consider the implications of my work and
could be held criminally liable for errors resulting in injury or death. If
one was designing and building - or even updating - the software for a
radiation therapy machine, for example, wouldn't you want it to be that way?
[https://en.wikipedia.org/wiki/Therac-25](https://en.wikipedia.org/wiki/Therac-25)

~~~
sotojuan
This is obvious, but he's talking about the US. Here, "software engineer" is a
sort of made up title. I wish the US was like your country, though.

------
SirensOfTitan
Google and Facebook, amongst others, have shown that the quick iteration
strategy works, even for complex, critical systems. The key to success in that
strategy is in good tooling--something that allows people to move quickly
without breaking critical systems.

With that, understanding your goals is important in deriving strategy.
Developing software for NASA space shuttles is going to be inevitably slower
and more scrutinized than working on Google Music. Therein lies a traditional
engineering problem of using the right tools for the job.

Software also does contribute to the public good in that an open-source
mindset is built into the subcultures of the profession in general. It's
pretty cool that I can get involved in programming using free tooling from day
one, where my friends in finance or more traditional engineering careers
cannot.

Overall, the author feels like they're arguing from some twisted version of
the "golden age fallacy." In fact, this seems like the same type of tired
arguments I hear stipulating that video-games are not art: built as an
argument from the old guard to bully the new kid on the block.

~~~
jeremysmyth
_Google and Facebook, amongst others, have shown that the quick iteration
strategy works, even for complex, critical systems._

Complex systems, yes. Critical... well that depends on how you define
_critical_.

The whole "quick iteration strategy" idea depends, largely, on the idea of
"fail fast" or "move fast and break things". This necessarily makes iterative
software development into an exploratory discipline, poking at something that
doesn't work with a stick so that you understand it better and then creating
something that does work off the back of that.

You simply cannot "move fast and break things" in a field where your created
artifacts are expected to last a long time; we'd live in a fragile world of
prototypes and conservatism were that the case.

In pretty much every other field populated by people who call themselves
engineers, there's a whole lot more thought and maths going into the design of
constructed artifacts, fed by a whole lot more science, before doing the
actual construction. This approach is not just passé, but anathema in the
software world. We just don't do engineering the way the rest of the world
does.

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

 _" The traditional disciplines of engineering—civil, mechanical, aerospace,
chemical, electrical, environmental—are civic professions as much as technical
ones."_

I would like to introduce the author to something called "Open" "Source":

[https://github.com/explore](https://github.com/explore)

The server that his article is reaching the world via is almost certainly
running multiple pieces of infrastructure designed and built in the public
interest, and given away for free.

Software suffers from being universal, inexpensive and omnipresent, so people
notice all the crap (I certainly bitch about software quality myself) while
ignoring the thousand miracles per minute that it provides for us.

------
d43594
As any person will have observed more often than not accreditation proves
little or nothing about anything. For example many corporations possess
numerous different accreditations (some of which are industry specific) e.g.
ISO:XXXXX, OHASA, Microsoft Gold etc etc etc. Most of these are simply seen by
management functions as a box ticking exercise. The principles and most
importantly mindsets evangelised by such accreditations are never enacted or
held by those with the power to enact them. Perhaps this is a problem because
for some reason management types aren't seen to be a collaborative discipline,
but instead a ruling one. Often engineers are at the behest of management
decisions which tend to be based upon ill-conceived preconceptions, and poor
and/or politicised information. Ultimately more engineers need to hold
management positions to ensure values are enforced and engrained within the
culture of the organisation. To some extent accreditation is just advertising
and brand image.

My house builder is accredited by X, Y and Z but their management and customer
service is so poor that I fail to see how the business functions. I think this
projects a some what idealistic view, not founded in reality.

------
kayman
I consider programmers as people who have learned the syntax of a language.

They did a quick "Program in <Language> in <X> Days"

They don't understand too much about what's going on under the hood. Just
press this and it happens.

Software Engineers on the other hand have a deeper understanding of software.
They have studied the field and learned how a computer actually works from the
bottom up. They understand assembly language, state machines, data structures,
algorithms.

A programmer has trouble adjusting to the technological landscape as it
evolves. A software engineer sees the evolution and can see why solution y is
better than previous or if it's just marketing hype.

A true software engineer understands software is more than code.

------
geebee
Eh.

Ok, if you must, I actually agree that programmers should stop calling
themselves engineers. Like I've said before here on HN, I don't think it helps
us (programmers). We should own our title and wear it with pride. Taking
someone else's title does two bad things - first, it opens programmers to the
charge that they are insecure and are misappropriating someone else's hard
earned title and reputation. Second, it may give engineers (the PE kind) the
impression that they have some claim on software development. That last part
is important, because I would prefer not to see software regulated by the PE
exams (though my objection to this diminished greatly when they went to much
more industry specific exams).

I consider software development to be a genuinely difficult task, one that can
push very smart people past the edge of their own capabilities. It can be
intensely creative, and the stakes can be very high. However, I think we
should just consider it to be its own thing.

Now, all that said, I'll go back to my first statement: eh. In a world of
train engineers, special effects or sound engineers, financial engineers, pft.
Calling someone who reads a book on PHP (or buys one but doesn't read it) and
throws up a bug ridden website an "engineer" seems a bit of a stretch, but is
it really so outrageous to call someone who has spend decades learning to
design highly complex, scalable, performant software applications that need to
be reliable in a high stakes environment an "engineer"? Is that really such an
egregious use of the word?

Like I said, I'd rather software developers redirect that impressive
accomplishment back to the word "programmer" or "developer", but in the end,
this whole thing is completely overblown.

------
greenyoda
Extensive discussion from a few days ago:

[https://news.ycombinator.com/item?id=10513499](https://news.ycombinator.com/item?id=10513499)

------
delinka
There's a wide spectrum of capabilities within the set of People Who Can
Command Technology. Similarly, there's a wide spectrum of need in various
industries for those people. When a company says they want "software
engineers," what do they mean? Do they just want coders? People who convert a
diagram into code? Do they want someone who can design and implement every
layer in their system? There's no "software architect" degree. Nor a
"data[base] architect" degree. Yet these are titles that individuals call
themselves when they have certain skills.

Maybe instead of simply labeling the skills or the needs, we could spell out
our experience (résumé) or requirements (job description.) But we still need a
label to get the proverbial ball rolling, to pique the interest of employers
and employees; something that says "I know how to tell a computer to do what
you want done."

"Software Engineer" sounds like a fine phrase for that.

------
lmorris84
I normally just call myself a developer, although engineer is so widespread in
the industry now I wouldn't mind that either. I can't look at someone with a
straight face when they refer to themselves as a "software craftsman" though.
I do think we need to reign in the job titles a little, many of them smack of
one-upmanship.

~~~
HappyTypist
"Rockstar Programmer"

"Laravel Artisan"

"Web Alchemist"

"Node Artificer"

------
leed25d
First of all, most titles --but by no means all-- are bullshit. I prefer
titles like {Junior, Senior, Lead, Chief} Programmer or Member of Technical
Staff (I, II, III, ...}. Although I have been assigned titles like DevOps,
Engineer, Developer and so on, my Linked In profile reads 'Programmer'.

~~~
Zelphyr
I used to think so as well until I realized that some companies pay more for
an Engineer than a Programmer.

~~~
leesalminen
I found the same. It's about how you market yourself to prospective employers.
Any sufficiently technical staff member knows the title is BS...HR does not.
You just have to back it up with the knowledge.

------
nabla9
"Engineer" can be either degree/qualification or position.

In software business there are no mandatory degrees, only positions. Person
without formal education can be in "chief leading senior engineer" position if
he has good personal track record.

Personally I like the word programmer more than engineer.

~~~
tjl
As they point out in the article, Engineer as a title is often regulated. I'm
in Ontario and it's actually written in law that one the Professional
Engineers Ontario regulates the use of the word. Microsoft was actually taken
to court for the use of Engineer in MCSE (they lost and were fined). So, they
dropped the actual words and left it as just the letters. Before them, Novell
had the same issue. Individual people have been fined as well, but it all
comes down to reporting. So, if someone is calling themselves a "software
engineer" and they aren't accredited they'll get away with it as long as
nobody reports them. If that happens, they'll be fined. The University of
Waterloo (and I assume some other Canadian universities) has a software
engineering program that's accredited and graduates can become licensed
engineers. At Waterloo, it's jointly taught by the Computer Science and
Electrical & Computer Engineering departments.

I actually have an engineering degree so I do take offence at non-engineers
calling themselves engineers. I've done the work to become one, I've passed
the requirements including the law and ethics exams while non-engineers
haven't. My father worked for his whole career as a technician at Ontario
Hydro doing work on nuclear and coal reactors and while there were engineers
who did the same work, he never was called an engineer.

~~~
aikah
The issue is, it depends on the country. It might be regulated in Canada (and
in my country, France, a developer can't call himself engineer unless he has
the diploma) , but in some countries engineer is not a title, it's related to
the task the worker needs to do. In most western countries, the title of
doctor is regulated, that's just not always the case for the engineer title.
The "technician" title is also a regulated in France. Is that the case in
Canada? maybe, maybe not. My point is it may piss you off but your degree
might be "meaningless" abroad since a self taught developer can call himself
and apply for an engineering job.

~~~
tjl
True, but it's regulated in many western countries. I think it's regulated in
the UK, much of the US (including I think California where many of these
companies are), Canada, and apparently France.

A self-taught developer might apply for a software engineering job, but they
won't be able to apply for a mechanical or electrical engineering job. My
degree isn't meaningless. It's just annoying because people refer to hiring
engineers when they're looking for "software engineers". I have training over
and above simple technical skills that a developer wouldn't normally have
(e.g., ethics and law).

------
o2sd98
Why Programmers are NOT Engineers (and that's a good thing)
===========================================================

1\. Engineers design and build the same types of things over and over again,
from principles that have been developed, tested and put into practice over,
literally, thousands of years. These principles are rarely expanded upon, and
only after careful testing and proven performance. Programmers on the other
hand consider building the same thing over and over again to fall in one of
three categories (1) stupidity (2) ignorance or (3) market failure.

2\. If an engineer builds two bridges of exactly the same specification, the
cost of building the second bridge will be reasonably close to the cost of
building the first one (technological advances and inflation not
withstanding). If a programmer writes a useful program, and wants to share it
with his friends and family, the cost of each additional copy of the program
is fairly close to zero. Unlike the engineer building a second or third
bridge, there is no need or reason for the programmer to create another copy
of the software by designing, writing the code and compiling a second or third
time.

3\. Following on from (1) and (2) above, an engineer designs blueprints that
describe _exactly_ how the structure is to be built, but a programmer usually
has no idea how the program is to be built, because if s/he did know, then it
means someone has built this before, and therefore there is no reason to build
it again, because the marginal cost of copying a previous design is zero. This
tends to make the best programmers experimentalists (because the risk is
small) and plagiarists (because the cost of copying existing designs is zero),
and the worst programmers are those that think like engineers. Conversely,
experimentation in engineering is discouraged, especially on things like
bridges, because it is costly and dangerous.

4\. But what about the domain known as computer security? Shouldn't security
be 'engineered'? Yeah, good luck with that. People who crack computer security
are nimble experimentalists. Because the cost of experimentation is so low,
security cracking tends to be a never ending series of probes until a weakness
is found. Protecting against that approach cannot be 'engineered', because the
engineering process is one in which you plan for every known contingency. But
if you knew every possible contingency, there would be no security issues,
because they would all be covered off.

Sorry, the above is a bit rough. I'm still refining my ideas on the topic.
Feedback welcomed.

------
jo909
I sit in a chair, in front of a panel with many lights, and another panel with
many buttons. And I press the buttons rapidly in some specific order to make
certain lights go on or off.

No idea what should be the name for that job.

------
verelo
I would argue that the issue is not with the "programmers" but HR. I've had
people hand me offer letters with "Software Engineer" written on it, but i do
not hold an engineering degree (and i didn't ask for that title!)

Most of my Comp. Science friends have had the same experience, one went so far
as to return the offer and replace the title with "Computer Scientist".

So HR, please stop calling Scientists (or in my case, people with incomplete
degrees), Engineers.

~~~
verelo
I respect peoples right to down-vote, but i would appreciate you to also leave
some feedback if you have the chance. I'm genuinely curious as to what someone
might disagree with, I feel that all I stated were facts from my own personal
experience without any real argument for much else.

~~~
Can_Not
I wouldn't have downvoted, but are programmers generally actually scientists?
I think next week a pop physics blog would make a headline saying "Programmers
stop calling yourselves scientists". In my work, I do engineering and science
related to programming. I see a lot of my peers doing less of both. But I'm
actually a web developer. With how young the field of programming is, we're
really more computer cowboys then scientists or engineers. The amount of
science and engineering we do is dwarfed by the amount of exploring we do.

~~~
verelo
People with "Computer science" degrees are by education, maybe not in
practice.

------
cordite
We could call ourselves artists, gardeners, implementors, analysts, system
designers.. All facets and analogies to what we do.

------
poelzi
I would also like if scientists which no understanding of logic apart of
mathematical one and no understanding of philosophy of science would stop to
call them self scientists (both are required to define truth value). Its not
going to happen...

------
spacemanmatt
I consider my work (more debugging/analysis than anything else) more related
to plumbing than programming. Can I call myself a digital plumber?

~~~
kls
When I did rotations on production support I used to introduce myself as the
software janitor. At the time I was the CTO but never used the title.

------
1stranger
It must be tiring living in a state of constant offense.

------
shill
New title: Meatspace Engineer. Problem solved.

------
johansch
Writer: Stop calling yourself a journalist.

------
vacri
Similarly, an architect friend of mine is particularly annoyed that
'architect' has been almost entirely co-opted by the software industry.

~~~
jessaustin
Hehehe, I imagine it bothers the astronauts as well...

~~~
Turing_Machine
Not to mention rock stars.

~~~
leoc
And do you really think it's wise to irritate dedicated, highly-skilled
professionals in black pajamas? Just saying.

~~~
doug1001
good point. [http://www.theonion.com/article/disgruntled-ninja-
silently-k...](http://www.theonion.com/article/disgruntled-ninja-silently-
kills-12-co-workers-1575)

------
swagv
It's like it's 1987 all over again

------
jecjec
Thanks for the thinkpiece, Atlantic.

