Dead Sheepdog: Ethical Dilemmas in Software Development

Ethics is the consideration of what one ought to do in a given circumstance within a context of society’s and one’s own values.

Ethics within a given discipline takes into account considerations specific to that discipline and values shared among trained and experienced practitioners of good will within that discipline.

“(Ethics) refers to moral values that are sound, actions that are morally required (right) or morally permissible (all right), policies and laws that are desirable.”

Ethical considerations are often hard to navigate. Not just because of the consequences of certain actions but because of ambiguity and dissensus over the given situation and anticipated outcomes.

In this, ethics shares qualities with software development itself.

As Fred Brooks describes, software development is suffused with essential complexity. Attempts to “abstract away its complexity often abstract away its essence.”

Martin, M. and Schinzinger, R., Ethics in Engineering, McGraw Hill, Boston, 2005, pg 8.

“No Silver Bullet – Essence and Accident in Software Engineering”, Brooks, F. P., Proceedings of the IFIP Tenth World Computing Conference, pp. 1069-1076, 1986.

Copyright ©, Ken H. Judy 2008, All rights reserved.