1. Introduction
When human values and needs are the basic requirements of technical developments, then it is necessary to teach future requirements engineers in the elicitation, analysis, and evaluation of requirements concerning conflicts in values and needs and in their treatment. With the Ethical Guidelines of the German Informatics Society [
1] or the ACM Code of Ethics and Professional Conduct [
2], there are concepts that address this issue. To check the practical impact of these concepts, the module handbooks of all 108 computer science bachelor courses in Germany were looked at.
The rest of the article is structured as follows: The next section presents the ethical guidelines, followed by a section on the practical impact of those guidelines on the curricula of bachelor courses in computer science in Germany. The last section provides a blueprint for a software engineering course.
2. Ethics, Values, and Human Needs in Computer Sciences Bachelor Courses
To shape technologies in accordance with human values and needs, it is necessary to claim human values and needs as requirements of technology. Therefore, it is essential that requirements engineers be educated in the elicitation, analysis, and evaluation of requirements, and in the treatment of conflicts in values and needs. To achieve this, there are a variety of concepts such as the Ethical Guidelines of the German Informatics Society [
1] or the ACM Code of Ethics and Professional Conduct [
2].
“The ACM Code of Ethics and Professional Conduct expresses the conscience of the profession” [
2] and is conceived to guide all computing professionals. Furthermore, it should be the basis for the mediation of conflicts. The ACM Code is subdivided into four sections: general ethical principles, professional responsibilities, professional leadership principles, and compliance with the code.
The general ethical principles are:
- 1.
Contribute to society and to human well-being, acknowledging all people are stakeholders in computing;
- 2.
Avoid harm;
- 3.
Be honest and trustworthy;
- 4.
Be fair and take action not to discriminate;
- 5.
Respect the work required to produce new ideas, inventions, creative works, and computing artifacts;
- 6.
Respect privacy.
The professional responsibilities include a commitment to:
- 7.
Strive to achieve a high quality in both the processes and products of professional work;
- 8.
Maintain high standards of professional competence, conduct, and ethical practice;
- 9.
Know and respect existing rules pertaining to professional work;
- 10.
Accept and provide appropriate professional reviews;
- 11.
Provide comprehensive and thorough evaluations of computer systems and their impacts, including the analysis of possible risks;
- 12.
Perform work only in areas of competence;
- 13.
Foster public awareness and an understanding of computing, related technologies, and their consequences;
- 14.
Access computing and communication resources only when authorized or when compelled by the public good;
- 15.
Design and implement systems that are robust and usably secure.
The professional leadership principles are:
- 16.
Ensuring that the public good is the central concern during all professional computing work;
- 17.
The articulation, encouragement of acceptance, and evaluation of fulfillment of social responsibilities by members of the organization or group;
- 18.
Management of personnel and resources to enhance the quality of working life;
- 19.
The articulation, application, and support of policies and processes that reflect the principles of this code;
- 20.
Creating opportunities for members of the organization or group to grow as professionals;
- 21.
Using care when modifying or retiring systems;
- 22.
Recognizing and taking special care of systems that become integrated into the infrastructure of society.
Compliance with the code includes a commitment to:
- 23.
Uphold, promote, and respect the principles of this code;
- 24.
Treat violations of this code as inconsistent with membership in the ACM.
With the ethical guidelines, the German Informatics Society wishes to offer an orientation to all persons who are involved in the design, manufacture, operation, or use of IT systems [
1]. The guidelines comprise twelve sections: professional competence, expertise and communicative competence, legal expertise, powers of discernment, conditions of employment, organizational structures, teaching and learning, research, courage of convictions, social accountability, facilitating self-determination, and the German Informatics Society as authority of conflict mediation [
1].
3. From Concepts to Reality
How do these concepts spread into the world, i.e., into the minds of requirements engineers?
The section concerning the teaching and learning of the ethical guidelines of the German Informatics Society postulates critical thinking and the acceptance of individual and collective responsibilities.
The German Informatics Society describes interdisciplinary basic competence in informatics and society in the recommendations for the curriculum for bachelor courses in computer sciences [
3]. These recommendations include the teaching of basic concepts of privacy, measures to protect personal data, basic concepts of copyright versus open culture, basic concepts of computer criminal law, main features of information economy and their implications on information systems, and the main features of the ethics of computer professionals. In these recommendations, sustainability and environmental aspects are missing.
In Germany, there are one hundred and eight universities and universities of applied sciences with courses in computer sciences (German: Informatik) graduating with a bachelor.
Most of them have courses in human computer interaction, and also courses in IT security and privacy. Sixty-one of these institutions do not offer courses in informatics and society. Two institutions offer courses in ethics as a minor. In twelve institutions, these courses are part of the “Studiumgenerale”. Fifteen institutions offer an elective module. For students of twelve institutions, informatics and society is mandatory and varies between lectures and seminars. In three institutions, informatics and society are part of the introductory lecture. One institution teaches informatics and society as part of the master’s study. Additionally, for one institution, it was not possible to find out what they offer.
This shows that it is necessary to implement informatics and society in sixty-two bachelor courses. Furthermore, it has been desirable to have a more homogeneous structure in the subject. To have a broader commitment to informatics and society is mandatory, and can be the basis for a more standardized module description.
Beyond that, maybe the responsibility against the various stakeholders and the analysis and evaluation of these dilemmas can be part of courses in software engineering, as shown in the following examples. The Hochschule Mannheim University of Applied Sciences has a module named “software engineering 2”, in which ethics is one of the topics related to requirements analyses, IT security, usability, system architecture, quality assurance, and testing. The learning target is to understand the value of the human–machine–interaction and IT security for a concrete project.
Additionally, the teaching of sustainability is becoming more important, and with the Ulm University of Applied Sciences and the University of Würzburg, there are good examples of how to achieve this.
The Ulm University of Applied Sciences offers students a module entitled Environmental Impact. The content of this module is the impact of the activities of humans on the environment, their scientific principles, and their impact on society.
The University of Würzburg offers a bachelor’s degree in Informatik und Nachhaltigkeit (computer science and sustainability). Sustainability and ecological awareness are the societal issues and driving economic factors of the future. The new course focuses on the relationship between people and their immediate environment. The most important subareas of computer science are taught as part of the bachelor’s degree. In addition, socially and economically relevant topics on the environment and sustainability, as well as concepts for sustainability and their evaluation, are integrated into the course. The actual meaning of sustainability is one of the topics. How to gather ecology, economy, and ethics under one’s hat is one of the issues of the new degree course. Further topics include answers to questions such as how can we develop sustainable IT systems, and how can computer science lead to sustainable approaches in a problem-oriented and innovative manner in areas such as environmental issues?
4. An Example of System Design in Accordance with Human Values and Needs in Sustainability Design
In 2015, scientists declared the Karlskrona Manifesto as an output of the Third International Workshop on Requirements Engineering for Sustainable Systems [
4]. They understand sustainability as a set of dimensions, including social, individual, environmental, economical, and technical dimensions. Requirements engineering consists of a variety of activities such as feasibility study, stakeholder identification, requirements elicitation, analysis and negotiation, documentation, validation, and management.
In a feasibility study, strengths, opportunities, threats, and weaknesses of a future system should be shown in relation to all five dimensions of sustainability. In order to represent sustainability requirements in software systems, relevant stakeholders must be identified and engaged with the requirement engineering process. Within requirements elicitation, an explicit and deliberate treatment of sustainability as a topic of relevance to other areas of requirements is a key guideline. In the analysis and negotiation process, conflicts may occur with other requirement issues. Established negotiation techniques can be used to resolve these conflicts. However, the main peculiarities of sustainability requirements are their longer time span. When documenting sustainability requirements, the right balance with a detailed specification which avoids duplication is the challenge. When undertaking the validation of sustainability-related requirements, one needs to ensure that all stakeholders concerned with the given sustainability requirement have a consistent, shared view on its content and implications. Sustainability requirements are multifaceted (five different dimensions), shared and affected by several simultaneous stakeholders, and can change due to a change in the perceptions of one of these stakeholders. Because of this, it is necessary that the stakeholder have a shared understanding of the sustainability requirements and their relevance.
To teach software engineering for sustainability, Penzenstadler et al. [
5] offered a blueprint for a respective course. The course consists of the following modules: sustainability foundations, principles of sustainability design, rich pictures, stakeholder and goal models, process modelling, software engineering, SysML, design thinking, and sustainability analysis. Sustainability foundations explain the five dimensions of sustainability, orders of effect (direct, indirect, and structural), application domains, and sustainable development goals. The principles of sustainability designs include substitution, decoupling, and dematerialization. The method rich pictures is introduced, and provides a mechanism to create a detailed representation of a complex or ill-defined problem. Additionally, the concepts of roles and reference models and business process modelling are introduced. Examples for sustainable software engineering are provided. In the remaining modules, SysML, design thinking, and sustainability analysis are introduced.
5. Conclusions
It is necessary to teach sustainability in software engineering; it is possible to achieve this, but the journey towards its realization is long. To reach this goal, it is necessary to have courses in the sustainability of information systems in more universities. Therefore, it is necessary to implement sustainability in documents such as the SWEBOK [
6], in the curriculum of more bachelor courses, and to have more professorships for this topic. At the end of the progression, there is likely to be more bachelor courses in computer science and sustainability, such as the course at the University of Würzburg.