Message passing: How software engineers use talk.
In this thesis I present software engineering as a social process in which programmers work together to create technical solutions. I propose that the social structures which developers create and within which they work provide the foundations from which they are able to collaborate to build software. In doing so I characterise software engineering as being as much a social enterprise as it is a technical one. Since its origins in the late 1960s, the discipline of software engineering has been one that is concerned primarily with tools, techniques and processes. Research and writing within the area, by both academics and practitioners, have been interested in developing better ways to deliver better software and, hence, better customer satisfaction. Relatively little effort has gone into understanding what it is that software developers, in particular programmers, do as they work collaboratively.Starting from an ethnomethodological position, I present an examination of those activities of programmers which enable both sense-making and coordination. The research examines the work of developers in teams that self-identify as adherents to the Agile Manifesto. These teams are interesting because of the Manifesto's commitment to a social view of software development. Three teams of professional developers are studied in their normal working environments as they work on commercial projects for their clients. The first is a failing team which I follow as they begin to use Scrum whilst the second team has been using Scrum for a number of years. The final team uses a mixture of techniques from XP, TDD and Kanban to create their own way of working. By revealing the ethnomethods of developers across the three organisations I show that the design and implementation of code is enabled through social interaction.
Networked Digital Library of Theses and Dissertations
Sheffield Hallam University (United Kingdom).