Visualizing Complexity: Flowcharts as the Boundary Objects of Software Development
November 01, 2011
#research
From the very earliest days of electronic computing, “flow diagrams” (later “flowcharts”) have been used to represent the conceptual structure of complex software systems. In much of the literature on software development, the flowchart serves as the central design document around which systems analysts, computer programmers, and end-users communicate and negotiate. And yet the meaning of any particular flowchart was often highly contested, and the apparent specificity of such design documents rarely reflected reality. In fact, some of the first software “packages” (commercial applications that could be purchased off-the-shelf) were used to reverse-engineer the flowchart specification from already developed computer code. That is to say, the implementation of many software systems actually preceded its own design! Using the sociological concept of the boundary object, this paper will explore the material culture of software development, with a particular focus on the ways in which flowcharts served as political artifacts within the emerging communities of practices of software development.