A typical techie, totally lacking in vanity, not even sure what mirrors are for, my only requirements for a haircut are cheap and fast. And so I found myself at the local Hair Cuttery, chatting with the stylist as she did her $13 magic.
I'm fascinated with people, so asked about her life and her job. A single mom, she was more or less abandoned by hubbie. The court-awarded child support arrived for a while, but petered out. Sometimes a check comes, more often not. She's had to raise two kids entirely on her own. Little education limited her prospects, but through heroics I can barely imagine she managed a short stint at the local Vo-tech and obtained her cosmetology license.
License? Turns out that in Maryland all hair stylists must pass a test and be certified. Now, the peril we're talking about is legions of Marylanders walking around with bad haircuts. No one will die or be injured, though perhaps teenaged girls will court suicide.
I thought about our profession. We're the people who built nuclear power plant controllers, avionics, life-critical medical instrumentation, and systems that control every aspect of huge industrial facilities.
License? Certification? Nah. If you can spell “C”, you've got a job. There's no need to understand failure mode analysis, DOD-178B certification, or FDA software requirements.
Do you need to understand software methodologies, process engineering, CMM, PSP, agile development, or complexity metrics? Nope. Just have the ability to crank some code, fast.
My car's brake pedal is merely an input to the computer. Millions of people depend on firmware-intensive pacemakers and other medical implants for each heartbeat. Supersonic planes cannot be controlled by mere humans; without the computer they'd break up in the blink of an eye.
Our systems are getting more complex and ever-more-ubiquitous. Malfunctions are on the upswing. We do know that as firmware complexity increases, errors will too. Though there are plenty of well-known ways to improve software most require spending more time and money on development. The curse of frenetic competition and our obsession with quarterly profits drives companies to focus more on shipping fast than on getting it right.
This is the only industry left where we can ship products with known defects and not get sued. That will certainly change. And when it does, I suspect insurance companies who pick up the tab for the huge jury awards will demand that developers have some sort of professional certification. Perhaps the certification will be meaningless, but it will help provide for a better defense in court. If I, with no medical credentials, operate on a patient and make a mortal mistake I'll go to jail. A doctor will probably just see a rise in the cost of his malpractice insurance.
Though I abhor the thought of certifying developers, and would probably leave the industry if this happened, is it inevitable? 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
Perhaps we should also license CEOs and other people in the executive office. Their decisions are more important to product quality.
– Anthony Wong
Well, for the most part I agree that there is a lot of sloppy coding going on and we really should do something about it. But you seem to be saying that a hair stylist's license carries more weight than a BS. Do we all need to jump on the CMMI cart as my company is currently doing? Probably not. I recently went through a three day course on CMMI (three days of hell) and learned from the instructor who has two kids in Auburns CS program, that schools (at least Auburn) are starting to teach this stuff.
I think one of the problems, though, is that engineers are tinkerers and CMMI is extremely boring no matter how useful.
It's late in the day…I may be rambling…I've got some code to write. 😉
– Mike Frank
To the outsider, licensing makes lots of sense. But, who will measure what skills are needed for any particular job? If academics are involved, expect to know UML, C++, and all those things many of us have not known of, or used. I fear that were licensing of developers suddenly required by insurance carriers as suggested, a large number of seasoned professionals could find themselves unable to work!
– Matthew Staben
Monaco Enterprises, Inc.
Certification! Who thinks up this stuff? I spent a fortune to get a degree in the first place, and every two years I need 6 CEUs to renew my PE license. In the meantime my library is ever expanding so I can keep up with some “stuff,” and I am forever reading magazines for the same reason. Society is going nuts and when they start a national ID I will send in my drivers license and drive anyway and I will skip certification and code anyway also.
– Bruce J. Black
Atlantic Positioning Systems
Imagine industry-wide certification with bug-free code running on any Microsoft OS. What's the point? Measure with a micrometer, mark with chalk, then cut with an ax!
– Steve King
Engineer, HW/SW integration
Your article is thought provoking. I've come to be a full time student after working in the industry for two years. I've seen engineers with a range of skill levels, and now I am also getting to see the budding developers. Therefore I believe that certification is necessary and now is a good time as any to start enforcing it.
– Sachin Patil
University of Detroit Mercy
Well, there is a difference between designing products and performing personal services. Product designers are driven to do decent work by the objective of making money, the implacable demands of manufacturing, and the free choices of customers who want to be happy. You have to decent work to stay “in business.” The combination of commercial demands and team collaboration does more for software quality than any certification could ever do.
– Rod Bristol
Mr. Ganssle makes a very convincing case for certification of software developers and then goes on to “abhor” the concept. The principle reason for certification or licensure of engineers, physicians, lawyers, cosmetologists, etc., is to protect the public. It might be argued that only fields that directly impact public safety such as civil and electrical power engineering, medicine, etc. need to be licensed. Since microprocessors and microcontrollers are ubiquitous and can be found in everything from sneakers to life-preserving medical equipment or as Mr. Ganssle indicates, the brakes on his automobile, it is now necessary to ensure a degree of competence in the science and art of programming. In these modern times, many call for the testing of competence of the graduates of our public schools, colleges, and universities. It is clear that those who do so–including many engineers and programmers–do not necessarily trust the institutions to have adequately performed their functions; that is, a degree does not guarantee competence. We're now discussing a field that increasingly has the potential for financial and bodily harm. I realize that competence does not necessarily follow from certification; however, I would have a greater comfort-level working with a software developer who I knew possessed the skills to pass a rigorous test to earn certification or licensure.
– David L. Livingston, Ph.D., P.E.
Great topic. Writing code is easy. It is done in high schools all over. Unfortunately, some of these untrained individuals end up writing code that goes into products. I have to say, though, some of the code is probably very well done. I would suppose that code written by a person with an EE or a CS degree would be better. But, there are no guarantees.
I think there is another approach to this problem that could be much better than developer certification. Think of Underwriters Laboratories. If you develop an electrical device, you probably want to have it UL listed. This means that UL has at least seen your product, and has decided that it meets certain requirements. If it doesn't, it cannot have the UL signature on it.
So, why not have the code itself certified. The final code would be submitted to a company who would analyze that code, and approve it or reject it. Of course, there would be a fee to this company to provide the service. And, just like being UL listed, companies would want to have their software certified. The fee would have to be part of the project cost, and I'll bet a boss fairly high up in a given organization would insist that this be done. Thus the developer does not have to justify the cost. Of course, a poor developer would certainly take some heat when his project had to be submitted multiple times before it was approved.
There could be any number of companies that could do the certification. There certainly are tools available to do the analysis and provide a certification score. And, specialization would naturally happen. For example, one company would certify avionics software, while another would certify automotive software, etc.
The thing I like here is that it is possible to get a good software product regardless of whether the developer was or was not certified.
– Howard Smith
Senior R&D Engineer
For a hair stylist, a test could actually prove one's capability in a real demonstration of skills.
For a programmer, would a ability to memorize all the certification questions (most likely multiple choices, too, with commercial books to study) prove that he/she is a capable designer? I think not.
– Henry K
There are two ways to look at it. A certificate does not necessarily mean “expertise.” A certificate accompanied with testable proof of experience is what we should insist on. If we insist on certification, we would only be filling the coffers of certification agencies. That would only spawn a whole new industry. Therefore, I feel that putting the developer through the right tests at the time of interview is equivalent to a certification.
– Sreenivasa Chary
Philips Consumer Electronics
Track record, education, certificate are all different words for the same thing: Evidence that the person is qualified for his job.
There are two ways to ensure this: Either the customer requires that the engineers that are building up his product have the right qualities or the embedded systems industry itself, in order to survive, makes sure that this is the case. I am in favour of the first proposal since I believe that this has more effect and is more powerful.
– Joacim Bergman
I'm curious why you object to certification requirements for developers.
I find that there is an alarming lack of basic software engineering (SE) knowledge among people with “Software Engineer” in their title. It's the wild, wild west out there, especially in the embedded systems world. But how do we or our employers know if our practices are inconsistent with industry norms? Against what do we measure?
I welcome efforts to define a uniform body of SE knowledge, such as SWEBOK. And I hope the trend among employers is to require a demonstrated knowledge of SE fundamentals and an ongoing level of continuing education as criteria for employment.
Granted, certification only establishes a baseline of knowledge. Many will have the certification and still suck as practitioners. Others will have successful careers built on alternative or evolved forms of the baseline. But certification will at least define a common reference point from which we can all work.
– John Hopson
Certifications are required, there is no doubt about it. But the question of having a uniform certification methodology for developer is very hard. There are developers spread all over the world. It would be difficult to convince each one to get certified. One intermediate solution to this is to get the software itself certified by rigorous testing by an external agent other than company that has developed it. Currently this is being practiced in the automotive world of air-bags, where in an external government agency certifies the product. It is at product level and not software level.
Coming to individual certifications here is something that may be of interest to readers:
CSDP ( Certified S/w Development Professional) offered by IEEE. But this is more generic S/w Engg. and not specific to firmware development.
– Sateesh K
I hate the idea of computer engineer certification from a practical standpoint, namely, what *I* need to know well and get right has very little overlap with what *you* need to know well and get right. Just as the computer science program I took in college had no correlation to computer career requirements (then or now), I fear that certification would be a series of tests in irrelevancy that would naturally tend toward the lowest common denominator. (Is it so hard to imagine certification requirements being driven by whatever Microsoft lobbyists push as “essential” technologies?)
If I thought certification would improve quality I would be for it. But I don't see any realistic outcome besides bureaucratic hassles. If embedded system quality and software quality is going to improve, it requires a different force: accountability.
Remember Energy Star? The EPA, having no real ability to legislate lower power consumption in monitors, simply defined a standard and testing program so anyone who wanted to could create products that complied… and anyone who wanted energy efficient products could look for that mark. Well, I've long wished someone would create a Reliability Star program: Software and software-based systems with guaranteed accountability for failures, source code escrow to protect against corporate failures, adherence to review, testing and quality assurance procedures, and no weasel terms in the licenses. If people want solid code they'd know what mark to look for, and why they were paying more to get it. Just a thought…
– Mark Bereit
Director of Product Development
IRIS Technologies, Inc.
The software engineers developing software for critical systems may not be certified, but any company selling such systems are liable for them and thus will assure that internal systems are in place to make sure “dangerous” products do not get released to the general public. Yes, defective products do make it out the door occasionally, but certifying software engineers would not reduce the likelihood of this happening. It would merely shift the blame to the small guy and give lawyers someone else to add to their list of lawsuit victims. From what I read, software engineers in the U.S. are already at a premium. Let's not tie our hands even more by adding more government bureaucracy to the mix.
You know, despite all the licensing and certifications required to be a nurse, let alone a doctor, it is estimated we still slaughter some 100,000 a year in hospitals due to misapplied drugs, poor hygiene, and other mistakes. Certifications and licenses cannot and will not prevent anything, except maybe forcing some highly qualified people out of the industry. If you want wallpaper, try Lowes, rather than your state government
– Brad Stevens
The control processes within any given organisation are the target of D0D-178B, and in the UK DEFSTAN 54,55,56 and no matter how well educated/experienced you are as a developer the quality systems must be in place to control the development process.
Because of this I believe certification should be for organisations not for individual developers since every development effort is a team effort.
Training should be a keystone of the processes employed by any organisation certified to develop safety-related, safety-critical software, but should be continuously updated.
Simply passing a test and getting on with it for 15 years is not enough, or worse, passing a test and not doing it for 15 years then starting again without the need for recertification.
– Ben Midgley
Obviously Jack hasn't done his homework on this one. Understanding software methodologies, process engineering, CMM, complexity metrics, and failure modes are pretty much mandatory when you develop software under DO-178B. The FAA makes sure you are doing the job right. We can't just go out and get a guy off the street and say “OK you have a job with us now so come on in and crank out some code.” There are good companies making quality safety-critical products out there. Forget about looking at the Microsoft's and all those cheap commercial outfits that do produce the junk you're talking about. Do a survey of the avionics and medical equipment manufacturers instead. I'm sure you'll find top-notch software engineers following a formal process developing high-quality products. As for certification I'm all for it. That's how we would separate the men from the boys (or the women from the girls).
– Wally Masiewicz
Senior Software Engineer
I was a PE before the practice of embedded systems developer was even named. Interestingly, the state lumped us in with barbers, beauticians, and bingo parlors. And many of the disciplinary actions involved injuries by hairdressers, few by engineers. More to the topic, the PE license had nothing to do with writing code, but everything to do with general engineering know-how. The initial certification has nothing to do with measuring how responsible I was. But the continuation requires responsibility as a professional (and an occasional check to the state) and implies that I am more than a wanna-be hack. Do EIT and PE exams today include questions on embedded systems knowledge?
– Jon Koenig
Certification of anything drives up the costs of the product. Certifying software developers will just be one more cost factor in the decision to move development off-shore.
– Michael G. Marriam
I work for a defense contractor, and we are certified to SEI level 3, working to level 4, and CMMI. I have a MS in computer science (some cert. value?), as BS in mech. engr, and a minor in physics.
I think that if the company is not certified and doesn't buy into controlled processes, quality, safety, then NO individual certification will be effective. Companies don't listen, to their employees, especially when the immediate costs go up. Further, it's the customer who also has to insist on, and pay for, the processes, and quality effort. If not, even SEI-4 certified companies will cut the corners to make more profit. Even when mandated, in contracts, if the customer is not checking, witnessing, auditing, or by other means making it clear they will notice a lapse in processes–it will not happen. I see cost driving everything–not quality.
My other thought on certification is that there would need to be so many different ones, that it would likely be impractical. Programmers get shifted all over the place–as work moves–wrong certifications and we find ourselves w/o jobs. A new project needing help will not be willing to pay for a new certification, nor likely have the time, schedule-wise.
Last item: Who will PAY for the certification? My company does not pay for Professional Engineer certification. It doesn't pay for IEEE or ACM memberships, It doesn't even pay to train people to use the tools provided for daily business practices, so the price of getting a job would likely go up.
– Charles Doughty
Engineering Specialist-Embedded Software
What you don't mention is that certification is mostly a way of limiting competition by making it harder to get into a field. It may do something to protect the consumers, but plenty of people die as a result of mistakes by fully certified doctors, and many more get messed over in court because their fully certified lawyer messed up.
– William Ames
Sr. Software Engineer
Viasys Critical Care
My sister is a director of nursing at a large hospital. The license is considered a serious thing in her business. If you come from some other country, you must train here and get the license BEFORE you can work. For an MD or DDM this can be several years; for a nurse it can be six months or more during which he or she can't work. If you walk in off the street with an English degree and tell someone “I'm good with sick people”–they point you to the nursing school. Don't even think about telling them that a degree from country X is just as good or better. They say–here's the process. The CEOs don't like this. Things cost more. Doctors and nurses have to have insurance. I'm often struck how much more professional my sister's profession is than ours. Truth of the matter is when people's lives are at stake, IT SHOULD BE HARD TO GET THOSE JOBS!!! Some sort of licensing should be a barrier to entry. I have been an advocate of this for at least fifteen years. The people who seem to be most opposed are the IT shop hackers with English and Poly Sci degrees who want to call themselves software engineers. Civil engineers don't allow carpenters to call themselves engineers just because it sounds better on their resume.
– Alwyn E. Goodloe
All of the industries you mention (nuclear power, avionics, medical equipment) do indeed have a minimum certification requirement: it's called a Bachelor's Degree in Engineering (or a related discipline). Sometimes this requirement will be waived if a candidate can demonstrate applicable experience, but by and large the BSxE degree requirement is universal. Your surgeon analogy has grim implications. A license to practice medicine is no guarantee that the practitioner is competent. It only protects the practitioner from the consequences of any bungling on her part.
– Hugh Shane
Lead Hardware Engineer
I think you've confused apples and oranges. The real issue is that the entity providing the product or service to the end user is regulated. I can work for a company that makes flight-critical software even if I can barely spell “C”, but it's the company that's responsible for DO-178B certification. If they want to try developing DO-178B software with yahoos, good luck.
On the other hand, if I'm a one-man engineering consultant, in Ontario, Canada anyway, I better have a license to practice.
– Rick Low
This is one arena where the free market has provided controls. Companies making safety-related software are qualified to judge the specific requirements of their area and have a financial incentive to demand highly qualified workers.
Isn't it interesting that the Air Traffic Control fiasco mentioned in an earlier article happened when the OS was replaced with the OS of a company accused of monopolistic practices?
– Randy Leberknight
If you're going to tell me that a hair stylist would always give good haircut just because s/he is licensed, then heck yeah every profession should require a license. The fact of the matter is we don't live in a perfect world. Even a great, licensed hair stylist would give bad haircuts once in a while. No amount of licensing would guarantee perfection. For a hair stylist, a license only let us know that s/he had formal training. For me, as a firmware engineer, my license is my B.S. degree.
I think it's the responsibility of the company to recognize good and bad employees and deal with each accordingly. The proof is in the work; not a piece of paper. Also, it's the responsibility of the company to thoroughly verify their products. Certifying the product would do the public more good than a certified employee.
I would like to support Howard Smith on his suggestion that there be application-related certification testing on critical software. General certification of developers for varied programming tasks would place too great a burden on a single individual. In today's job market, an engineer could be programming for a number of applications as jobs change. It makes much more sense for focused groups of test engineers to know and execute certification testing for a specific style of risk. As mentioned, a poor developer would receive the proper amount of heat as various pieces of code fail certification testing. Very creative thought, Howard.
– Robert Kugler
You can certify every developer on the planet and it will not stop management from shipping code long before it is ready just to meet some deadline the development team said wasn't doable. Hold the CEO personally responsible–his assets not the company's–and you will see a sudden change in the quality of shipped code and systems!
– Mike Wood
Howard Smith wrote: “So, why not have the code itself certified. The final code would be submitted to a company who would analyze that code, and approve it or reject it. Of course, there would be a fee to this company to provide the service. And, just like being UL listed, companies would want to have their software certified.”
The UL already does provide this service. See www.ul.com/software. Products are reviewed to ANSI UL 1998 and/or IEC 61508. The web site has some white papers worth reading.
Mr. Smith also wrote: “There could be any number of companies that could do the certification…”. Companies that do third-party reviews already do exist, but I won't turn this message into an ad for them.
A number of guidelines for writing safer software do exist. I try to keep an up to date list of them at my web site: www.softwaresafety.net .
My fear with required certification is that like standards, everyone will want their own. The real problem in the embedded systems arena is figuring out how to write a meaningful certification test.
On the other hand I am a Certified Software Quality Engineer (CSQE) by the American Society for Quality (ASQ). Having a certification can look good on a resume and has lead to opportunities that I would not have had without certification.
Michael G. Marriam wrote: “Certification of anything drives up the costs of the product. Certifying software developers will just be one more cost factor in the decision to move development off-shore.”
There already are companies off-shore that claim to be certified to SEI CMM Level-4. It is Lead, Follow, or Get Out Of The Way, and clearly the U.S. is losing the lead.
– Bob Paddock
Certified Software Quality Engineer
The Designer-III Company
Certification only makes sense for engineers who are in a position to make all the relevant decisions. That means that it makes sense for consultants but not for contractors or employees who end up having to follow the direction set by the company management. Aside from whistle blowing when they see some bad decisions, these employees/contractors have no real control of the process.
Having worked under both conditions, having the professional license and as an employee, I see the license as just another layer of bureaucracy and another source of revenue for the licensing body (state or professional organization). In terms of affecting the quality of the work the effect (in my experience) is minimal.
I do agree that there are way too many people developing firmware (and software) who are not doing the necessary design, documentation, and testing and don't follow a well-defined process, but it's the companies that must share the responsibility for this. In my experience, many companies that do require the documentation (ISO9000, Medical Devices, DOD) do it as a separate requirement and not as an integrated part of product development.
– Stan K
Software engineers are not the problem, IMO. The problem is our current software construction methodology. Our approach to writing code has not changed in a fundamental way since Lady Ada wrote the first computer program for Babbage's analytical engine. That was for a computer built out gears and rotating shafts!
My point is that modern software construction is still based on the algorithm 150 years after Babbage and Lovelace! This, I believe, is the reason that software is error-prone. Switch to a signal-based, synchronous approach and the problem will disappear.
The idea that we can predict software reliability the way bridge engineers can predict the safety of their bridges is ludicrous. Programs are not bridges. The proper function of software quality control is not to measure the probability that programs will fail, but to guarantee that they are 100% bug free. When it comes to safety and mission-critical applications, highly reliable code is not good enough. Only total reliability will do. For more info, see my article “The Silver Bullet: Why Software Is Bad and What We Can Do to Fix It.”
– Louis Savain
Mr Ganssle is the God of embedded systems and when God speaks from the sky, it shouldn't be taken lightly. An organization that develops an embedded systems product is generally responsible for any critical malfunctioning. Take the case of car manufacturers. I've heard number of times that a car company had to recall its vehicles because of serious public hazard and had to dole out million of dollars in compensation to victims. To ensure that their products are not harmful in any way companies invest a lot in recruitment, training, and QA to ensure that they have competent talent on board and robust products getting developed. But still if they face the danger of serious lawsuits, owing to lack of confidence in recruitment and training practices the companies might prefer to go for “certified” professionals. Carrying a certificate would definitely provide an edge to the engineers if they want to work on something really non-amateurish.
The missing point in software quality is the certification of the compilers used in the industry. From my experience I have yet to find a C compiler that made it through a single embedded systems project without at least one serious code breaking bug. This using the best compilers in the market for Motorola, MicroChip, and Intel. I would hate to think of the bugs created by the latest and greatest tools that are far more complex than a C compiler.
– Tom Curry
Well, we better have some system in place before another Ralph Nader forces us to do so. Does anyone now want cars without seat belts or airbags?
– Kalpak Dabir
To be able to do something and to actually do it are not necessarily the same things. If they were, all humans would have clean water, etc.
Certification can in the best of worlds make sure the developer “could have” made a good program. However a large amount of the industry relies on updates as a source for income. Not a nice thing but unfortunately true. As for the flaws in the certification system a co-worker suggested to order code from Rumania and then inspect it “Sign it.” This approach could practically inhibit the effect of certification as well as move jobs.
– Martin Lundstrom
I agree with Mr. Ganssle. But I would also like to add that knowledge sharing by senior team members, designing things that are required and not just those that are possible, and following processes should ensure robust, simple, and maintainable code for safety-critical systems. Knowledge sharing is the key.
– Sachin Shivapur
I have been reading with much interest the running discussion about certification and/or licensing of software developers. As someone who works in the building construction industry, where by law building plans for all areas of work (architectural, structural, plumbing, electrical, mechanical, fire protection, communication, etc.) must be prepared under the direction of and sealed by a registered/licensed professional architect or engineer. In theory, the registration or licensing is a measure of competence. To even take the test to become a PE (registered professional engineer), one must have a BSEE at an accredited college or university. Having seen what the actual test is for electrical engineers in my state, I am a bit skeptical that all areas of the test really apply to electrical system design. I work with PEs and also RCDDs (a different ceritification, this one for telecommunications system design). Some of these professionals are competent, in my opinion, and others, well . . . I'm not so sure. The key area of difficulty is an obvious one–getting drawings and specifications that clearly describe what the final result is supposed to be when completed.
In the building industry, electrical engineers develop drawings and specifications showing what is required to be installed. There are varying levels of detail provided. In many cases, subcontractors (electrical, low voltage, security, fire alarm, communications) have to interpret the drawings and specifications, submit details of their approach to installation, and once that submission is reviewed by the specifying engineer and not disapproved, these subcontractors install the actual system(s). In some cases, the final installed result is reviewed by the specifying engineer, but not always. Behind all of this is a whole series of codes and standards (National Electrical Code, International Building Code, International Mechanical Code, etc.), which are adopted by law in many areas of the country and which provide the basis of the various areas of building design. Local inspectors review plans and specifications before work commences and can require changes in the design to meet code and standards requirements. In the last analysis, the actual workmen who are building the building are the ones who make the whole process work and create a safe, usable finished product.
Without a similar infrastructure of codes, standards, reviews against these codes and standards, and a final inspection by a knowledgeable authority who has some actual legal power of enforcement, the whole idea of licensing software developers is not meaningful. We have very few actual software design standards that I am aware of in the non-military arena. It will take a long time to develop meaningful, useful commercial standards, unless we adopt military (US DOD) standards, and I don't think commercial developers are interested in that. A process for inspection against these standards by a recognized authority will also have to be created.
There may be a more difficult problem to over come in all of this. My limited experience working with software developers suggests to me that it's the creative problem solving part of the job that attracts the most talented, those I call “genius programmers.” These are software developers who can write complex applications quickly and get excellent results. In my experience, they are not interested in bureaucracy, paperwork, design review, software standards, or code inspections by others. At best, they tolerate these things, but they really don't like them. Now, this is not a criticism, but it will have to be dealt with.
The other big problem I see is that in complex software designs, it may be difficult to actually know how the design works, and it may be impossible to adequately test or inspect it thoroughly.
– Ken Ciszewski
From my experience with the first steps of Professional Engineer certification, I think a certification would simply prove that you knew how things were done 20 years ago.
As for hairdressers, there are two sides to that certification. One is that they may handle quite a few chemicals, some of them pretty caustic–and these aren't people who are likely to have a bachelor's degree of any kind, let alone chemistry. So the certification process is intended to establish a certain degree of understanding of the safe handling and use of those chemicals. Not that it can ensure that your hairdresser knows enough about the new stuff she's pouring on your hair… And of course requiring a certificate just for haircutting does nothing to improve the quality of the haircuts, but much to prevent competition.