Ask Slashdot: Developer Or Software Engineer? Can It Influence Your Work? 333
ctrahey writes "Many of us disregard the impact of our titles on various aspects of our lives, both professional and otherwise. Perhaps it's appropriate to ask two questions about the difference between a couple titles familiar to the Slashdot community: Developer vs Software Engineer. What are the factors to consider in the appropriate use of the titles? And (more interesting to me), what influence might the use of these titles have on the written code? Have you observed a difference in attitudes, priorities, or outlooks in talent as a corollary to their titles?"
Depends on the law. (Score:3, Informative)
Re:Bah, that's a load of crap (Score:4, Informative)
Not true in Canada. Calling yourself an "engineer" without the appropriate blessing is in fact illegal.
Re:Bah, that's a load of crap (Score:5, Informative)
an Alberta court dismissed the lawsuit filed by The Association of Professional Engineers, Geologists, and Geophysicists of Alberta (APEGGA) against Raymond Merhej for using the title "System Engineer", claiming that, "The Respondent's situation is such that it cannot be contended that the public is likely to be deceived, confused or jeopardized by his use of the term
If you read further in that link, they're working on compromise. The associations obviously want to protect themselves and keep the membership fees rolling in but they're fighting a losing battle. No one in software cares about titles like they do.
Also, as I believe it's actually the specific title of "Professional Engineer" (P.Eng) that is protected in Canada. Not just any old engineering title.
Terminology (Score:5, Informative)
Here's how I've observed some terms used:
- Coder: a person who knows how to bang out some software code; often used disparragingly. cf "Code Monkey"
- Programmer: Any person who makes software for a living. Used mostly when speaking with non-technical people, because they immediately understand what it means.
- Developer: Neutral term for a person who makes software.
- Software Engineer: A developer who favors a heavily-planned approach to making software.
- Software Architect: Someone who designs applications or systems. May be "hands on" and themselves write significant parts of the application; or maybe more of a management role.
Computer Science is not an Engineering Discipline (Score:4, Informative)
There is a reason people laugh and mock people who call themselves Software Engineers outside of the IT World. They are fluff titles. Even at its best, Computers Engineering is just a subset of Electrical Engineering focused on the designs of hardware from the CPU/GPU/DSP, etc., and their interaction with Software.
Whether it is Mechanical, Electrical, Chemical, Biomechanical [Applied ME with Biology], Civil, Structural, Materials Science Engineering disciplines are grounded in mutable laws of engineering extended from the laws of Physics, Chemistry, Biology, through all applicable languages of Mathematics Disciplines.
Bill Joy has long wished for Software Engineering to become factual by taking cues from Mechanical Engineering [though since he never has been a Mechanical Engineer I doubt he realizes how impractical that wish will ever be], due to the innate Art behind Computer Programming, Computer Architecture, Computer Software Design, etc.
In order for Software Engineering to be a recognized Engineering Discipline via ABET one would expect them to take Thermodynamics/Thermodynamic Systems, Dynamic Systems, Materials Science Engineering, Finite Element Analysis and more where one applies the various electives to writing Software applications to apply said disciplines--the exact reality all Engineering disciplines due for zero credit or recognition.
You want an Engineering Degree, then get one. You want a Computer Science degree and it's several specialties than get one. Stop pretending they are equivalent. None of my former CS majors ever compared our CS degree curriculum to my Mechanical Engineering curriculum. Mechanical Engineering is a very broad and deep curriculum now with several areas including Tribology, MEMS, Robotics [Applied Kinematics with EE/ME control systems], along with their many other tracks in Machine Design, Fracture Mechanics, Dynamic Systems, Heat Transfer Disciplines, etc].
Stop calling yourselves Software Engineers. You aren't designing solutions that adhere to Computer Science Laws. You are designing to Best Practices, Design Patterns, all centered around Semantics/Linguistics/Discrete mathematics, applied logic and other Art disciplines. Embrace the Art. Stop pawning yourselves off as Engineers.
The Engineer in Training Exam provided by every state in the United States is a comprehensive exam [8 hours] over your past 5 years that allows one to reduce the time it takes [under a Principle Engineer (Often mistaken as Professional Engineer)] to then qualify and apply to become a P.E., from 12 years under a P.E., licensed and bonded down to 4 years.
The lack of understanding the IT World has for the parent worlds of Engineering is staggering.
Re:Are you an engineer? (Score:5, Informative)
It could well mean that the huge university infrastructure was built without any engineers; that doesn't mean that it was built without any engineering.
In my country at least, you could write a contract, sue the other side and represent yourself in court, but you still wouldn't be a lawyer; you could perform life-saving surgery but you still wouldn't be a doctor. There is more to those jobs than doing the actual job - things like professional regulation, ethical standards and training requirements. Engineering is similar here; to be called an engineer you have to pass a lot of particular requirements, only one of which is actual work in engineering.
In general I regard this as a good thing. The regulation and requirements imposed on lawyers mean that when a solicitor at a large firm tells me over the phone that they will transfer £1m I can rely on that without even needing anything in writing. Similarly with engineers, when I buy property I look to see that a qualified structural engineer signed off on the structure. I don't need to go behind that because I can be confident that if he was qualified he knew what he was doing - and that if he was wrong he has enough insurance cover for me to recover my losses.
I'm not quite so sure in the case of software engineers - there just doesn't seem to be the equivalent professional body and I'm not sure that the nature of IT development lends itself so easily to a regulated profession. It would be a shame however if people's desire to give themselves a more impressive title devalued the status of engineers in other fields, especially when (as is shown, I think, by this discussion) it doesn't really add anything to call someone a "software engineer" because the title has no fixed meaning.