How do software engineers contribute to the good life for others?

(Adapted with permission from An Introduction to Software Engineering Ethics by Shannon Vallor and Arvind Narayanan.)

Before starting this experience, please read What do we mean when we talk about ethics?.

There is a second way in which we need to broaden our understanding of engineering ethics. Ethics is not just about avoiding harms, as a narrow focus on preventing catastrophic events might make us believe. Ethics is just as much about doing good. ‘Doing good’ is not something that matters only to missionaries, social workers and philanthropists. To live a ‘good life’ is to make a positive contribution to the world through your existence, to be able to say at the end of your life that in your short time here, you made the world at least somewhat better than it would have been without you in it. This is also how we think about the lives of those who have left us: when we mourn our friends and loved ones, we comfort ourselves by remembering the unique comforts and joys they brought to our lives, and the lives of others; we remember the creative work they left behind, the problems they helped us solve, and the beautiful acts they performed, great and small. Could a life about which these things could not be said still be a good life?

If the good life requires making a positive contribution to the world in which others live, then it would be perverse if we accomplished none of that in our professional lives, where we spend many or most of our waking hours, and to which we devote a large proportion of our intellectual and creative energies. Excellent doctors contribute health and vitality to their patients and medical knowledge to their interns and colleagues; excellent professors cultivate knowledge, insight, skill and confidence in their students and contribute the benefits of their research to the wider community; excellent lawyers contribute balance, fairness and intellectual vigor to a larger system of justice.

Questions for discussion:

  1. What sorts of things can excellent software engineers contribute to the good life?

  2. What kinds of character traits, qualities, behaviors and/or habits do you think mark the kinds of people who tend to contribute most in these ways?

  3. Which sections of the ACM Code of Ethics or the Software Engineering Code of Ethics and Professional Practice indicate the need to do good as opposed to merely avoiding harm?