IEEE/CS: Certified Software Development Professional

I just got an email concerning the IEEE’s Computer Science Societies Certified Software Development Professional (CSDP) certification exam. My initial impression was that the certification would test your programming skills and not much more but after consulting, out of curiosity, the list of recommended references I found that it consisted primarily of the textbooks a Software Engineering students would read during their four year university degree.

The books on the list fall under the following sections:

  • Software Engineering Overview
  • Software Configuration Management
  • Software Construction
  • Software Design
  • Software Engineering Tools & Methods
  • Software Engineering Management
  • Software Engineering Process
  • Software Maintenance
  • Software Qualtiy
  • Software Requirements Engineering
  • Software Testing
  • Professionalism and Engineering Economics

In university I had one class dedicated to each of these sections. What I find weird though with this list is that there is a section devoted to “Professionalism and Engineering Economics”. This is starting to sound like an engineering degree minus the core engineering classes. I am wondering if the CCPE (Canadian Council of Professional Engineers) has problems with certifications like these?

Related Links:


Help Support Us By Visiting Our Sponsor

10% of our revenue from these ads go towards scholarships!


Comments

September 23, 2004 04:04 PM | Mark Pavlidis commented:

The IEEE calls the certification a Software Development Professional, and not Software Engineering, so the CCPE and affiliated associations should not have and issue with it. (Unlike Microsoft’s MCSE which got them in trouble and they had to withdraw using the term Engineer in Canada)

As for the usefulness of an SE grad (from an accreditied insitution http://www.ccpe.ca/e/accprograms2.cfm#S) pursuing the CSDP I think there is none. In Canada, after 4 years experience and a few exams, you qualify for P.Eng designation. That is, you are legally defined to be a professional, and carry with it all the trust and responsibilities that go with it. Having the CSDP makes you as much a professional as an NHL hockey player.

As for the content, take a look at the practice questions. But if you want more to bite on, then I’ll comment on the lack of formal verification or inspection methods. Also it appears the topics are software in the box specific. As many engineering tasks that require software deal with the “real world”, then this certification falls short. But since its target appers to be for those developing business/web apps, then the content seems appropriate.

The major problems with things like this is the blur between the definition of a software developer and a software engineer.

September 26, 2004 04:36 PM | John Kopanas commented:

I think my biggest concern was not that they use engineering in the title of the certification but the blur between the differences between a software engineer and a software developer.

I personally feel Computer Science will become to software engineering what physics is to mechanical engineering. Computer science will become more theoretical and mathematical while software engineering stays practical. But then again we have to ask ourselves do all software problems really need an engineer? My initial answer is yes. But I will have to sit on that one for a while! :-)

The problem is also with certifications that look like software engineering certification… it does not matter what you call it. :-)

Unfortunately at my univeristy there was not formal verification or inspection methods taught… that I can remember :-). I am not sure if that is a good thing or bad thing. But I know in your case Dr. Parna designed your program hence the reason why you have so much more math in your program.

September 27, 2004 08:39 AM | Mark Pavlidis commented:

I agree completely with your definition of the difference between SE and CS by the analogy with physics and ME. (I usually use chemistry and chemical eng). The two have entirely different purposes and reasons for being. One is the investigation of science, to discover new science. The other is the application of known science for the betterment of society.

As for does every piece of software need an SE. My responce is no! Does every piece that has an impact on safety, security, or money? YES! Anything that is too large, complex, or important must be.

Take for example a high rise and single family home, the former requires an EE to map out every wire, every panel, because of the scale of the work there are many factors that impact these decisions. Where as for the house, the electrician can slap the light switches and electrical outlets where ever, for the most part.

There is also a supply and demand problem in the field. So there cannot be and SE on every software project. This will always be a problem, no matter how many schools crank out new SE grads. To make matters worse, almost everything that was once mechanical in nature is being controlled by software, cars, thermostats, airplanes… And these tasks are the biggest area that need to ensure proper methods and correctness checks to verify that the car will stop or the plane will land. The fact that my web browser hangs occasionally is frustrating. But I would rather my ABS kicks in this winter when needed, than have an uptime of 300 days.

September 28, 2004 09:08 AM | John Kopanas commented:

An uptime of only 300 days? The problem with that is you cannot usually choose which 300 days :-).

With respect to not all software projects need software engineers and using the EE (electrical engineer) vs. electrician analogy. I have never been an electrician so you will have to be somewhat patient here with my naivety and me. But my feeling is that when they come into homes to do the electrical work they have a process in place and they just go through that process. It is not like they are re-inventing the wheel every time. There are standards and processes and placeholders (the walls). Right now when you start a new software project you are starting from scratch hence the need for a software engineer who will architect the system and once the system is architected and all the placeholder are created (functions) you can ship them off to programmers to implement for you.

The problem with our profession is that we don’t have standards i.e. naming conventions, flow, components, etc. that allows someone come and put together a system like when you make something with Lego blocks. Right now we are in a position in the software industry where every time we develop a new product we re-invent the Lego pieces. Personally I think frameworks partially solve this problem.


Post Your Comments





(note: not displayed)


(note: displayed with comment)

CUSEC 2005

CUSEC is the Canadian Undergraduate Software Engineering Conference created to promote software engineering in canada at the undergraduate level. CUSEC 2005 is being held this year in Ottawa, Canada.

http://2005.cusec.ca

Monthly Newsletter

Sign-up to our monthly newsletter so you can keep up with the latest articles on software engineering and our conference (CUSEC).

sign-up now