Of molasses and software engineering
We all know the amazing successes of software engineering, and of its attendant challenges. I recently pointed out that civil engineers had their own problems; according to Rising Tide by John Barry, in the 1800s one out of four new bridges collapsed and one of three tunnels flooded.
Rick Schrenker replied, asking “So if software engineering continues to be practiced as it currently is until it’s an older profession, will that address defect complaints?
He then referenced the famous Boston Molasses Disaster: http://ethics.wikia.com/wiki/The_Great_Boston_Molasses_Flood
Rick went on: “As for the history of engineering in general and bridges in particular, Henry Petroski has put a lot out there.
“My son is a civil engineer and holds a PE. It’s virtually a necessity in his field. I got my EIT right out of school but didn’t finish the process. Had it been required, I certainly would have. Back when my job was more directly involved with support of patient care equipment, perhaps I should have anyway. So what should be the minimum professional practice requirements for software engineers who work on projects and/or products that impact public safety?”
My first thought was: “There was a molasses disaster?”
The Great Boston Molasses Disaster, from Ethics Wiki
Who would have thought? But in 1919 a 2.3 million gallon tank full of the sugary concoction failed, killing 21 and injuring 150. According to the article, the failure was due to the use of thinner-than-specified steel plates, which sounds more like a manufacturing problem than due to faulty engineering. But one result was that all drawings on these projects now had to be signed and sealed by an engineer. Licensure was also initiated.
So far as I know, no software failure has led to a molasses flood. But we’ve had our own disasters. Should software engineers either have a PE or be required to work under a PE who signs off on their designs?
I’ve often advocated for developers to put their names in the code. To sign the product. My thinking is that we take more pride and accountability when we sign off on something, so work harder to ensure its correctness. Obviously, that’s obscured a bit since many people may modify Joe’s creation, but I do think anonymity can lead to carelessness.
I have always signed my code and my drawings.
But should the state require licensure for us?
Thankfully, this is a tenth amendment issue and not (at least now!) at the Federal level. But if Maryland, my home state, instituted a PE requirement for my work I’d retire. I’m too old to take the test and too curmudgeonly to submit to more state control. My dad was a PE till he let his license lapse as he felt it was so valueless for his work in designing spacecraft it wasn’t worth the cost of renewing.
PEs are de rigor in civil engineering. Structures are very reliable today; we rarely hear about the kinds of failures that were common in the 19th century. Is this because a PE signs off on the drawings, or is it because we’ve learned how to design these things well? Or could it be we’ve become so litigious that the companies hiring engineers are very conservative? I really don’t know.
Is it possible that we developed a better body of knowledge in civil engineering due to licensure in the early days? Who knows?
Would having a PE license improve software? Perhaps, if a PE who was independent of the company producing a product were required to certify the code and design products would improve. Certainly the DER role in DO-178C has been that independent authority, and avionics is the best software around. But the costs are huge and probably unsustainable for most products.
In the United States part of the PE process requires passing a Fundamentals in Engineering test. Generally it’s recommended that a prospective PE holder take this exam while still in college, as fail rates skyrocket for those who have graduated and are actually working as engineers. That statistic tells me that at least this part of the PE process is bogus, for if practicing engineers can’t pass it, it would seem that the material is irrelevant for real-world work.
As with so many things mediated by the government, common sense is optional. But one thing is certain: at some point there will be an enormous software disaster, and the populace will rise up demanding a governmental solution. Licensure is likely to be seen as a component of that.
What’s your take? Should PEs be required for software engineering? Why or why not?
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, and works as an expert witness on embedded issues. Contact him at firstname.lastname@example.org. His website is www.ganssle.com.