If you asked me today, I’d say I am in favor of certifications and accreditation. If a professional organization offered a worthwhile broad certification, software may be a very different beast. I have seen the power of certifications through my friends in accounting and actuarial sciences; both professions are bolstered by their professional certification. I posit that software can be written by anyone, but maybe it shouldn’t be; with the proper certification we could increase code quality, security, safety, and base knowledge.
One could point out that software development currently has certifications such as those offered by Microsoft and Cisco, as well as a number of lesser-known bodies offering certifications in software testing and other areas. I find these certifications to be flimsy and unnecessarily specific—very different than the meaningful equivalent certification offered by a state’s bar exam (for lawyers).
Beyond ensuring a base set of knowledge, we could keep jobs that are being offshored and outsourced. How? The government requires that any company receiving federal money has to employ certified U.S. software developers. Now companies have a choice: cheap labor or government money. Certifications give funding bodies and customers one more knob to turn when deciding how much money to give or who to hire.
I’ve seen certification debated by some people who talk about how it would not work if imposed today. That’s true, but looking years into the future there could be a robust industry built on the backs of people willing to jump through hoops in order to focus on their craft. Today, a high school kid could be a lawyer, except for the bar exam; the same prodigious youth could be a doctor, except for the certification. Uncertified people may even be better than their educated counterparts, but judging by who we go to for legal advice and medical help, few people care to take a chance on those unwilling or unable to take the tests. Our society is built on signaling mechanisms that reward dedication to a craft; software certifications would be no different.
Googling for the benefits of professional certifications I came across a number of interesting studies and opinions. Argument from authority was common as people state how certifications exist for law, medicine, accounting, personal training, social work, education, and more; this makes certifications popular, not right. Determining what certification exams is a really hard problem, and centralizing the power stands to create corruption and slow the industry. Certification also works to unionize professionals and redistribute wealth. From a laziness standpoint, certifications layer on a lot of work and responsibility.
So, given the advantages and disadvantages, are certifications in software good, bad, or just plain ugly?