1. Introduction
The issue of professional responsibility in the development of information and communication technologies is one of the major concerns in the field [
1]. The continued reporting of ethical mishaps resulting from software suggests that software engineers may not be considering their professional responsibility for their work, such as their especial responsibility pertaining to ethical obligations. Being responsible professionally requires practitioners to observe the standards of practice of the profession, assume responsibility for the consequences of work outcomes, behave ethically and safeguard professional and personal integrity. Indicators of one being a responsible professional include taking responsibility for one’s work, demonstrating ethical competence, exercising science informed decision-making and adhering to standards of practice. With this said, this article considers and works with the following definition of responsibility given by Solbrekke and Englund [
2]: “
a moral obligation assumed by oneself, or bestowed upon a person to be used… to be and act for another”.
Unfortunately, software development work being pressure intensive does not assist the endeavours to promote ethical professional responsibility amongst software developers. Software developers are inevitably confronted with the constant need to make decisions based on competing needs, such as client demands, costs, operational efficiencies, schedules and technical standards, within limited time frames. These result in time pressures which can adversely affect decision-making [
3]. In reviewing previous studies, Kuutila et al. [
4] demonstrates how time pressures can also impact negatively on the various aspects of the software process including quality assurance, communication and coordination, software process improvement and user involvement. For example, time pressures lead to compromises on the quality of code and results in costly code reworks. In addition, developers rush to implement solutions or reuse badly written code, resulting in future problems, especially in the mobile development [
5] and web development fields [
6], which are characterized by limited time frames for innovative products to reach the market. Furthermore, it is also worth noting that the nature of software engineering is complex, imperfect, unpredictable [
7] and cannot be changed. It continues to be difficult to foresee and accommodate all unexpected challenges [
8]. Regardless of these challenges, Dodig-Crnkovic and Crnkovic [
9] affirm that “
It is an engineer’s responsibility to foresee and prevent as far as possible any severe consequences of product/system malfunction”. Therefore, software engineers should at all times be alive to their ethical responsibilities.
One of the ways of ensuring that software engineers attend to the above cited challenges, is to bring ethical responsibility to software development practice. For example, the software engineering profession requires its members to practice software engineering in a professional and ethically responsible manner [
10]. The realisation of the importance of this has come to the fore for several reasons. Firstly, because software plays an important role in all aspects of humanity; society’s increased dependence on technology obviously increases its vulnerability through associated technological failures [
11]. Software engineers being conscious about their responsibilities can increase attention towards curbing the vulnerabilities emanating from possible software failures [
11]. Secondly, because the software engineering profession advocates for the public good in all its software development initiatives [
12], it invokes the need to upscale the assumption of responsibility. Thirdly, because software professionals have an enormous impact on the lives and well-being of others [
13], the wielding of power in terms of decision-making and technical expertise inherent in software development requires caution [
14]. Furthermore, studies such as those by [
6,
8,
10,
15,
16,
17,
18] show the need for software engineers’ ethical responsibility as part of their professionalism. In the acknowledgement of the importance of taking responsibility in professional practice, it is not surprising that [
1] determined that the development of professional responsibility is one of the critical competences focused on in higher education. However, in contrast, [
18], in their survey of the literature, found that responsibility as an ethical issue accounted only for 4% of issues identified, the lowest amongst other issues such as agency, autonomy, freedom, identity, justice and privacy. Therefore, attention by researchers on the ethical responsibility to be assumed in software development is necessary.
Despite this heightened need for competencies to assist with responsibility in software development, researchers such as [
1,
2,
16] worryingly cite the lack of focus on professional responsibility. It is therefore important for research studies to investigate if, in practice, there is an assumption of ethical responsibility by those involved in the development of software [
1]. Furthermore, considering that software technology evolves, understanding the way practitioners perceive their ethical responsibility provides insights into how they deal with the ethics of newer systems [
14]. Therefore, the assessment of whether software development key stakeholders should be held ethically responsible for their contribution to software development is important. However, previous studies about ethical responsibility, although they have studied several aspects of ethical responsibility, have been limited to assessing responses from a singular stakeholder group in software development, such as practitioners alone. As a result, they have lacked focus on comparing responses or perceptions from students learning to become future software engineers, academics contributing to the teaching of software development courses and industry-based software practitioners. These studies have left a gap in the understanding of the responsibilities of key stakeholders in software development from the perspectives of the above cited software engineers. This study intends to evaluate the perceived ethical responsibilities in software development by juxtaposing the perceptions of students, educators and industry-based software practitioners on the ethical responsibilities of software development key stakeholders. This will assist in bringing to the fore the ethical responsibilities of software development key stakeholders. Based on that, the research question which the study seeks to answer is: “
How do the perceptions of students, educators and industry-based practitioners compare in terms of the ethical responsibility of software development key stakeholders?”.
This study is an extension of a previous study by Marebane et al [
17] which will be further discussed in the
Section 2. That study was conducted to determine the perceived levels of ethical responsibilities of software engineers, as reported by educators in a South African university. Hence, this new study proceeds to analyse data collected from students, lecturers and software engineers practising in the industry who were asked to respond to a survey about the ethical responsibilities of various software development key stakeholders, such as developers, analysts, quality assurance professionals, management, and users.
The next section presents a literature review outlining the theoretical foundations underpinning this research work.
Section 3 outlines the methodology of the study,
Section 4 presents and discusses the research results, and
Section 5 provides a conclusion and recommendations. Lastly, the limitations of the study and recommendations for future work are outlined in
Section 6.
3. Methodology
The purpose of this study is to determine if there are differences in the perceptions of students, lecturers and software engineers employed in the industry regarding the ethical responsibilities attributed to various software development key stakeholders. To achieve the objective of this study data were collected through a survey which was shared on an online platform for 12 months from 2020 to 2021. A total of 561 responses were received, including 44 from computing academics, 103 from an unknown population of industry software practitioners and 414 student responses from a population of approximately 6000 students.
To ensure the validity of the questions in the survey, senior and experienced colleagues reviewed the questions. The data collection instrument was also reviewed through relevant research committees such as the ethics review committee within the university. Based on their feedback, the questions were improved. Furthermore, statistical tests to assess the validity of the data were conducted. Quantitative statistical techniques were used to analyse the data to ensure the results were as intended. A p-value of 0.05 was applied and if the calculated p-value was less than 0.05 then the study would conclude that there was a significant difference between what was being tested. The study employed a quantitative approach, using descriptive and variance statistical analysis to analyse the data.
The data contain responses to twelve questions coded as Resp1 to Resp12 as in
Table 1. Resp# refers to a question in the data collection instrument used to probe for responses about a particular responsibility. The data relate to the ethical responsibilities of various software development key stakeholders involved in software development regarding quality of work, testing of software, security of data processed by software and the use of software for illegal or unethical purposes.
To assess the responses, descriptive statistics in the form of frequencies and percentages were used to summarise the responses, whilst the mean and standard deviation were applied to evaluate the responses (that is [Very responsible], [Partly responsible], [Not really responsible] and [Do not know]).
5. Conclusions, Contributions and Implications
This study sought to compare the perceptions of software development engineers, namely students, lecturers and software practitioners, by asking them about their perceptions of the ethical responsibilities of software development key stakeholders. Firstly, the results show that the majority of the respondents across the three categories believe that software practitioners are to be held ethically responsible for their behaviour. This view should bring comfort to millions of consumers of software products. However, judging by numerous reports of the incidences of unethical behaviour from some software practitioners, the expressed perception is cold comfort at the same time.
The study found that there is no significant statistical difference in how students, educators and software practitioners perceive the ethical responsibilities of software development key stakeholders. Simply put, all the three categories believe that key stakeholders in software-related activities must be held ethically responsible for their actions. This finding is a key contribution of our study to the field of software engineering ethics. Many of the prior studies on ethical responsibility mainly focused on a particular group (either students, academics or those in practice) of software engineers. For example, studies by [
2,
31] focused on students, whilst a study by [
17] focused on software engineers in academia. This study extended the inquiry into ethical responsibility to include those who are in the software development industry. The insights brought by this extension are a further contribution to the body of knowledge.
Lastly, the organisation of the responsibilities related to key stakeholders in software development, as shown in
Table 1, provides a framework which can be used by other researchers pursuing studies in this area. The development of this framework is yet another contribution of the study to the body of knowledge.
6. Limitations and Future Studies
This study, as is the case with other research studies, has limitations which should be considered when reading it. Firstly, the study’s data were collected within the South African environment and the study did not include all key stakeholders in software development. Therefore, the findings cannot be generalized to software development environments in other countries, as their cultures, practices and experiences may be different. Extending this study to other countries, and also including other key stakeholders such as users of software, can benefit the understanding of how key stakeholders view the ethical responsibilities of software engineers. This will further assist to remedy the limited scope of this study in terms it being localized to one country and having not included an extensive list of key stakeholders.
Furthermore, future studies can include an examination of the demographic elements of the respondents in relation to how they view the ethical responsibilities of software engineers. Conducting such studies can assist in generalizing findings across the relevant environments and demographic elements of the respondents.