5 ms·
It's all well and good for Hacker News entrepreneurs to blather about egalitarianism, but the primary difference between an 'engineer' (a person with a Professi
by stonogo 11y ago
It's all well and good for Hacker News entrepreneurs to blather about egalitarianism, but the primary difference between an 'engineer' (a person with a Professional Engineering certification) and an 'engineer' (a person who touches a computer for money) is that one group is held responsible for their work, including explicit ethics standards, a governing body with certification-revocation powers, and a legal framework for enforcement of quality.
There has never, ever, ever, been a programmer who has been barred from programming for selling shitty code. There have absolutely been engineers barred from engineering for selling shitty designs.
The only way to make this (frankly uninteresting) argument end is to either hold programmers accountable for quality, or stop holding engineers accountable for quality. Until then, you're using one word to refer to two groups of people with wildly different work requirements, and there will always be people complaining about that.
Full disclosure: I have done both kinds of engineering for a living.
- JoeAltmaier 11y agoI can agree in principle. But 'Software Engineer' means what it means - someone who can not only code, but manage, design and perhaps architect. Someone with facility in tools of the craft. They have existed for decades under that name. I'm not at all sure the existence of engineering societies and licensing is the litmus test. That they exist is undeniable. But that also varies state by state. And not all fields have anything like uniform standards. Software Engineer fits very nicely into this ecosystem.
- vlehto 11y agoI think the real cut is not responsibility per se. The problem is that the work "Engineer" means both a degree and profession at the same time. Witch was fine when there was lots of overlap. But degrees and responsibilities are often closely related.
- vonmoltke 11y ago> the primary difference between an 'engineer' (a person with a Professional Engineering certification) and an 'engineer' (a person who touches a computer for money) What about an 'engineer' (a person who designs components for a large corporation for money)? How are they a different bunch than a 'software engineer'? > There has never, ever, ever, been a programmer who has been barred from programming for selling shitty code. There have absolutely been engineers barred from engineering for selling shitty designs. There have been engineers who have had their licenses permanently revoked, but nobody has ever been "barred from engineering". Those are not the same thing (though I doubt a company is likely to hire an engineer who is so bad as to get their license revoked). > The only way to make this (frankly uninteresting) argument end is to either hold programmers accountable for quality, or stop holding engineers accountable for quality. Until then, you're using one word to refer to two groups of people with wildly different work requirements, and there will always be people complaining about that. The way I think it should end is for software engineering to be separated from computer science at the university level. ABET-accredited BSCS programs are practically that already, but most CS programs don't give a crap about ABET. So, scrap the BSCS and replace it with a full-ABET BSSwE and let the people with academic interest in CS get a BACS. As for non-degreed programmers, other engineering fields already have established practices for advancing a non-degreed technician to full engineer and those can be adapted to this field.
- stonogo 11y ago> What about an 'engineer' (a person who designs components for a large corporation for money)? How are they a different bunch than a 'software engineer'? I can't answer this question, because "components" is too vague a word. You could be talking about software components, or mechanical components, or financial instruments... sorry, I just don't know what you're getting at here. > There have been engineers who have had their licenses permanently revoked, but nobody has ever been "barred from engineering". Those are not the same thing (though I doubt a company is likely to hire an engineer who is so bad as to get their license revoked). An unlicensed engineer is not allowed to identify as the engineer-of-record for contractual purposes; that is, they can no longer 'stamp the drawings.' Sure, a company could hire a defrocked ex-PE to do the work, but they would still need an active PE to sign off on the work ('stamp the drawings'). So while obviously nobody is physically restraining them from installing AutoCAD, they are not able to meet (common) contractual requirements in engineering work. > The way I think it should end is for software engineering to be separated from computer science at the university level. I completely agree with your assessment, except that I don't see CS as being B. A. material, since it's basically applied mathematics, which has traditionally been B. Sc. territory.
- vonmoltke 11y ago> I can't answer this question, because "components" is too vague a word. You could be talking about software components, or mechanical components, or financial instruments... sorry, I just don't know what you're getting at here. I meant literal electronic and mechanical components. > An unlicensed engineer is not allowed to identify as the engineer-of-record for contractual purposes; that is, they can no longer 'stamp the drawings.' Correct. However, firms operating under a Certificate of Authority do not require a specific engineer to 'stamp the drawings'; the firm itself can do so. This is common with respect to mass-produced consumer goods and things of that general nature. None of the engineers who actually did the work need to be licensed, but they are still engineers. The CA thing may be unique to the US, though. > I completely agree with your assessment, except that I don't see CS as being B. A. material, since it's basically applied mathematics, which has traditionally been B. Sc. territory. I was getting confused by the BA in Physics. You are right, in that the BS in Physics is what you take if you want to "do physics", so a BSCS would still be appropriate for those who want to "do computer science".
- snowwrestler 11y agoMaybe software "engineering" just isn't there yet. I don't get the feeling that there practices and processes that everyone writing software agrees are the absolute right way to do things. It seems more akin to a craft than to an industrialized application of basic science, like a bridge or ship. What is the equivalent of Newton's Laws, for software? What is the equivalant of logarithmic tables and books of standardized information on materials? What are the equivalent of standard alloys and formulations of concrete? I think that programmers and software companies will eventually be held accountable for quality. But first, there needs to be some strong consensus around how to measure and test for software quality. That might take a while.
- dllthomas 11y ago"But first, there needs to be some strong consensus around how to measure and test for software quality." Liability for damages seems a start, though as I have said repeatedly I think it should rest first with whoever deployed the software in question.
- maldusiecle 11y agoIt's a particularly vicious kind of law and order conservatism, to invent the punishment before one invents the law.
- mindslight 11y agoWhere are the equivalent reams of standardized information for Electrical Engineering (circuits)? Circuit topologies are like design patterns. Lists of components are like package repositories. Datasheets are API documentation - both are fields where the majority of details you have to deal with were decided by someone else. It's interesting, when viewed through the lens of this discussion, EE seems like an early form of software - using specific materials for their ability to stay out of the way, seeking components that are a mathematical ideal, extremely reconfigurable, complexity is the enemy. Which isn't surprising - it's not like people were blind to the advantages of abstraction before computing. Perhaps EE was the horse running out the barn door with the term "Engineer", but he's long gone now. (Mechanical Engineering is in a similar position - there are many people that you would call engineers, but they're not PEs nor responsible to one. Safety is achieved by product regulation and testing, rather than a trusted creation process)
- karmakaze 11y agoWhat happens with the train 'engineers' then?
- BinaryIdiot 11y ago> There have absolutely been engineers barred from engineering for selling shitty designs. This is patently false. Engineer is a title that can be applied to a person in countless types of engineering. Your statement simply cannot be true as it's not even feasible to bar someone from all types of engineering. > Until then, you're using one word to refer to two groups of people with wildly different work requirements, and there will always be people complaining about that. No it's the same word. There are people who engineer physical things that do not require certifications, governing bodies, etc. You're drawing a very, very dotted line saying one side is an engineer and the other is not which is just arbitrary.