Malik Aleem Ahmed, Jeroen van den Hoven
This paper discusses the responsibilities of freelance web developers. Much of the literature on responsibility in the IT field addresses the responsibilities of members of the IT profession. In this paper we investigate to what extent the responsibilities associated with IT professionals apply to freelancers.
Poorly developed and managed web applications and systems may cause harm to the users, clients and others groups in the society. Among the causes of poorly developed web applications are (1) ad hoc approaches, (2) the lack of proper standards and (3) usage of code without proper understanding. M.J. Taylor et al. (2002) carried out a survey of 25 UK based organizations regarding website development methodologies. They found that ad hoc approaches to website development are widespread. Development activity was not formalized or structured, there was an apparent lack of coding standards, resulting in impediments to adequate future website maintenance activities. Gotterbarn, D. (2001) noted that the ‘crossword puzzle solving approach’ for the development of applications taken by developers poses ethical problems. In the crossword puzzle approach the primary goal is to solve the problem exactly as it is presented to the developer. Freelance web developers have the tendency to take this approach. A survey of informal and professional web developers showed that only one respondent mentioned testing of security (Rosson, M.B. et al. 2005).
Polls posted on different freelancing web designing and development communities confirmed that more than 80% of the respondents (freelance web developers) have used free code for the development of web applications on one or more occasions. Re-usage of freely available malicious or bugged code in web applications and systems by freelance web developers without proper understanding, modifying, testing and/or debugging may give rise to many problems. There is a chance that the code was developed for malicious purposes and once used in live web applications and systems; users, client and others in the society may become vulnerable as a result. Even if the code was not developed for harmful purposes, it may still contain bugs and security vulnerabilities which may be exploited at a later stage by others.
Threats and vulnerabilities of using free code include hacking, identity theft, unauthorized access and use of private information, spamming, spread of harmful programs and server side problems which will be discussed in this paper.
This paper discusses the responsibilities of freelance web developers. We claim that freelance web developers are not only morally responsible for their work, but also that they have specific responsibilities which are usually only associated with members of well entrenched and institutionalized professions.
The relevant moral question is not “are they professionals?”, but “are they agents of responsibility and can they contribute to harm?”. It is obvious that they can. In order to justify this claim we will show in detail how the actions or inactions of freelance web developers affect the users, clients and others in the society and which types of responsibility are associated with them.
Suggestions for improving the situation comprise the following: (A) We emphasize that having a better understanding of the relationships with different entities (Employer-Employee, Client-Professional, Society-Professional and Professional-Professional as for example discussed by Johnson, D.G. 1995) helps freelancers to realize their responsibilities and perform their duties better. (B) We argue that a process of proto-professionalization is important and it is important for freelancers to become a member of an international association or community of computing or web development for freelance web developers. This may furthermore help to build the trust of clients and increase the credibility of freelance web developers. (C) Working in accordance with a four step model (i.e. 1. Search and download the code from reliable resources, 2. Scan, understand and analyze the code, 3. Modify, integrate, test and debug the code, 4. Upload, maintain and evaluate) elaborated in this paper also contributes to the development of safer and more adequate web applications and systems.