Software Design, Social Choices, and the Workplace
Social choices characterize applications software design as much as technical engineering issues. In examining software design as a social process we have identified as important issues the tradeoffs and compromises among competing interests and objectives of users and of others in the user organization, the process by which decisions of designers are shaped by their organization, and the role of various pressures in the market. The chapters in Part I explained and justified our basic premise that the interplay of such factors would significantly influence both explicit and implicit design choices. We emphasized how software designs necessarily reflect organizational choices about objectives of different users and others in both the vendor and user organizations. Then in Part II, for each of the cases we studied, we identified a range of design influences and the specific values underlying the social shaping of particular software features and functions. This chapter considers what we have learned from our several case studies and survey. The final two chapters translate these findings into an action agenda for managers (Chapter 8) and consider the implications for research in this area (Chapter 9). Crucial design choices about software that regulates operations of the user organization reflect social choices that may not necessarily be optimal choices. In fact, we found that for many choices there may not be an objectively optimal design; rather, the choices will favor some objectives over others with decisions shaped by organizational politics for example. Indeed, by providing greater integration within the organization, software systems lead to tighter “coupling” of structures in organizations, among different groups and between formal policies and informal practices. The following discussion of the three industries, banking, field service, and hospitals, focuses on the consequences of different choices in software design. The software, as part of its substantive task (e.g., storing information), was designed to automate and control procedures by formalizing them in design, emphasizing managerial control objectives over operations objectives, as it integrated the work of functionally different groups. This emphasis can be traced to the initial choices about features and functions of the software.