Structures, water, computers, languages and people (not necessarily in this order)

Software engineers should be licensed

Civil engineering puts heavy emphasis on being licensed and for good reasons. In most areas of engineering being a licensed professional is of great interest to employers.

There is ample evidence that defective software is a cause in many failures of critical systems. In 1996, the European Space Agency (ESA) spent 7 billion dollars to produce the Ariane V, a giant rocket. On its maiden launch, the Ariane V exploded just forty seconds after its lift. A board of inquiry investigated the causes of the explosion and in two weeks issued a report. It turned out that the cause of the failure was a software error.

Reliability is especially important in certain systems. I would not expect all the software to have been made and signed by software engineers but, I could reasonably expect that the software that controls the crossing of trains or airport operations were signed off by a licensed software engineer.

It is all about liability and risk assumption. A licensed software engineer could place his/her signature on a document and that makes the insurance industry a bit happier. Professor David Parnas stated: “In other technical fields the engineering professions were invented and given legal standing so that customers could know who was qualified to build technical products. Software customers deserve no less.” (in An Unconsummated Marriage, IEEE papers, November, 1997).

Certification is a voluntary process administered by a profession; licensing is administered by a governmental authority. The IEEE computer Society has developed a certification program for software engineers and strongly recommends SW engineering licensing.

There are legally certified SW Engineers in many parts of the world. In the UK the IEE, Institute of Electrical Engineers and the BCS, British Computer Society via the Engineering Council confer Chartered Engineer status in exactly the same way it does on Civil, Mechanical, Marine and Aeronautical engineers. There are more than 30 other countries which are harmonising their requirements for licensed, certified or registered Software engineers.

I am quite confident that licensing and certification of software Engineers will happen in the next decade in order to increase the safety of the critical software. At least it will start to become a legal requirement in more places and projects.

14 comments:

  1. Inroducing licencing for software engineers would be great...for the people holding a degree in Software Engineering or Computer Science. I don't think the rest of the world would benefit that much.

    First, because it is a relatively new profession. I am surrounded by people that spend many hours a day coding, and if they made a mistake it could cost millions of pounds. But most of them are not SE. Most of them have degrees in Maths, physics or other hard sciences...But they are good and reliable programmers, even without a degree.

    Holding a hypothetical SE licence would also be less important than in other professions because the technology changes very quickly.
    I mean, I got my degree in Civil Engineering in 2001. I haven't done anything related with Civil Engineering for 6 years, but I am sure that if in 4 years time I decided to start to work as an engineer, I would not be less prepared than the average graduate from 2011. The same would not be true if I were a SE.

    You would be refusing some well prepared people to favour less prepared people as long as they had a licence.

    ReplyDelete
  2. Imp, coding is not Software Engineering. Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. I know what I mean, I saw lots of finite element programs made by "very clever PhD guys" that are horrible spaghetti code and it is impossible to modify or remake anything.

    The lack of professional standards greatly encourages the notion that good software development is like a commodity skill that anyone can achieve and this is totally wrong.

    Computers are complicated, they suffer deadlocks, overloads, starvations, etc... And most of the mathematicians, physicsts, mechanical and civil engineers does not care about those issues.

    As I pointed previously, I would not expect all the software to have been made and signed by software engineers but, I could reasonably expect that the software that controls the crossing of trains or airport operations were signed off by a licenced software engineer.

    Of course, a credential cannot prevent cap software but it helps a bit and provides some confidence. The same in civil engineering.

    Finally, IMP, if you decided to start to work as a civil engineer, I think you would be much better than the average fresh graduate. Things are going mad in this field.

    ReplyDelete
  3. X M, I also know a bit of what I am talking about. I have also seen awful code written by smart PhD guys...and by software engineers.

    The library we have in the office has hundreds of thousands of lines, most of them written by "clever PhD guys", as you call them, and not by proper software engineers. I have joined the team only two months ago, so the fact that I am able to (more or less) understand the library, probably means that it was well designed. Otherwise it would have been a nightmare.
    And although most of the guys are "scientists" I can assure you that they do care a lot about the quality (proper design, handling of exceptions, reusability, speed, regression tests and all the stuff).

    Finally, it would be ironic if the mathematicians, physicists and the likes were not allowed to make software, but they were still allowed to be the Professors of the future software engineers.
    At least in the UDC, where my brother studied, many Professors are not SW engineers. And they not only teach maths, but also, among others, Artificial Intelligence or OO programing.

    ReplyDelete
  4. I agree with Mr. Carreira that it´s needed to be "certified" to asume some professional responsabilities. There can be a lot of professionals able to do an engineer´s job as good as a graduated engineer, but there must be some way to demostrate that the person doing the job is well capacitated, furhter than "years doing it".
    If welders, for example, must be certificated in each kind of weld they do, and must renew the title each some time (at least if they don´t prove to be doing such welding for the last times), the same reasons of reliability and responsabilty must be considered in some serious sofware and informatic projects.

    ReplyDelete
  5. The problem is not the certification, but the software engineering is younger than civil engineering, in testing too.
    Now it not exists a very useful system for testing and analyse a software system and in a lot of time it need to have a lot of approximations.

    Regards
    PS excuse for english :)

    ReplyDelete
  6. I have read Thiele's post and I totally agree with her (although I don't see how it relates to the regulation of the IT professionals). In particular the story about the "mark-to-model" thing sounds only too familiar to me (unfortunately).

    What I found surprising is the fact that the profession is regulated both in the UK and Italy. I have been working 4 years in the UK (of which 2 years were working for an Italian company) and I have not met the first guy that were chartered, even if some of the IT specialists I have met had a lot of experience and were very knowledgeable.

    ReplyDelete
  7. @imp: That is easy to explain; most of the IT professionals you were working with do not need to sign off certain kinds of projects where the protection of the public interest requires it. Currently, the BCS has more than 60.000 members.

    ReplyDelete
  8. in my opinion the problem is not regulation or not(how many traditionals engineers unables to do a differential equation we know?). The problem is the level of knowelegde of the software engineering. Now there are a lot of problems about the measurement the software in design's phasis too!! The softwar eengineering is very younger then civil engineering; it's a question of time...

    ReplyDelete
  9. 60,000 members?! I didn't know. That's quite a lot! How many Civil Engineers are registered in Spain? Probably not more than 20,000.

    ReplyDelete
  10. Sorry for not signing the previous post.

    ReplyDelete
  11. Yes, 60.000 means a lot of people (I found the number at
    Wikipedia). However, not all of them are Chartered members, some of them are students, graduates or incorporated members. Anyway, it is a lot. In fact, I am the #22197 at Spanish Institution of Civil Engineers.

    ReplyDelete
  12. And of the other 22196 that registered before you I guess at least a few hundreds will be dead or retired.

    ReplyDelete