Share via


Professionalism and the professional tester

I am quite surprised by some rather passionate objections by some individuals over my use of the word “professional” when I refer to individuals who choose software testing or development, or any other role in the production of software as a career choice. So, let me clarify upfront that when I preface the word tester with the word professional in my writing I am referring to the denotative meaning of the word in published dictionaries. In this context when I make reference to a professional tester I am writing about someone “who is expert at his or her work” (Random House Unabridged Dictionary), or “having or showing great skill” (The American Heritage Dictionary of the English Language).

But, I was even more surprised by this month’s issue of Software Testing & Performance in which Scott Barber also discussed the word 'professional' at length. I have read a lot of Scott’s previous articles and I think he demonstrates above-average skills in his chosen profession. I also agree with his statement the majority of individuals in the software fields do conduct themselves as professionals and those who do are "afforded the respect of any professional". I am not sure what this article has to do with Performance testing, and frankly I think the article is simply playing with words, but it also unfortunately misrepresents certain facts.

For example, one argument presented in the article concerns the legality of software roles not being considered professions in the United States. However, the U.S. Department of Labor web site lists Computer programmers and Computer software engineers under Professional and related occupations. (“Software engineers working in applications or systems development analyze users’ needs and design, construct, test, and maintain computer applications software or systems. ”) I also found a few states that actually have open positions for computer programmers ('programmer' being synonomous with 'developer' in the context of software discussions).

Another fallacious argument presented in this article is based upon (Pennsylvania) state law. The law sited in the article regards the licensing of individuals to perform “…any type of personal service to the public…” Now, I am definitely against requirements for licensing anyone in the software professions, and, there is no legislation that I am aware of pushing to license software developers or testers because the majority of software developers and testers simply do no perform a personal service to the public.

All states do require licensing of certain occupations for various reasons. So, does that mean all people in licensed occupations are professionals in the context presented in the article? In Washington (and other states), the state requires licensing of exotic dancers. Exotic dancing seems to meet (at least part of) the criteria as an “established profession,” but because software testers are not licensed, certified, or granted permission by some bureaucratic state agency the job of software testing or development somehow falls short of the label “profession” because it is not licensed by the state. Poppycock!

The article also references Wikipedia web site. Wikipedia states “A profession is an occupation that requires extensive training and the study and mastery of specialized knowledge, and usually has a professional association, ethical code and process of certification or licensing.” The operative word here being “usually.” There are many accountants that work for large businesses (and Wikipedia specifically lists accountants as professionals) yet whom are not licensed by the state. I like Wikipedia, and the information is usually good, but sometimes the information is not always complete or may even be biased by the individual contributor.

Also, contrary to a claim in the article regarding no precedence for tort applied to software, one only has to read Cem Kaner’s paper Computer Malpractice. Kaner clearly outlines the difficulty in prosecuting malpractice (tort) cases against individuals in the software industry, but anyone who is contracted to provide a service to another individual can be held liable if the contractor causes damage. In other words, if someone pays you to develop a program and that prorgram erases data on their computer you will most likely be sued for negligence or trespass to chattels. (According to Wikipedia “The trespass to chattels cause of action, frequently asserted in recent years against Internet advertisers and email spammers, is often included in complaints against spyware companies.” Also, copyright infringement is a strict liability, tort, or crime.

 

Conversely, developers who are employees of companies can usually not be directly sued for negligence because they typically do not own the exclusive copyrights to the code they produce. The intellectual property rights of the code developed by employees of a company belong to, or are shared with the company. However, the company can certainly take action against employees for sabotaging a software project, or otherwise unprofessional conduct. Another aspect of professionalism is the implicit or explicit idea of accountability. Testers are implicitly accountable to the team to provide information and help expose potential risks. Certainly there are defects testers miss and there is code that is not exercised, and there are tests that aren't executed. So (it is unlikely) testers cannot be explicitly accountable for an undetected defect because we can't test everything.

 

I also do not concur with a statement in the article that “you must demonstrate no minimum skill or knowledge to become a software developer or tester.” In the companies where I have worked skill and knowledge in development and/or testing is assessed during the job interview and certainly required for a position on the teams I have worked on. This is not to say that unskilled and/or untrained persons have not been hired into testing roles in the past. But, the days of massive teams of unskilled, untrained, and/or unknowledgeable “bug-finders” banging away on keyboards to beat the bugs out of software are quickly coming to an end as many companies are requiring greater technical skills and knowledge for testing positions into the industry. (This is a controversial subject, and whether good or bad, many companies are changing or enforcing their requriements of software testing positions.)

However, I wholeheartedly agree with Scott’s statement regarding one’s commitment to quality and ethics are most important. But, simply because someone adopts an official code of ethics, is licensed by some bureaucratic government agency, or joins a restricted or regulated association doesn’t necessarily make them a professional. (There are plenty of lawyers and some clergymen whom I don’t consider at all professional.) To me a professional is a person who excels in their profession. A professional adheres to a set of ethics not because of fear of reprisal from some regulated association, but because of their innate principles. So, when I refer to a professional tester my context refers to people who strive to do the best they can, who stay abreast of changing technologies, who constantly strive to improve their skills and pursue the study and mastery of specialized knowledge relevant to our field.