Don Gotterbarn
Licensing isn't currently required for computing professionals, but it is currently being looked at by several professional computing organizations. The question of licensing professionals is a very controversial and political question. Licensing generally means that to claim to practice a certain profession requires a government license, often administered through a professional organization. The general theory is that it is supposed to help those outside of the certified or licensed profession judge if someone else is capable of doing certain jobs.
Licensing is perceived by many people outside the profession as a cure-all for everything they don't like about software development,(e.g., high cost, late delivery, highly publicized software failures, many safety critical applications, etc.). People who fly get concerned when they realize that the only part of an airplane that is built by an unlicensed practitioner is the avionics software which flys the airplane and controls all of its safety features. Bills related to licensing software practitioners are under consideration in at least six states.
This "protect us from their incompetence" attitude is only one motivation for licensing. Others are motivated by the desire to establish some mechanism for accountability which has legislated sanctions. Medicine has such sanctions. If you don't practice medicine according to established guidelines, the State will force you out of the practice of medicine. If you don't practice computing according to the approved standards then you will be forced out of the profession. These standards would also lay a solid foundation for computing malpractice suits.
Licensing is viewed by others as a coercive prohibition on the practice of the development, creation, or designing of computer systems by the State. Licensing would establish monopolistic practices that limit creativity. It would also limit access to the practice of computing and force those out of the profession who do not follow the static standards of practice. This would bring "compulsory state force - the power of the gun" to establish how systems would be developed. Instead of computing being a creative process it would become a stagnant non-productive monopolistic activity.
A third motivation of those in favor of licensing is the desire to help instill a sense of professionalism in the computing community. Licensure requires competence in and adherence to minimal standards of practice. According to these standards, even when Jack (Dr. Death) Kevorkian does his work, he should still adhere to professional standards and use a clean needle.
Technical competence and good technical practice do not protect us from harmful or ill-advised applications of these skills. To help protect us from the consequences of misuse of these skills the practitioner should have a concern for the well-being of the patient. Professionalism embodies this commitment to the WELFARE of the patient and it is generally asserted in an associated code of ethics. We put our trust in doctors because of their commitment to only do what is good for us. If this sense of responsibility to the client or customer was part of a personal (and State enforced) commitment of the computing professional, we would feel safer using their software products.
There seems to be two problems with this desire for responsibility as a motivation for licensing. First, professional physicians themselves are debating about their responsibility to a higher level of patient care. There have been several articles with titles like "Syringe for Hire," which argue that physicians are merely technicians who apply good technical skills to do anything the patient wants whether or not it is good for the patient. The technician owes no responsibility to the patient beyond the quality application of technical skills.
The practice of computing has not been viewed as a profession in terms of this heightened responsibility and there is even a legal precedent for this minimal view of technical computing. I know of at least one case in New York where the developer of a failed hospital program was not held responsible because software developers are "not professionals" and therefore have no higher standard of care for their clients' well-being. The judge used the absence of licensing as a justification for the claim that they were not professionals. There is now legal precedent for the view that software developers are merely hired guns and the customer should take the attitude of "let the buyer beware". But as in all legal cases there are other precedents. In California there have been two successful cases of computer malpractice. Malpractice requires the concept of negligence.
Licensing
The licensing of computing professionals is a very controversial and political question. Licensing generally means that to claim to practice a certain profession requires a government license, often administered through a professional organization. The general theory is that it is supposed to help those outside of the certified or licensed profession judge if someone else is capable of doing certain jobs. Licensing isn't currently required for computing professionals.
Licensing advocates appeal to The arguement for licensing are generally related to all of the current is founded on the belief that advance responsibility
The licensing and certification of computing professionals is a complex issue and needs to be clearly discussed. Several reactions to the mention of either of these topics has only served to confuse the issues. Because licensing is not voluntary, the reaction to it has been more vigorous than the reaction to certification. Those opposed to licensing raise issues of freezing technology, limiting research, causing loss of jobs, and unreasonable government interference in the practice of a trade; while those in favor of licensing talk about licensing as a cure-all for the ills surrounding computing and human interaction with the products of computing. The extremes of both of these positions obfuscate the underlying issues and possibilities of licensing. This paper develops a broad model of licensing which addresses most of the distracting issues raised by the opponents of licensing and which is not founded on the extreme optimism of those who view licensing as a cure-all. Given a level playing field of a viable model of licensing which addresses both the major problems with and the major goals of licensing, a discussion of the real issues with licensing computing professionals should be possible.
1.1 Reasons for Current Interest
The current interest in licensing computer professionals comes from a variety of sources. The public has become aware of the impact of computers on their lives and has come to realize the good computing not only impacts the quality of their life but that it also daily effects their safety. They have been made aware of systems that show the marks of: incompetent design, design with malicious intent, and design with fraudulent intent. Licensing is conceived by many as an attempt to control these all of these problems. Licensing should not be viewed as an attempt to ABSOLUTELY resolve these issues. This view of licensing has lead to specious arguments against the process of licensing computer professionals. Several of these arguments will be considered below.
If it is correct to say that licensing is not a cure-all, then why should we be interested in licensing? I argue that there is a model of licensing which will partially addresses these problems and might ameliorate some concerns. Furthermore, establishing a licensing standard will help establish computing as a profession. Those opposed to licensing argue that a movement toward professionalism is a self-serving excuse to justify charging more for providing computer services. This argument ignores some ethically significant aspects of professionalism. Software development already bears important marks of being a profession, viz., computing professionals have a specialized skill which directly impacts the quality and safety of the public. Practice of this profession requires extraordinary trust by the public and justifies a heightened standard of care. The professionalization of computing would make clear the computing professionals responsibility to the public.
The discipline of software development has advanced significantly and the public should be assured that the computing professional has knowledge of the best and safest way to develop computing systems. The possession of a computing license is no assurance that the a person with this knowledge will not engage in malicious or fraudulent activity, just as being a licensed physician is no guarantee that a physician will avoid malicious or fraudulent activity.
The professionalization of medicine provides at least two forces which discourage such behavior,viz., a code of ethics and professional standards of practice. The physician subscribes to a code of ethics which characterizes the primary obligation of the physician and purpose of the practice of medicine as the care of the patient. The professionalization of computing strengthens the concept that computer software has only one function- to perform some service for a client or customer. Recent computing codes of ethics (ACM and IEEE) have characterized the development of computer software as a service requiring heightened care for the customer.
Professionalization incorporates both a code of ethics and a set of professional standards. The physician is encouraged to follow the standards of the profession and the code of ethics because failure to do so will lead to the revocation of their license to practice. If computer professionals are licensed, they can be encouraged to follow professional standards in the same way. In neither case is it claimed that licensing makes a person competent or ethical. But licensing does make it more likely that the practitioner has knowledge of their disciplines best practices and has some social pressure to "do the right thing".
Without licensing there are no requirements for heightened care and no concept of professional malpractice. In several case, suits against software developers for malpractice have been overturned because they do not bear the marks of a profession. Software development was characterized as "simply a business upon which the public does not particularly entrust its care."(Hospital Computer Systems, Inc. v. Staten Island Hospital, 788 F. Supp. 1351 (D.N.J. 1992)).
Both inside and outside the profession it is recognized that software development has achieved a certain degree of maturity and that maturity implies both responsibility and accountability. Computing is no longer merely information processing. The software we develop controls the temperature inside of incubators which directly affects the life or death of infant. A cardiac patient should be able to expect a pacemaker that works. Computing's increase involvement in everyday life requires both a heightened sense of accountability and responsibility.
1.2 Negative Reactions
Any discussion of licensing computer professionals generates two types of criticism from software developers; a criticism of the concept of licensing and a criticism of potential implementations of licensing. Many of these criticisms are misdirected.
1.2.1 OBJECTIONS TO THE CONCEPT OF LICENSING
PROGRAMMING IS AN ART AND IS ENTITLED TO THE PROTECTION OF FREE SPEECH.
Some have argued that the state has no right to restrict their programming efforts. They believe in "Freedom of speech in programming." This view seems to ignore the questions of responsibility to users of computing's products. It is true the "Freedom of speech", as uncontrolled and undisciplined development of software used by the public would be limited by licensing. It does not seem to be a bad thing to introduce discipline in the development and testing of software which effects the public. It is not certain whether a program used to control the temperature in an incubator was the product of "free speech or the exercise of an art" but it is certain that the use of known testing techniques would have discovered the bug in the incubator temperature control software that was responsible for the loss of two children's lives. The argument that we should not license a physician because it would prevent "free speech" during a heart transplant seems absurd.
LICENSING IS JUST ANOTHER WAY TO RAISE TAXES.
Some have argued that "licensing is merely a revenue enhancer or a gimmick by states to make more money." Even if states use licenses or licensing to raise revenues, it does not mean that we ought to eliminate licensing electricians because the state also makes money from it. If the only purpose of licensing were to generate new taxes then it should be opposed. But there appears to be other good reasons for licensing for licensing software professionals.
YOU CAN'T LICENSE A PRACTICE THAT HAS NO STANDARDS OF PRACTICE.
Two related objections are: software development is not yet a fully matured disciple so there can be no standard of licensing and licensing will freeze software technology in its immature state. The absence of maturity is a strange standard. My teenage children are not yet fully mature- they don't know all the right answers- but they are expected to be responsible for those things which they already know. The science of software development is not yet a complete or static body of knowledge. This should not exonerate a software practitioner from following those testing and design principles that are already known. No one would say that because medicine is a not a completed science that we should not practice the best medicine we know how and that we should not hold the medical practitioner responsible for knowing and practicing this "best medicine."
LICENSING DOES NOT GUARANTEE COMPETENCE WILL BE APPLIED
Some objections claim that licensing is no guarantee of applied competence. This is correct, but it focuses on the wrong side of the question. The absence of licensing means that we have no way of knowing whether the developer has any knowledge of the current best practices. Licensing will only provide assurances that the developer knows the best practice and as stated above there are other pressures to encourage them to follow these practices.
PRESSURE OF BUSINESS SUCH AS SCHEDULE AND BUDGET OVER-RIDE "GOOD PRACTICE"
The pressures of budget and schedule are too strong to guarantee that the best practices will be followed. At this time there is no counter-pressures to resist the development of shoddy software justified by budget and schedule pressures. The introduction of licensing would introduce significant counter-pressures. A licensed professional puts their license at risk if they do not follow best practices. Licensing also introduces the legal pressure of malpractice suits directed at the licensee and their employer.
LICENSING WITH ESTABLISH A SOFTWARE MONOPOLY
This is correct only if a license is universally required to do any software development. Licensing could be required for certain areas of software development, like the avionics systems in airplanes, and optional in other areas. It would limit access to some areas the practice but that seems better than having life critical software being developed by practitioners of undetermined skill.
1.2.2 IMPLEMENTATION OF LICENSING
Licensing is sometimes opposed on the quite reasonable grounds that state legislatures do not adequately understand software development. If state legislatures developed the licensing standards in unfamiliar areas then we would all be in difficulty. Most state legislatures would agree with this claim that is why the standards for licensing are generally established by the appropriate professional organization. The state responsibility is merely to administer the test and determine if the professionally established standards have been met. They also charge for this service.
2. A MODEL FOR LICENSING COMPUTER PROFESSIONALS
Many of the objections cited above would be appropriate for some models of licensing, but I believe there is at least one model of licensing software professionals that meets most of the significant objections raised above. I propose a model for licensing computer professionals in which there is a national standard supported by computing professionals and implemented by state governments modeled on Professional Engineer's and Para-Medic's licensing standards. It would consist of:
1. A commitment to a body of knowledge - a 4 year degree. This will assure that practitioners will have at least come in contact with the current best practices.
2. A commitment to Re-Education - license expires every 5 years. A para-medic's certification expires every 2 years and they must be re-tested on the new medical practices that has been developed related to their specialty. The same principle should apply to the computing professional. Using database design practices of 20 years ago does not produce the best computing system. This principle contains no specification of how the practitioner must acquire this knowledge. Before being retested the practitioner is informed of the new areas to be covered. This emphasis on re-education completely meets the concern that licensing would freeze technology. Licensing would have the opposite effect, it would require that all licensed practitioners keep up with the changing technology.
3. The skill content will be determined by computer practitioners. The IEEE and the ACM have done this for undergraduate computer science education. The military, and other countries already have skills test that can be referred to.
4. There should be different levels of licensing based on skills and areas of competence. Para-medics, depending on their competence and training, are certified to administer different levels of care to patients. A computer practitioner should only undertake tasks that they are competent to complete. (This is consistent with ACM code of ethics).
5. Commitment to competence to apply the knowledge they have - 3 years working with another Licensed Computer Professional. Software development is not a purely theoretical discipline. Competence is gained and shown by applying the theories on has learned. This apprenticeship requirement is similar to CPA's.
6. Commitment to follow the standards - sanctions for violations of the best practices and violations of the code of ethics. This clearly introduces a counter pressure for any pressure to develop shoddy product.
This model of licensing meets the objections cited earlier and provides a base for further discussion.