CS854 Commentary -- Week 10: Professional ethics


  • All TA comments written in red.

    According to Gotterbarn, establishing a licensing board for computer professionals would be beneficial to individual developers, the companies that hire them and the group that purchases products from those companies. Though this concept does sound promising it is limited on what it can actually provide to all three stakeholders.

    For example, one of the main benefits of establishing a professional licensing body, according to Gotterbarn is that it would "lay the foundation for computing malpractice suits." Suing individual developers and holding the accountable for their workmanship does sound ideal and fair but this point (1) of view doesn't take into consideration that it's usually not just the fault a single person, but the fault of many people. Companies, not individuals, develop most major applications and software products that are bought by consumers and business. These companies have a management structure in place, which make crucial decisions as to how things are done. Johnson's conflicting loyalties scenario demonstrates this point perfectly: The employee knows that the system requires more development time before it will be ready but because the project is already late and over budget, the manager ignores this information and decides to carry on as if nothing was wrong. Mandatory licensing and certification would not do anything to change this situation, unless it somehow obtain the right to forbid employers that hire their members from terminating their employment or contract. Gotterbarn counters by saying that licensed professionals would not dare risk losing their license for towing the company line. That's only true if the professionals were hired independently from the company. The pressures to conform will be a lot higher if the professionals were working directly for the company. Protecting a member from legitimate safety concerns in the workplace falls under the domain of labour unions, not professional bodies. The whole professional licensing board concept is just a way of trying to improve software quality. It should also be noted that in this scenario, the company itself, neither the manager nor the programmer, would be held liable if any major problems occurred. Shifting the liability to individual programmers would probably make companies more cavalier with risky and shoddy software and result in poorer quality overall.

    Despite whatever exams that prospective members must take, this board can't guarantee that its members will write good code. It can only accurately say that their members know how to write good code and since becoming one of our members has not failed seriously enough yet to get him/herself kicked out (yet), so therefore probably will write good code for you.

    Despite these limitations there are some good reasons for why a licensing board should be established. It is not uncommon for moderately complex computer programs to have hundreds of thousands of lines of code. Though the ideal licensed professional programmer may be careful and disciplined with his/her work, (previous readings have noted that) it statistically inevitable that errors are introduced into the program. The only way to find these errors is to either do a line by line review of the code and use formal methods (which currently don't scale well) to prove the correctness of the code or run tests on it to detect unexpected behaviours. In order to eliminate biases (unintentional or otherwise) the testing should be done by different people, not the same ones who coded system. Whatever form the licensing board takes on, it should also have a framework in which it would allow independent verification of the quality of the system of the coding and testing phases. (And perhaps the requirements and specification stage as well.)

    I propose a little idea that would help justify the existence and purpose of professional review boards. Gotternbarn mentions different tiers of expertise certification within the organization, drawing a parallel to how some paramedics are trained to handle more complicated cases than others. Publicly traded companies often hire independent auditors to examine their year-end accounting work and verify that the results are correct, accurate and derived from the proper formulas. Shareholders are then able to "trust" the companies' statements of how well or poor they are performing, as they know that someone with a reputation for accuracy had verified the results. If independent and certified professionals were to test a company's software and give it a passing grade, then perhaps that company's clients would be more willing believe that the software is indeed of higher quality. The corollary to this is that if clients demand independent testing and verification by industry recognized professionals, then perhaps the company would focus more putting out a high quality product. This would benefit all stakeholders.


    You have done a good job weighing some of the advantages and limitations of licensing.

    I think employees who are license by a professional board might gains some power in the workplace, even if their professional status does not prevent them from being fired. They would have some authority when protesting company actions or disagreeing with company policy. It is easier to defend "I can't do that since it conflicts with my obligations as a professional" than "I can't do that because I think it's wrong".

    I think your ideas of establishing independent "software audits" could produce a significant improvement in software quality, although performing such an audit would be quite time consuming.

    (1) This is a good point. It is an important way that a computer professional is different than a medical professional, for example.

    10/10

    Back