Professional Licensing Of Programmers

Should there be a licensing requirement for professional computer programmers, and if so:

Should we discuss ProfessionalLicensingPremises

I think different positions may be summarized along the lines ProfessionalLicensingIsPremature, professional licensing can never work (be useful), professional licensing is good we need it yesterday.


Well, just do not the current bureaucratic committees like IEEE to impose nonsense like SoftwareEngineeringBodyOfKnowledge on us. Not to mention SEI. In the end it will be unavoidable that licensing will be required in certain areas of SoftwareEngineering, but the very big problem is how to avoid the incompetence creeping into a regulatory body. This will be a political process.

The first question to be asked is whether it will be beneficial at all. Whether it will be beneficial for software engineers, for investors in the software industry and for the customers.

The second question is whether it is implementable in an acceptable form: meaning can we devise a scheme such that the regulatory body who designs compliance criteria will be widely recognized and respected, free of charlatans and incompetents and noncontroversial.


IsYourCodeThatImportant? In industries where it is - avionics, health care - there are strict process and competency requirements. I'm not sure if the programmers are licensed, per se, but all code is thoroughly reviewed and if you can't prove that you know what you're doing, it never gets used.

For non-mission-critical applications, where life is not at stake, the free market is usually a better way to weed out crappy products. If you require licensing, you prevent people from making the tradeoff between quality and other factors like cost, ease of use, time to market, and feature count. All products would require a certain minimum level of quality, whether that is economically efficient or not. But as a consumer, there are times where I don't care if it crashes once a day (IMs, music, web browsers), and would much rather have cool ease-of-use features. Remember that the user doesn't care how ugly the code is; if it fills their needs, they'll buy it.

I'll go out on a limb and say that the web would not have developed as fast as it did were it not for the hordes of incompetent programmers. Because suddenly everybody - from teenage kids to local newspapers to major corporations - had a web site. They may not have been good web sites, most weren't even standards-compliant, but they worked and people use them. -- JonathanTang


Can't you just see the Ethernet Highway Patrol pulling you over to inspect your ComputerDriversPermit, searching your computer and verifying that you are not breaking a programming rule, or are not using programs illegally, and if they want to to issue a ticket asserting that you have broken one of these rules, or one made up on the spot. Or have programmed to fast, were found to have stolen someone else's code, or to have been programming while a license was suspended? Not to mention programming while drunk, working more than Forty Hours, found to have been using ExtremeProgramming, or not have title to the software on your machine and a certificate of insurance for malpractice, and outstanding warrant of non-compliance to standards and specifications, failure to deliver software(breach) on time and under budget, and other failures to numerous to mention, let alone to be understood. A ticket might also be issued for failure to submit to such controls, checks and balances which a manager has sought to employ and which programmers presently not only do not observe but also despise. 8); -- HaHaOnlySerious

Not only that, think of the licensing system that currently picks high-quality drivers; think of a similar one also picking software engineers. (This already happens in other professions: Licensing requirements are often a mere formality, a burden even, while competitive-market and litigation concerns actually drive quality.)

Actually there are different classes of driver permits. Not anyone can drive a heavy truck, nor should the market decide this matter. Markets with very high barrier of entry are known to work.

The software engineering labor market is effectively a market with very low visibility or in more theoretical terms a market with asymmetrical distribution of information. Software engineers may know their level of (in)competency, buyers of their services have very little in the way of getting a clear picture of what they're buying into. In the absence of minimum standards, buyers will de facto impose their alternatives. For example professional certifications and built up resumes, which are an extremely poor substitute for professional licensing and are detrimental to both parties involved (yes, the guy writing these lines has an impressive array of certificates), but have become an effective barrier of entry in the free SE labor market.


If the rules in accounting changed as often as the rules in computing it would not be possible to certify accountants.

Is it the rules that are changing, or just the tools? Other professions are trained to standards that apply regardless of what tools are used. How often have completely new paradigms appeared on the computing scene, and would that frequency have made certification impossible? (Granted, it's hard to say if any have appeared on the accounting scene in the last 100 years, it's been more a process of gradual evolution.)

What exactly are those non-changing standards or principles? I doubt a concensus can be found.


Licensing only provides a path for taxation, not real protection for employers. Contract law, properly applied, can do the job. The progress made in the last 3 decades could not have been achieved had programming (or any other scientific endeavor) been the constant subject of government meddling.

Keep governments out of it. They have proven time and again that "to err is human, but to *really* screw things up you need to involve the government."

There are already literally dozens of certifications one can hold to fulfill this purpose, and none of the work worth a crap. You end up with programmers who are good on paper because they studied for a test, but have little if any practical experience. Good programmers are good programmers and licensing/certifications don't do them much good, because tons of bad programmers also have those same certifications.

Programming is art, you want a good programmer, ask for his portfolio, make him provide samples of his work, if he doesn't have any and isn't willing to write something, hire someone else.

Programming isn't like being a doctor or a lawyer, and certifications won't help, and the government certainly won't help, they never do. The informality of programming has been its greatest strength and is the reason the industry has progressed so far so fast, it'd be nice to keep it that way.

I disagree here; I think the greatest advancements in computing have been made by Xerox, Apple, AOL, and Mosaic. I use my mice and GUIs and web browsers and instant messengers all the time. I rarely find the need to compute the shortest path, or parse a grammar, or typeset a page, or use whatever the hell Wirth contributed (did he do anything besides dead languages?)

And yes, I realize that a lot of the apps I use wouldn't be possible without the fundamental algorithms. By the same token, the algorithms ain't very useful without the apps.

I think there's a big tendency among programmers to confuse elegance with usefulness. A lot of what is important to us is, frankly, useless to the general public. They don't care how ugly the code is: if it does what they need it to do, they'll use it. The free market's a remarkably effective way of weeding out the chaff; a lot of "failures" pointed out by engineers are really because they value different things from the public at large.

And yes, my life would be noticeably worse without software written by people who'd fail a licensing test. I'm writing this on a MicroSoft computer; I really doubt all the folks who wrote this software would pass. I use Gaim on my home computer; I'd be without instant messages. My main web project is in PHP, a language written by people who not only don't understand academic computer science, but actively disdain it. It's in that language because I want folks who wouldn't pass a licensing test to be able to maintain it, so I don't get tied down to it forever. There's a lot of shitty software that I use on a day-to-day basis, but I'd rather have a PieceOfShit? that does what I need it to do than a SoftwareMasterpiece that exhibits complete disregard for the user. -- JonathanTang

I acknowledged that. I also stated that the contributions of the people you mentioned would be useless without those advances.

My point is more that you need both kinds of people than that we should all glorify ignorance. The thesis of this page seems to be to get rid of the UnwashedMasses and let only GrandMasterProgrammers (or some approximation thereof) into the profession. I'm saying that we'd be noticeably worse off without the UnwashedMasses that a licensing scheme would exclude. NeverUnderestimateThePowerOfStupidPeopleInLargeGroups?. -- JonathanTang

Well, I think you misunderstood the thesis of this page. The intention is not to let only GrandMasterProgrammers but rather the minimally competent programmers. I do not think that any of the other contribution you mentioned are made by people who'd fail a test for minimum competency. Plus licensing would be mandated only as a barrier of entry to the profession, it would not regulate what people do in the spare time. Nobody prevents you from playing the electrical engineer in your own backyard even though you are not licensed.


Geee, maybe a license would provide us all of the advantages of Professional Truck Drivers. We can eat greasy food, load up on coffee, work 16 hours straight, and have no idea what we will do next after the current job is done. Just think how much a professional license will change our work environments. CEOs will bow down before us. Young people's hearts will grow faint at the sight of a Professional Programmer! And maybe the idiot in the cube next door (who is really so much less intelligent than I) will get fired. Sign me up! Sign me up!


I'm afraid the licensing will simply not work the way some of us expect. The results depend heavily on the question who will be the decision-makers on whether to give the license to each particular person. Anyways this is to be decided by government, and the government often just do the things VeryRichPeople? consider right. I'm nearly sure that, e.g., MicroSoft will do their best to use this approach to try another time to put FreeSoftwareProgrammers? out of the business. And that will be all. -- AndreyStolyarov


Why do we need to licence? All of the benefits mentioned here, which boil down to better information for employers, and more employability for the licensed, can be achieved by a rigorous and relevant professional qualification, perhaps something like the British Engineering Charter.


A number of years ago, there was a proposal to license programmers in New Jersey. It passed one of the houses of the state legislature, but was shot down in the other house after a lobbying effort by AT&T, who said that they would leave the state if the legislation passed.

A summary of the legislation may make it clear what people would have had to cope with.

It called for establishing a licensing board, which would consist of six members. I think three of them would be appointed by the governor, and those three would then appoint the other three. The board would be responsible for defining the qualifications necessary to obtain a license, and all future appointees would have to be license holders.

Once the licensing requirements were formalized, it would be illegal to write a computer program of any kind in New Jersey without a license. It would also be illegal to sell any software in New Jersey that was not entirely developed by New Jersey license holders. So no more Microsoft products, and no freeware or open-source software of any kind.

When I say no programming, I mean no programming--for any purpose whatsoever. The only exception was that students in courses taught by New Jersey license holders would be permitted to write programs that were necessary to complete their homework assignments.

The next time someone suggests licensing programmers, you might use this as an example of the practical ramifications that almost became reality.

See also RegulatedSoftwareMonopoly, RegulatedSoftwareIndustry, ComputerDriversPermit


EditText of this page (last edited October 1, 2005) or FindPage with title or text search