Everyday practices of agile software developers
- Publication Type:
- Issue Date:
The theory and practice of software engineering is largely represented in the literature by discrete rational models, methodologies, tools and techniques for producing software and for describing work processes as they ought to be done. There has been little research that characterises software development as it is actually practised every day by professional software developers. This thesis addresses that gap. As the recognition of software development as embodied work is fundamental to this research, a situated approach underpins its exploration of software development as it is performed by real developers in their workplace at the time that it occurs. The initial, guiding research question, “So what do software developers do every day?” was addressed by undertaking a longitudinal ethnographic study, involving two years of fieldwork, of an Australian group of software developers who use an Agile development methodology. A local software development infrastructure, comprising software tools and formal software development policies and procedures, is available to the developers. As the research progressed, it became obvious that they spent an enormous amount of their time and effort dealing with this infrastructure in order to accomplish their daily work. Further, more directed questions about the developers’ daily practice thus became distilled into this one: What significance does their infrastructure have for the developers’ everyday work? The findings challenge two assumptions often implicit in software engineering research interests: firstly, that infrastructure, along with its constituent elements, is a given — a discrete, independent and stable entity — and, secondly, that software development practice can be authentically represented by, and understood in, formal, rational models of software process. The foregrounding of relations between the developers, their infrastructure and their work product forms the crux of this thesis. Its primary contributions are: It presents an ethnography of a little-studied group: professional software developers; It provides a detailed account of how the developers’ infrastructure and their work practice are intimately intertwined and mutually constitutive, continuously generating the context in which the design and development of complex software can be accomplished; It articulates the processes and practices that effect progressive blurring and co-dependency between the software product and the infrastructure; It identifies and describes essential dimensions of developers’ practice that are missing from accounts and representations such as formal models; It demonstrates how an explication of local infrastructure is more beneficial to understanding specific software development work practice than abstract definitions of infrastructure which are not constrained by the practicalities of everyday use.
Please use this identifier to cite or link to this item: