Settings

Theme

Programmers: Stop Calling Yourselves Engineers

theatln.tc

43 points by duggieawesome 10 years ago · 54 comments

Reader

imgabe 10 years ago

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...

  • cholantesh 10 years ago

    >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 10 years ago

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

  • sotojuan 10 years ago

    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 10 years ago

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 10 years ago

    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 10 years ago

"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

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 10 years ago

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 10 years ago

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 10 years ago

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 10 years ago

Extensive discussion from a few days ago:

https://news.ycombinator.com/item?id=10513499

delinka 10 years ago

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 10 years ago

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.

leed25d 10 years ago

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 10 years ago

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

    • leesalminen 10 years ago

      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.

  • vacri 10 years ago

    At $job-2 I was at a small company, and I was tired of seeing my colleagues with lofty titles, so I changed my email signature's title from "System Administrator" to "Grand Duke of Information Infrastructure" (I had no client contact, and most external contact was with vendors and rare). I intended to have it thus until I was told otherwise or a max of a week or two when I'd grow bored of it, but it was liked so much that the website was altered to match...

  • peterburkimsher 10 years ago

    Titles are important for immigration purposes, e.g. for Canada's work-to-residence Express Entry visa.

    Software engineer: 3-4 years work experience required, maybe Masters degree, professional certification. http://www5.hrsdc.gc.ca/NOC/English/NOC/2011/ProfileQuickSea...

    Computer programmer: Bachelors degree required, no work experience. http://www5.hrsdc.gc.ca/NOC/English/NOC/2011/ProfileQuickSea...

    "Progression to information systems analyst, software engineer or Web designer is possible with experience."

    • tjl 10 years ago

      The reason why professional certification is needed for the visa is because the title of engineer is regulated in Canada.

  • malcolmgreaves 10 years ago

    To me, saying "programmer" implies that one has no understanding of the crucial mathematics underlying the nature if computation. A programmer only knows how to slap together JS with the latest framework, throw it on top of RoR with code copied from a dozen SO posts, and say "job's done." An engineer uses mathematical reasoning and scientific knowledge to solve the problem. This is certainly a subtle difference. But it speaks volumes.

    • leed25d 10 years ago

      Well, I think that you would be wrong in that assessment.

      Jack Dorsey calls himself a computer programmer and so does Douglas Englebart. Mark Zuckerberg, Richard Stallman and James Gosling all call themselves computer programmers and not one of the people I have mentioned calls themselves an engineer. I think that if you are a lowly computer programmer then you find yourself in some good company.

  • RivieraKid 10 years ago

    Agree, although junior vs senior is mostly bullshit too.

    • kls 10 years ago

      Agreed, I had a designer work with me on a contract who was inqusitive. I showed him that git can undo all his mistakes without affecting the team, taught him a good JavaScript foundation, and pointed him to some good resources. In a month he was proficient, in 6 you could not tell him from any other senior. He is out in the valley now doing well.

      Moral of the story is inquisitiveness and problem solving are the two big skills to look for. Anyone can learn syntax.

nabla9 10 years ago

"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 10 years ago

    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 10 years ago

      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 10 years ago

        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).

    • Turing_Machine 10 years ago

      What do Canadians call train drivers and the people who keep ships running?

      • tjl 10 years ago

        Those are defined exceptions in the law. There's also a kind of engineer that deals with physical plants for big buildings, I think they're called Stationary Engineers. Those are also an exception.

o2sd98 10 years ago

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 10 years ago

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 10 years ago

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 10 years ago

    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 10 years ago

      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 10 years ago

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

cordite 10 years ago

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

poelzi 10 years ago

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 10 years ago

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

  • kls 10 years ago

    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 10 years ago

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

shill 10 years ago

New title: Meatspace Engineer. Problem solved.

johansch 10 years ago

Writer: Stop calling yourself a journalist.

vacri 10 years ago

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

swagv 10 years ago

It's like it's 1987 all over again

jecjec 10 years ago

Thanks for the thinkpiece, Atlantic.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection