Tom Anderson said:
In Canada I have never encountered any programmer who calls themselves a
software engineer. We're not allowed to.
Over and above my actual degree, I've taken a Certificate in Software
Engineering from DalTech (it used to be Technical University of Nova
Scotia), and this consisted of 6 courses: project management, human
resources mgmt, quality control/assurance/testing, requirements analysis,
design, and maintenance. None of this is covered in a CS degree, and I'm not
saying it should be. However, if people felt strongly enough about having
software engineers in Canada, I'd support a requirement for formal education
in topics like the above. I'd also add software/systems security as a
course.
Way back when I did most of a B.Eng. after finishing my B.Sc, before
realizing I really, really didn't want to be an electrical engineer. Having
said that, it became clear to me that there was nothing in the typical
engineering curriculum that sets a person up to be more of an "engineer"
than someone studying CS or physics or chemistry...what really does it is
the mentored work experience and professional examinations. In fact (at
least in NS) you don't need an engineering degree to become an engineer -
you just need enough years experience doing an engineer's job, and pass the
exams.
My personal feeling about "software engineers" is that if it's a title we
want to have, we should have equivalent standards to other engineers.
Require courses like the ones I mentioned. Make sure - perhaps through the
professional exams - that the aspirant really knows core CS. Have an
engineer-in-training period (in NS it's 4 years) where you are mentored and
observed, and your work experience is assessed.
Is there value to this? I think there is. One of the reasons for having
professional accreditation (the other big one being public safety) is the
assurance of reasonable competency. Right now in software development you
really don't know what you're getting.
Do all software developers need to be engineers (Assuming such schemes were
adopted)? Probably not. In fact I think few would be. A number of IT jobs
could likely be done by technicians, although the technicians themselves
would be accredited (perhaps two year programmes of study) and also have
work experience before being certified. But probably most software
development would continue to be done by individuals who have no
accreditation. The main difference would be that safety-critical software
would require professional software engineers and technicians, and also that
any client could demand that as they saw fit.
I personally don't much care. I just don't like seeing the title used unless
you really are one. And it's not a title that you award to yourself, I'm
afraid.
AHS