Abstract
The purpose of this article is to propose an ethical framework for software engineers that connects software developers’ ethical responsibilities directly to their professional standards. The implementation of such an ethical framework can overcome the traditional dichotomy between professional skills and ethical skills, which plagues the engineering professions, by proposing an approach to the fundamental tasks of the practitioner, i.e., software development, in which the professional standards are intrinsically connected to the ethical responsibilities. In so doing, the ethical framework improves the practitioner’s professionalism and ethics. We call this approach Ethical-Driven Software Development (EDSD), as an approach to software development. EDSD manifests the advantages of an ethical framework as an alternative to the all too familiar approach in professional ethics that advocates “stand-alone codes of ethics”. We believe that one outcome of this synergy between professional and ethical skills is simply better engineers. Moreover, since there are often different software solutions, which the engineer can provide to an issue at stake, the ethical framework provides a guiding principle, within the process of software development, that helps the engineer evaluate the advantages and disadvantages of different software solutions. It does not and cannot affect the end-product in and of-itself. However, it can and should, make the software engineer more conscious and aware of the ethical ramifications of certain engineering decisions within the process.
Similar content being viewed by others
Notes
The eight major engineering principles (Hambling 1995) are: “plan before building” Planning requires knowledge, experience and availability of resources, planning tools and finances/cost. If these are the constraints on planning, subsequently the quality of planning is predetermined. Assure compatibility; the idea is that all producers are working according to the same standards, Design testing procedures before building; check designs before commitment; configuration management; quality assurance and quality control—learn from mistakes (reuse); know where you’re going.
In 2004 they further clarified this definition (IEEE 2004): “Software engineering is about creating high-quality software in a systematic, controlled, and efficient manner. Consequently, there are important emphases on analysis and evaluation, specification, design, and evolution of software. In addition, there are issues related to management and quality, to novelty and creativity, to standards, to individual skills, and to teamwork and professional practice that play a vital role in software engineering”.
References
Amity, E. (2014). Agile and proffesional ethics. M.Sc. Thesis in software engineering. SCE - Shamoon College of engineering, Israel.
Basart, J. M. (2013). Engineering ethics beyond engineers’ ethics. Science and Engineering Ethics, 19(1), 179–187.
Bayles, M. D. (1982). Professional ethics. Belmont, CA: Wadsworth Pub. Co.
Boisjoly, R. P., Curtis, F. E., & Mellican, E. (1989). Roger Boisjoly and the challenger disaster: The ethical dimensions. Journal of Business Ethics, 8(4), 217–230.
Braude, E. J. (2011). Software engineering: Modern approaches. NewYork: Wiley.
Brooks, F. P. (1986). No silver bullet—Essence and accident in software engineering. In Proceedings of the IFIP Tenth world computing conference (pp. 1069–1076).
Davis, M. (1996). Defining ‘engineer’: How to do it and why it matters. Journal of Engineering Education, 85, 97–101.
Davis, M. (1999). Professional responsibility: Just following the rules? Business and Professional Ethics Journal, 18, 65–87.
De George, R. T. (1981). Ethical responsibilities of engineers in large organizations: The Pinto case. Business and Professional Ethics Journal, 1(1), 1–14.
Dodig-Crnkovic, G., & Feldt, R. (2009). Professional and ethical issues of software engineering curriculum applied in swedish academic context. In HAoSE 2009 first workshop on human aspects of software engineering. Orlando, Florida.
Farrell, B. C. (2002). Codes of ethics: Their evolution, development and other controversies. Journal of Management Development, 21(2), 152–163.
Foot, P. (1978). Virtues and VICES and other essays in moral philosophy. Berkeley and Oxford: University of California Press and Blackwell.
Ford, G., & Gibbs, N. (1996). A mature profession of software engineering. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University.
Friedman, B. (2012). The envisioning cards: A toolkit for catalyzing humanistic and technical imaginations. In Proceedings of the SIGCHI conference on human factors in computing systems. ACM.
Gaumnitz, B. R. (2004). A classification scheme for codes of business ethics. Journal of Business Ethics, 49(4), 329–335.
Gotterbarn, D. M. (1999). Computer society and ACM approve software engineering code of ethics. Retrieved from http://www.computer.org/cms/Computer.org/Publications/code-of-ethics.pdf
Greenwood, E. (1957). Attributes of a profession. Social Work, 2, 44–55.
Hambling, B. (1995). Managing software quality. New York: McGraw Hill.
IEEE. (1993). IEEE standards collection. In IEEE standard glossary of software engineering terminology. IEEE Computer Society.
IEEE. (2004). Software engineering 2004 curriculum guidelines for undergraduate degree programs in software engineering. Washington, DC: IEEE computer society.
IEEE. (2009). Curriculum guidelines for undergraduate degree programs in software engineering. IEEE Computer Society. Retrieved from http://sites.computer.org/ccsepp15
Kasher, A. (2005). Professional ethics and collective professional autonomy. Ethical Perspectives, 11(1), 67–98.
MacIntyre, A. (1981). After virtue: A study in moral theory. Notre Dame, IN: University of Notre Dame Press.
Miller, K. W. (2011). Moral responsibility for computing artifacts: The rules. IT Professional, 13(3), 57–59.
Mnkandla, E. (2009). About software engineering frameworks and methodologies. In AFRICON, 2009. AFRICON’09. IEEE.
Mullet, D. (1999). The software crisis. Benchmarks Online—A monthly publication of Academic Computing Services of the University of North Texas Computing Center, 2(7). https://www.unt.edu/benchmarks/archives/1999/july99/crisis.htm.
Naur, P. & Randell D. B. (1968). Software engineering: Report of a conference sponsored by the NATO Science Committee. Garmisch, Germany: The first NATO Software Engineering Conference in 1968 Garmisch, Germany. Retrieved October 7–11, 1968
NIST. (2002). New Release of June 28, 2002. The National Institute of Standards and Technology.
Parsons, T. (1939). The professions and social structure. In T. Parsons (Ed.), Essays in sociological theory (pp. 34–49). New York: The Free Press.
Pressman, R. (2010). Software engineering: A practitioner’s approach (7th ed.). New York: McGraw Hill.
Putnam, H. (2002). The collapse of the fact/value dichotomy and other essays. Cambridge: Harvard University Press.
Schmemann, S. (1997). 2 Die at games in Israel as bridge collapses. Retrieved from http://www.nytimes.com/1997/07/15/world/2-die-at-games-in-israel-as-bridge-collapses.html
Sommerville, I. (2004). Software engineering, international computer science series (7th ed.). Boston: Addison Wesley, Pearson Education.
StandishGroup. (n.d.). Retrieved from http://www.standishgroup.com/newsroom/chaos_2009.php
Tilmann, G., & Weinberger, J. (2004). Technology never fails, but project can. Baseline, 1(26), 28.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Lurie, Y., Mark, S. Professional Ethics of Software Engineers: An Ethical Framework. Sci Eng Ethics 22, 417–434 (2016). https://doi.org/10.1007/s11948-015-9665-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11948-015-9665-x