Hacker News new | ask | show | jobs
by ForHackernews 2692 days ago
This is one of many reasons I keep trying to stress that software "engineers" are not engineers. Writing software is wage labor, not a profession.

The sooner we come to terms with our situation, the sooner we can work to better it.

2 comments

This is really why we need to form a professional association of some sort - it'll allow for some level of responsibility in what developers produce, as well as help guarantee a certain standard of product.

It will also ensure that the we don't have to worry about the market being flooded with cheap labour that every big business and government entity seems interested in creating.

I understand that doesn't sound great right now given that software development is a comparative goldmine to a lot of other jobs, but compared to other professions we could stand to become more formalized.

That can't happen because there's no formal qualifications to calling yourself a software engineer. I've worked with people hired as software engineers who just took an X week online course, and it shows.

Now, if you're talking about solving the above first, I'm enthusiastically all ears..

In Canada most software devs don't call ourselves engineers - we legally can't - engineer is a protected title.

And yes, that's what I'm suggesting - there needs to be a formalization of terms for software. I'm not saying exclude the X week course individuals, but in Accounting there are "tiers" of accountant, based upon education, focus, and experience, and that may need to be instituted, allowing people to see at a glance what designation you've achieved, even if that means the bootcamp grad has to write a 50 question test at the end of their X weeks.

I know, I know, pipe dreams.

Engineer isn't a unilaterally protected title here.

There's plenty of people and jobs titled Software Engineer (or QA Engineer, or Site Reliability Engineer, etc).

You can't misrepresent yourself as a P. Eng. however. Here in Ontario, PEO will probably nail you for it:

http://www.peo.on.ca/

Though from what I understand they frown on it because they want complete ownership of the term (but their critique really has no teeth unless you make like you are indeed licensed by a central regulatory body such as PEO):

http://www.peo.on.ca/index.php/ci_id/2266/la_id/1.htm

edit: Just some further information on the subject in Canada—Software Engineer (among others) is a nationally recognized and distinct title (can overlap, but doesn't necessitate a P.Eng certification):

http://noc.esdc.gc.ca/English/noc/ProfileQuickSearch.aspx?va...

Wow, you've really dug into this.

It looks like if you want to call yourself an engineer nationally you need to be a P.Eng, and it's up to the provincial bodies to regulate the usage in each province.

> Experience as a computer programmer is usually required.

That's amazing, you need to be an engineer, but don't need to know how to program to be a Software Engineer.

I took a different interpretation than your first conclusion there.

It sounds like you can call yourself an engineer all you like—particularly with relation to software. There appear to be no hard requirements.

However if you want to bill yourself as a Software Engineer and work as a Professional Engineer (the protected title in Canada) then you must have your P.Eng.

Similarly: A Software or IT Architect isn't required to be certified by the CACB. Nor does a Web Designer need to be a member of the GDC.

So— all Professional Engineers could bill themselves as Software Engineers (situation providing), but not all Software Engineers can work as Professional Engineers.

> That's amazing, you need to be an engineer, but don't need to know how to program to be a Software Engineer

This isn't actually that non-sensical when you consider how being a PE works in other disciplines. You're legally responsible for reviewing and approving design documents, but you won't be doing all the work by yourself. You'll have a team reporting to you, and you sign off on their work. In the case of software, you don't necessarily need to be a programmer to review the design and high-level aspects of a program.

The first step to getting a protected title is forming a trade association. You can't call yourself a lawyer without approval of the Bar Association. You can't call yourself a doctor without approval from the Medical Board. The first step to getting "engineer" as a protected title is forming a society of engineers who can petition the government to legally protect the title.
Well, there's a difference between "doctor" and putting "MD" after your name just like there's a different between "engineer" and a "PE".

I'd question if anybody really gives a damn if a software developer is certified with some feel-good namesake. Most software just isn't as serious as needing legal counsel or medical expertise.

Also, many of the roads I can think of where we do arrive at a place where people care about some certification are pretty terrifying. Like needing years of schooling before you can legally make a Twitter app for somebody, or needing re-certification to make tiny lateral moves like you need in the medical industry.

>Most software just isn't as serious as needing legal counsel or medical expertise.

Most legal counsel and medical expertise isn't that serious either. Ask your family doctor how many patients they have every day who come in only to be diagnosed with the common cold, something anyone's grandma could diagnose over the phone and treat with a microwaved can of soup. But when it is serious, you don't want grandma doing your appendix surgery. You want a licensed and trained doctor.

For every one slippery slope argument, there's five "it's not that slippery" counter arguments. You don't need a medical license to buy over-the-counter painkillers, so why would you need a software license to build your own software? You don't need to be a bar-certified lawyer to write your own contracts, so why would you need to be a certified software developer to make a website?

Heck, take plumbers for an example: there are certified, bonded, and insured plumbers. There are plumbers who are not. You can choose a non-certified plumber, but most people would choose the certified plumber instead. If you don't need a certified software engineer, you're not going to pay the premium they would charge with no guarantee of quality. In this world, networking is king and if you don't know someone, you're screwed. If you need certified software, you'd hire certified software engineers and pay the premium and know you at least got someone who has passed their certifications and if they do poor quality work can have their certification revoked.

Considering poorly built software can bankrupt someone, publicly embarrass someone, and can even kill someone, the fact that anyone willing to lie on their resume can build it is scary. You can be reasonably assured that the surgeon operating on you is quality and there are ramifications if they are not. Are you sure that the person who wrote the code for your car's anti-lock brakes or airbags are held to similar standards?

It's not wage labor, it's salary labor.