Licensing software engineers

June 16, 2008

Jack Ganssle-June 16, 2008

Several readers directed me to this link  on the National Society of Professional Engineers web site.

The author uses plenty of words to convince the reader that software is important. That's novel thinking. She then suggests that poor software is a "public safety" issue.

Sure, that's true in some cases, though hundreds of millions of Windows users manage just fine despite lockups and other anomalies that may be frustrating, but are hardly life threatening.

"Public safety" is important but it's also a code phrase sometimes bandied about by those who advocating regulation. In this piece the author states that $60 billion of the $275 billion spent in the US on software each year goes into failed projects. That's an 80% success rate, a B grade, which hardly seems a crisis. And a financial loss is not a public safety issue.

As I understand the facts in the article a group of organizations have come together to both advocate for a Professional Engineer license, and to create an exam to obtain such licensure. But the author makes more than a few sly allusions to suggest that software developers should be required to hold a PE license.

An apparently-sanctioned NSPE article that conflates facts with their policy goals serves no one and too much resembles the broken state of national politics we're enduring now in this election season.

Public safety is a valid concern, but it has been addressed in software engineering via a number of standards and certifications like DO-178B, IEC 61508 and more. The standards are imperfect as are all human endeavors, so it's important that we continue to refine these over time. But beware of arguments that suggest licensure will eliminate software problems.

I think a software engineering PE license is a great idea. It parallels the PEs available for many engineering disciplines. We do need to make software more engineering and less art.

The PE certification gives a lofty goal that some software folks can and will aspire to, always a good thing for those wishing to advance their professional skills and status. So it's reasonable that the professional organizations to start working towards an appropriate exam.

But mandating a PE for software engineers is a huge mistake. After all, most software projects are pretty benign; failure might be annoying but is hardly a problem.

A civil engineer can use well-understood analysis to prove that a structure will be safe. As yet there are no analogous techniques for software. Standards help mitigate software's problems, but the essential complexity of a 10m LOC project defies the current state of our tools and understanding.

A civil engineering PE is only part of an entire infrastructure of regulations, expectations and conventions aimed at making structures safe. A century of litigation helps thwart would-be cheats. But in software engineering litigation scares few of us, as yet, and management will rarely justify additional development costs.

In civil engineering the PE comes into play after the award of a contract " that is, once the competitive bidding process is over. Most software is created in the dynamic race of getting a product to market before the competition. Schedule uber alles; shortcuts are rewarded.

In Texas it's illegal to use the word "engineer" in your title unless you've got a PE. Sanctions can be up to $3000 per day . Thankfully I live in Maryland, otherwise I could be out $3000 * 365 days/yr * 30 years, or some $33 million.

What do you think?

Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at His website is

Loading comments...