Document Type


Subject Area(s)

Computer Science and Engineering


In this column I explore some far-reaching issues of software development that lie at the intersection of robust software and sociopolitical systems. These two areas might seem unrelated-and most software developers would likely be horrified to have politics intrude on their programming efforts-but the intersection occurs through these premises: software systems administer and control much of our societal infrastructure; people would appreciate and better accept that control if they had input into the nature of the control and the systems' behavior; designers can make software systems more robust through redundancy, in which different versions of software components might cover for each other's mistakes and limitations; and if many people could contribute software to societal control systems, the systems might be more robust and better represent people's interests. The need for redundancy and the need for widespread participation can be mutually satisfying.