I agree, and I agree with the reasons the author listed.
But ultimately, I'd dismiss this as a minor irritation if it weren't for the efforts to license Software Engineers under the EIT/PE path. In the end, I don't care if they call me a hacker, or a programmer, or an analyst. If it didn't matter, I wouldn't even really care if they called me an "engineer" (though I'd put something else on my business cards). I majored in math and got a grad degree in Industrial Engineering. Call it math, call it engineering, call it hacking. Whatever.
But I truly agree that any attempts to license the people who create software under the PE path - ie., undergraduate ABET accredited engineering degree, followed by the EIT exam, an apprenticeship, and the PE exam, would be utterly stupid. The exams are difficult and rigorous, sure, but what to they have to do with code? Very, very little. I think that 5% of the questions may have something to do with software, and they're pretty lame questions. The path would deny entry to the most talented, and give a peripheral group tremendous power to decide what talented people can and can't do.
While the term "engineer" is pretty general (think "sound engineers" in the recording industry), I'd still rather avoid any ambiguity here. I absolutely deny licensed professional engineers any claim whatsoever over software development, and I'll avoid the term to ensure that I don't continue to confuse them and others about where I (and almost all the good hackers I know) stand on this.
Faulty software in a life-critical system can kill just as easily as faulty mechanics or faulty electronics. If society considers it important to license mechanical and electrical engineers for particular jobs why should the software case be any different?
The idea that licensure would keep the most talented people out if the field is absurd. Talented people by definition will find it easier than average people to meet the standard.
Most likely licensure of software professionals would play out similarly to that of electrical engineers; most practicing electrical engineers in the USA are not licensed as PEs. You only really need an EE PE if you work in the construction industry or for the government.
I'm not actually arguing against licensing software developers in principle. It may eventually make sense - though right now, I think it would be premature. What I'm most opposed to is licensing under the ABET/FE/PE path. I'm not sure if you've looked at the exam before - I'd recommend browing through some sample FE tests at the library or bookstore. Think about what they're testing, and what you think it takes to write extremely secure, stable software. The overlap is tiny. Software development also has something in common with mathematics. Should we require everyone pass an exam based on Real Analysis, Group Theory, and Topology to write code? That's only slightly more absurd than requiring that they pass the PE exams.
As for talented people... well, there are ways to get around the ABET degree. But if we license under the FE/PE route, physics majors will be at a disadvantage, and math majors will face major hurdles in sitting for the exam. So I definitely don't think that it's absurd to conclude that licensure would reduce the talent level in the field if that licensing is based on the PE route. Again, this isn't an argument against lisencing in principle, it's just an argument against favoring civil engineering majors over math majors where it comes to writing software.
I have not looked at the software exams and if your assessment of them is a common one then there are likely problems with the current exam.
I have looked at the EE FE/PE exams and I thought they were decent and fair. I suspect that most practicing non-PE EEs would agree with my assessmet. EE is a much more mature field however.
If the exam is done correctly requiring an ABET degree is probably not necessary. But frankly if math and physics majors want to pass the exam they should either take some engineering classes or be prepared to do some additional work on their own time. Truly talented people will be able to learn what they need to without much effort.
The apprenticeship is probably valuable.
Being required to produce evidence of significant engineering design work is critically important.
Yes, math and physics majors will most definitely have to do a lot of study outside their fields if they want to get involved in software, as will civil, electrical, or nuclear engineers. However, I don't really see why math majors should have to learn properties of materials to demonstrate that they are prepared to write reliable software, any more than engineers should have to figure out how to pass an exam on real analysis, group theory, and topology in order to get licensed to write software.
I speculate the general engineering requirements exist because the most complex engineering projects require an interdisciplinary approach. The different disciplines need a set of shared concepts and language to work effectively. Thus the idea of an "Engineer" who is both a specialist as well as a generalist.
This would avoid the perils of the PE land grab, and I don't think that licensed architects would try to force software "architects" to go through the architecture exams.
The downside - I think this title is an attempt to add status by distancing a technical person from the pedestrian act of writing code. All in all, I wouldn't want to work for an architect who doesn't code. I've seen it, and it's ugly.
It's frustrating that "programmer" was denigrated and has come to mean a person who, without any sort of creativity or judgement, types code to spec all day. I have never met anyone who did this, and I have my doubts as to whether it's really possible, but I have met a few people who needed to believe it to justify their existence as "architects".
But if programmer is a bad word, and hacker is too prone to misunderstanding, then "developer" will have to do.
But ultimately, I'd dismiss this as a minor irritation if it weren't for the efforts to license Software Engineers under the EIT/PE path. In the end, I don't care if they call me a hacker, or a programmer, or an analyst. If it didn't matter, I wouldn't even really care if they called me an "engineer" (though I'd put something else on my business cards). I majored in math and got a grad degree in Industrial Engineering. Call it math, call it engineering, call it hacking. Whatever.
But I truly agree that any attempts to license the people who create software under the PE path - ie., undergraduate ABET accredited engineering degree, followed by the EIT exam, an apprenticeship, and the PE exam, would be utterly stupid. The exams are difficult and rigorous, sure, but what to they have to do with code? Very, very little. I think that 5% of the questions may have something to do with software, and they're pretty lame questions. The path would deny entry to the most talented, and give a peripheral group tremendous power to decide what talented people can and can't do.
While the term "engineer" is pretty general (think "sound engineers" in the recording industry), I'd still rather avoid any ambiguity here. I absolutely deny licensed professional engineers any claim whatsoever over software development, and I'll avoid the term to ensure that I don't continue to confuse them and others about where I (and almost all the good hackers I know) stand on this.