Permalink to this page
Agile Software Development
Empirical Studies of Software Development
Agile software development is a relatively new approach which represents a reaction to what are perceived as the failings of the more traditional plan-driven approach to software development. In our studies we have focused mostly, but not exclusively, on eXtreme Programming (XP), which is one of the more popular agile methods in the UK. There are several aspects that distinguish XP from more traditional forms of software development, and in our context it is key that XP emphasizes the social nature of software development, and champions the individual developer.
Our research has centred around uncovering the reality of XP development in practice – how software practitioners develop systems using XP – and is underpinned by extensive and intensive observational studies of practice across a range of XP teams. Our approach to observational studies is one of the researcher immersing themselves in the day-to-day business of XP development, documenting practice by a variety of means that included contemporaneous field notes, photographs/sketches of the physical layout, copies of various documents and artefacts, and records of meetings, discussions and informal interviews with practitioners. Our analysis methodology is ethnographic in approach – as far as possible, the natural setting of practice is observed without any form of control, intrusion or experiment. In our analysis, we seek to understand practice in its own terms, minimizing the impact of our own backgrounds, prejudices and assumptions. Recently, we have complemented this ethnographic approach with one based around distributed cognition.
Our work has uncovered the social characteristics and culture of XP teams, including how artefacts such as story cards and information radiators mediate and support the highly collaborative and self-organising nature of these teams. In addition, our work has shown how different organizational cultures might view the adoption of XP or might maximize the likelihood of an XP team being successful.