This chapter reviews the socio-technical relationship between organizational and software structure. It describes the early theoretical work about this relationship, the empirical studies that identified this relationship in practice and, more importantly, identifies two main approaches for exploring this relationship. The first one is based on the construction of tools to facilitate software development, while the second is a more theoretical one aimed at investigating the consequences of this relationship in the work of software developers. Furthermore, the authors hope the theoretical background presented in this chapter will not only motivate other researchers to study software development as a socio-technical endeavor, but also assist practitioners in the understanding of the aspects necessary to make software development succeed.
The relationship between the coordination of software development efforts and software architecture has been studied in two different research areas: software engineering and computer-supported cooperative work (CSCW). Software engineering researchers are concerned primarily with dependencies in the software architecture and their impact on both the quality of the software being developed and the process of developing it (Sommerville, 2000). CSCW researchers’ main concerns are with the coordination of collaborative work and how computational tools can support this task (Schmidt & Bannon, 1992). In this section we review both the software engineering and the CSCW literature to properly understand the relationship of interest. We will start reviewing approaches for handling software architecture (i.e., components and their dependencies) between software development artifacts.
Key Terms in this Chapter
Computer-Supported Collaborative Work or CSCW: This term addresses how collaborative activities and their coordination can be supported by means of computer systems.
Software Structure or Ssoftware Architecture: Is used to indicate how a software system is organized into parts and how these parts are interconnected, that is, the components or modules of a software system and their dependencies.
Dependency or Dependence: Is a relationship between two entities that exists because one must interact with the other to accomplish something “larger” than the entities themselves. For instance, task dependencies exist when the actors responsible for these tasks need to interact to finish them properly. Similarly, software dependencies arise out of the interactions (method calls, data exchange, etc) between software components.
Conway’s Law: Argument proposed by Melvin Conway in 1968 that argues that the software structure will be stamped out with the communication structure of the organization because the communication needs of those doing the work are inevitably reflected in the system.
Organizational Structure: Describes how an organization is structured into different parts (e.g., individuals, teams, sub-teams, departments, or subdivisions) to accomplish its goals.
Socio-Technical Congruence: A metric used to investigate how good the alignment or fit is between the organizational structure and the software architecture.
Complete Chapter List
Brian Whitworth, Aldo de Moor
Brian Whitworth, Aldo de Moor
Prologue: General Socio-Technical Theory
Ann Borda, Jonathan P. Bowen
Ken Eason, José Abdelnour-Nocera
Cleidson R.B. de Souza, David F. Redmiles
Prologue: Socio-Technical Perspectives
Petter Bae Brandtzæg, Jan Heim
Wilson Huang, Shun-Yung Kevin Wang
Elayne W. Coakes, Peter Smith, Dee Alwis
Prologue: Socio-Technical Analysis
Jonas Sjöström, Göran Goldkuhl
Paul J. Bracewell
Mikael Lind, Peter Rittgen
Harry S. Delugach
Dorit Nevo, Brent Furneaux
Prologue: Socio-Technical Design
Anders I. Mørch
Manuel Kolp, Yves Wautelet
Anton Nijholt, Dirk Heylen, Rutger Rienks
Jos Benders, Ronald Batenburg, Paul Hoeken, Roel Schouteten
Mary Allan, David Thorns
Rebecca M. Ellis
Christopher A. Miller
Prologue: Socio-Technical Implementation
Laura Anna Ripamonti, Ines Di Loreto, Dario Maggiorini
Mohamed Ben Ammar, Mahmoud Neji, Adel M. Alimi
Pernilla Qvarfordt, Shumin Zhai
Claire de la Varre, Julie Keane, Matthew J. Irvin, Wallace Hannum
Jeremy Birnholtz, Emilee J. Rader, Daniel B. Horn, Thomas Finholt
Prologue: Socio-Technical Evaluation
John M. Carroll, Mary Beth Rosson, Umer Farooq, Jamika D. Burge
Tanguy Coenen, Wouter Van den Bosch, Veerle Van der Sluys
Olga Kulyk, Betsy van Dijk, Paul van der Vet, Anton Nijholt, Gerrit van der Veer
Janet L. Holland
David Hinds, Ronald M. Lee
Bertram C. Bruce, Andee Rubin, Junghyun An
Prologue: The Future of Socio-Technical Systems
Peter J. Denning
Theresa Dirndorfer Anderson
Laurence Claeys, Johan Criel
Kenneth E. Kendall, Julie E. Kendall