Sunday, July 29, 2012

Do you have your license to write firmware?

Did you know that in some states it is now required to have a license to write software, and more states are on the way? Probably not.

In June of 2012 IEEE-USA made the announcement Professional Exam for Software Engineering to be Offered in April 2013.

'Offered' is in interesting choice of a word, the thinking goes:


"If software engineers who write programs for systems that expose the public to physical or financial risk knew they would be tested on their competence, the thinking goes, it would reduce the flaws and failures in code" -- Licensing Software Engineers Is in the Works.

And,

"The sponsoring organizations reason that competency testing could reduce the flaws and failures in code performed by solo practitioners and small consulting firms." -- Penn State professor plays key role in software engineering licensure.

From the final authority on wisdom:

The goal of every engineer is to retire without getting blamed for a major catastrophe. -- Dilbert.

So it is okay for Mega-Corp to have flaws, but the little guy gets singled out again and again? Is this not the reasoning of Dilbert?: "Engineers prefer to work as 'consultants' on project teams. That way...blame is spread across the group". Do you really put bugs in your software because you know you did not have to take a test? How do people come up with this stuff?

Will everyone developing software be required to get a state license? According to Licensing Software Engineers by Phil Laplante, CSDP, PE, PhD Professor of Software Engineering Penn State Software PE Exam Development Committee Chair, the answer is "No":

  • Would all software engineers need to be licensed?
    • No, only those providing their services directly to the public.
  • Would all software have to be developed or supervised by licensed software engineers?
    • No, only software that has an impact on the lives, property, economy, or security of people.

Alas there is the usage of ambiguous terms like "economy", "public" and "security". If a publicly held company implements a video game based on a flawed understanding of Sun Tzu's The Art of War, that is used for military training, a soldier is killed due to said flaw, and the stock value plummets, have we not harmed the public financially, the deceased soldier mortally, with an unsafe software product, that is currently outside the scope of licensing? Does this licensing initiative expand like the camel's nose in the tent? According to the Texas Board of Professional Engineers that is already in their multi-year plan:

Software Engineering

"After years of hard work by countless software professionals across the country, the Software Engineering Principles and Practice of Engineering (PE) exam is ready for its maiden administration in April 2013. This will mark the culmination of one phase of the journey [Emphasis mine.] and a critical step in the overall philosophy surrounding software engineering and the licensing of software engineers in the United States.

The implementation of the exam creates a path to licensure for practicing software engineers, which helps solidify the profession as a recognized field of engineering. It may take years [Emphasis mine.] to thoroughly implement engineering licensure in the culture of software development, but the implementation of this exam is a huge step forward in the recognition that software engineering does directly and significantly impact public safety, health and welfare.

In anticipation of the implementation of the exam, the Software Engineering Licensure Consortium developed a guidance document to help Licensing Boards throughout the United States understand the unique aspects of the field of software engineering. That document will be ready for release by the end of 2012."

How did we get here, to the place we all knew we where headed, the requirement of licensing software developers? [We are safe from all of this if we don't call ourselves Software Engineers right?]

Collectively, including Management, we have done a very poor job in the design of our systems, just look at any near by electronic widget. Do you trust that it will work every time you use it? It has been commonly accepted to "just press the reset button" to fix any problem. So now we have the government stepping in, in their misguided idea this is some how helpful.

"The nine most terrifying words in the English language are: 'I'm from the government and I'm here to help.'" -- Ronald Reagan.

Then there is also always the motive of money, those in government are always happy to add one more fee to the backs of working people. Also there is the conflict of interest of the organizations promoting licensing, do they profit from selling training materials or memberships for example? If this was truly about safety and protection of the public there would be no money incentives involved anyplace.

Background documents:

What has brought licensing of software developers to the forefront is the test Principles and Practice of Engineering Examination Software Engineering Exam Specifications, about to be implemented by the National Council of Examiners for Engineering and Surveying (NCEES) - a non-profit organization that oversees the development and scoring for all engineering licensure examinations in the United States. Taking this test is either currently, or is about be, required by many states.

When I contacted NCEES to ask questions about the software licensing exams, I found them to be less than helpful. The only reply to my questions was "requirements vary by state". I live on the boarder of Pennsylvania and Ohio. If I want to do work for clients in both states, do I have to take the test twice (paying the exorbitant fee twice?)? What if the prerequisite requirements for each state conflict? Those questions went unanswered.

Finding no help from NCEES, I contacted state licensing boards asking them the following questions:

  1. The National Council of Examiners for Engineering and Surveying (NCEES) will be implementing their Principles and Practice of Engineering Examination Software Engineering Exam in 2013. Are there any plans to require this license in [State]?

  2. Should such a license be required by the state, will there be any distinction made between types of computer systems such as your desktop PC, your Smart Phone or an Embedded System (those that run your microwave and your car)? Will there be any distinction for networked systems (Internet being the best well known, but not the only network system)?

  3. What will the prerequisites for taking the test, should it become required?

  4. A concern that I have is that there will be academic requirements, that will exclude those that have been practicing in the industry for years, yet have do not have a degree from a state recognized institution. Will there be any type of grandfathering or allowances for years of practice, so that the most experienced people are not prevented from taking the test?

  5. Living here on the boarder of Pennsylvania and Ohio, will there be any reciprocity of the test being taken one state to be valid in the other? Taking the identical test twice would be a bit odd would it not?

  6. Currently the American Society for Quality has their "Software Quality Engineer Certification" (CSQE). As a holder of a CSQE will there be any ramifications of using the word "Engineer" on my business card or web site?

  7. How often will this license have to be renewed, and at what expense?

I will aggregate the responses from the various states as they reply and post in a future update.

According to the article Sharpen your pencils for 2013 software exam by Rick Merritt in EE Times, these states either currently require or are working on requiring testing: Alabama, Delaware, Florida, Michigan, Missouri, New Mexico, New York, North Carolina, Texas and Virginia. [In June 1998, Texas became the first state to license software engineers.]

IEEE-USA, the sponsoring technical society for licensure will publish study materials later this year (At what cost I wonder?), in the mean time the IEEE Computer Society has their Certified Software Development Professional:

"The CSDP credential is intended for mid-career software development professionals that want to confirm their proficiency of standard software development practices and advance in their careers."

Prepare for the Exam preparation options include the CSDP Preparation Course, which is an on-line, self-paced course, related to the Guide to the Software Engineering Body of Knowledge (SWEBOK).

One of the more bazaar aspects of this coming license requirement is that it is based on, at least in Pennsylvania, a law from 1945: Engineer, Land Surveyor and Geologist Registration Law - Continuing Professional Competency Requirements. In the eye of the law, software practitioners are building bridges. Please let me know when reason and logic start to apply... What exactly is a "Engineer-in-Training" when it comes to software? Is this a government mandated mentoring program? Nothing wrong with mentoring, mandates have a lot wrong with them.

To close, I find one of the answers from the FAQ particularly troubling:

"Many of the other questions I receive are variations on two themes: the futility and unfairness of licensure. I usually respond to these questions by asking the poser to rephrase his question, but in terms of medical licensure. For example, "You can't guarantee that products engineered by licensed professionals won't fail and harm the public so why bother with licensing?" This could be rephrased: "You can't guarantee that there will be no malpractice by licensed physicians so why bother with licensing them?" When asked this way, the questioner often retracts the question."

I've watched a loved-one suffer at the hands of the medical establishment for years. From their own self-study, since the doctors have been no help, they believe they suffer from Intracranial Hypotension due to a Cerebrospinal fluid (CSF) leak. This problem is outside of the "check the box medicine" our system has become. Any doctor that deviates from the "Standard of Care" is sanctioned for having any original idea that might help the patient. I would gladly take this person to a non-licensed Witch-Doctor or Indian Shaman, if one were available. They might actually heal the person, rather than push pharmaceutical drugs, that have only made them sick over the years. For a tangible case of how the "Standard of Care" kills people look into the case of Rick Schiff, whom the state demanded his daughter receive chemotherapy. His daughter died cancer free, not due to a method that is considered outside the "Standard of Care" today, rather from the side effects of treatment demanded by the state licensed doctor dictated by today's "Standard of Care". Is this truly the model we want good software design to be based on?

Am I against certification and licensing? Not really, however there are two things that I am against.

First, what I am against is this kind of attitude typified by the state of Texas (the table below), where you must be a member or part of some other Good Ol'boy network to participate. We only get evolutionary changes out of that, when the world needs revolutionary changes that might come from those that tend to be "Hands On" Tactile Learners, that do not do well in academic settings, who are always outside the 'box'; "Set down and shut up or we will give you more Ritalin!":

 

Type of Education

Experience Requirement

Examination Requirement

Reference Requirement

  No Degree Cannot be licensed. Cannot be licensed. See Board Rule 133.31. Cannot be licensed.

Secondly, we have this response from Pennsylvania:

Mr. Paddock,

Thank you for your email inquiry. Pennsylvania does not license by discipline. You will need to contact NCEES for all questions regarding the examination.

In the response to your question:

"Currently the American Society for Quality has their "Software Quality Engineer Certification" (CSQE). As a holder of a CSQE will there be any ramifications of using the word "Engineer" on my business card or web site?"

Please refer to Section 3 of the Board's Law, found at http://www.dos.state.pa.us/eng, that details the practice of engineering and the use of the title in advertising.

So does that first part mean I have to learn how to design a bridge? It is all in for a license in Pennsylvania, or nothing, before I can write software for a safety application? The Pittsburgh region is big on medical devices. Rather than help, did this potential license requirement just drive this type of businesses to a state friendlier to software development?

Then we have the obvious finger pointing match. NCESS told me to contact the state, the state told me to contact NCEES. I guess the next person to contact is the people that thought getting the government involved in an industry was a good idea. Who do you suggest?

As far as using the word "Engineer", there is a $1000 fine for using that without a license, which in PA for software we can apparently not get? Seems my websites are safe, but would you like to buy a bunch of now useless businesses cards?:

43b.13a. Schedule of civil penalties-engineers, land surveyors and geologists.

STATE REGISTRATION BOARD FOR PROFESSIONAL ENGINEERS, LAND SURVEYORS AND GEOLOGISTS

Violation Under 63 P. S.    Title/Description    Penalties

Section 150(b) Representing oneself as an engineer, land surveyor or geologist on sign, advertisement, letterhead or card, without being licensed or registered 1st offense-$1,000.

2nd offense-formal action Section 151(e) Biennial renewal-Practicing on a lapsed license or registration 1st offense-Up thru 5 months-$500.

6 months thru 1 year-$1,000 over 1 year-formal action 2nd offense-formal action Section 151.5(a) Failure to complete the required amount of continuing education. First offense—$50 per hour of deficiency, not to exceed $1,000 Subsequent offense-formal action.

Finally, what do you think? Will you be taking this test so that you can serve your clients with better software? Beef up your resume over the competition? Do you think it will in anyway improve our systems so we never hear "just push the reset button" again? Is just more government intrusion into our lives, being pushed by people whom have something to gain? This will just drive more jobs out of the country?


6 comments:

  1. What state do you take the test in for your
    application, if you design in one state and deploy the application in a different state?

    ReplyDelete
  2. First a disclaimer: you need to consult an attorney who practices in the area of professional licensure for a definitive opinion. But my understanding is that you need to be licensed in the state where you will try to sell or deploy your wares, or where you advertise your services as an engineer. However, if you are licensed in one state, there are mechanisms by which you can temporarily be licensed in another state or recognized through comity. You would want to consult this site for more information. http://www.nspe.org/Licensure/Resources/LicComity/index.html. But one thing I know for certain -- you will not have to take the Principles and Practices of Software Engineering exam twice if you have passed it.

    ReplyDelete
  3. Just another attempt for government to throw up more roadblocks to private industry & innovation. A lawsuit will follow if every engineer doing anything remotely engineering related *in a big company* **isn't** required to take the same exam.

    The logic doesn't suddenly "not apply" to an engineer at Boeing designing flight control systems.

    Also, did you hear about those turds at ARM who are tying to promote an "ARM certified engineer" program, kind of like Microsoft's MSCE?

    This job is becoming a lot less fun.

    ReplyDelete
  4. Atmel is talking about doing the same thing for the AVR too.

    ReplyDelete
  5. If they want to regulate our profession, they need to accept graduates of computer science and information systems programs too.

    They cannot exclude professionals already working in the field with credentials that predate "software engineering".

    They are trying this in Canada and I have a petition against them.

    ReplyDelete
  6. For regulation to succeed, they must accept graduates of similar programs that predate software engineering like computer science and information systems.

    They are trying this crap in Canada and I have a petition against them.

    ReplyDelete