Just about every electrical device today contains software. A flat-screen television has thousands of lines of code and more than 10 processors. A mid-priced car can have as many as 20. Medical equipment, elevators, and even microwave ovens are run by software. But a poorly written program or a software glitch can cause a lot of harm when a car’s braking system fails, for example, or an insulin pump stops working, or an elevator gets stuck between floors.
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—and maybe save a few lives in the bargain. That’s why IEEE has been working on an initiative to license software engineers who pass a competency exam. Several IEEE members are developing the specifications for the Principles and Practices Exam of Software Engineering, which is to be given for the first time in April 2013.
The idea for the licensing exam came from five organizations who partnered in 2009 to form the Software Engineering Consortium. They were the IEEE-USA Licensure and Registration Committee and the IEEE Computer Society, along with the National Council of Examiners for Engineering and Surveying (NCEES), the National Society of Professional Engineers, and the Texas Board of Professional Engineers.
The exam will test for basic knowledge, not mastery of subject matter, according to Mitch Thornton, vice chair of the IEEE Licensure and Registration Committee. In addition, applicants for the exam must have four to six years of experience as a practitioner in software engineering.
“Just as practicing professionals such as doctors, accountants, and nurses are licensed, so should software engineers,” Thornton says. “The public needs to be able to rely on some sort of credential when choosing a contractor to write software.”
Only those whose programs might “endanger the public health or safety, security, property, or the economy will need to be tested,” continues Thornton.
“This exam is the only missing item in the path to licensure for software engineers,” says IEEE Fellow Philip Laplante, who chairs the consortium’s Software Engineering Licensure Examination Development Committee. “All the other pieces are already in place.”
In order to be licensed, engineers must pass two exams: The first exam, the Fundamentals of Engineering (or FE), is a broad-based exam that is usually taken after graduating from an ABET-accredited engineering program. The second exam, called the “Principles and Practices” (P&P) exam, is discipline specific and can be taken only after having several years of applicable work experience. Currently, 24 discipline specific exams exist, such as the “Principles and Practices of Industrial Engineering” and the “Principles and Practices of Electrical and Computer Engineering.” The new “Principles and Practices of Software Engineering” exam will join these other discipline-specific exams.
Most software engineers, including those who work for a government entity or large company, won’t be affected by the licensure requirement, according to Laplante. That’s because their engineering work is mostly performed “under the responsible charge of and verified by an individual holding a certificate of licensure,” as is required by a model law developed by NCEES for licensing boards. Model laws reflect best practices as determined by the NCEES and its member boards.
The small subset of software professionals required to take the exam are “sole practitioners who offer their services directly to the public, or work for a limited-liability corporation,” explains Laplante. “The test is to protect the public from individuals who have no training or experience in writing code. Currently there are no barriers for these engineers to offer their services.”
With outsourcing the norm, the software written by freelancers could find its way into all sorts of applications, including medical equipment, mobile devices, financial systems, and household appliances.
The one-day exam will be open-book and consist of 80 multiple-choice questions given in two four-hour sessions, Laplante says, adding that the questions will cover a broad scope of software engineering activities such as design, test, design, and security. More than 300 IEEE members from around the world who are software engineers were surveyed on topics the exam should cover. Sample questions are to be released later this year.
Laplante is confident the test will be ready by April 2013, but not every state will require it right away.
State licensing boards have the ultimate authority over requirements in their jurisdiction, so it’s up to them whether to offer the exam. Some jurisdictions automatically offer all available licensing examinations for every discipline, while others decide based on their needs. So far 10 states have indicated they will offer the test: Alabama, Delaware, Florida, Michigan, Missouri, New Mexico, New York, North Carolina, Texas, and Virginia.
Thornton says he expects the other 40 states and four U.S. territories to follow suit. That’s because NCEES produces exams that are used by all 54 U.S. jurisdictions as part of their licensure model, so by default the jurisdictions will have the new examination available.
Composed of representatives from the licensure boards covering engineering and surveying of all 50 states, the District of Columbia, and U.S. territories, NCEES works to advance professional licensure by promoting model laws and administering licensing exams. The current NCEES model law imposes a licensure requirement on any service or creative work that requires engineering education, training, and experience, the nature of which involves “safeguarding life, health, or property.”
Other countries have also expressed interest in the licensure process, Laplante says.
“Some engineers might wonder why they should take the software exam if it’s not mandatory. Laplante lists several reasons: “For a consulting engineer, for example, a software license would be a very handy credential to have to sell your services.”
He predicts that just as some employers now require new hires to have the 10-year old IEEE Computer Society Certified Software Development Professional certification, the same will happen with the software engineering license. “I think we will see some specific types of jobs where that credential will be required or strongly preferred,” he says.
It’s also not just a demonstration of basic competence but, as Laplante describes it, a “badge of honor.”
“It’s the same reason that I became licensed as a professional engineer,” he says. “Even though I didn’t think I’d be using it, I wanted to establish my credibility.”
Visit The Institute’s IEEE Roundup blog to read Laplante’s answers to Frequently Asked Questions about software licensing.
The IEEE-USA Today’s Engineer newsletter has published several articles on the initiative including “IEEE-USA and IEEE Computer Society Cooperate in New Professional Software Engineering Licensure Initiative” (January 2011) and “When Do Software Systems Need to be Engineered?” (July 2011).
*On 13 June, the National Council of Examiners for Engineering and Surveying (NCEES) announced it will begin offering a Principles and Practice of Engineering exam—PE exam—in software engineering in April 2013. Registration is scheduled to open mid-December 2012. IEEE-USA is an exam cosponsor and is working with the IEEE Computer Society to release sample questions.
*This article has been updated since it was first published.