Researcher: Gail Ollis
First supervisor: Dr Jacqui Taylor
Gail has over twenty years’ experience as a professional software developer. Her research project addresses an issue stemming from this career. Individual programmers with similar education and experience demonstrate quite different levels of ability to write ‘peer-friendly’ code. What behaviours contribute to producing work that is straightforward for other software developers to follow, and how can these behaviours be encouraged?
This is important because computer code is not simply written, deployed and forgotten, but reused and revisited many times. Yet the difficulties of maintaining or adapting existing code have been somewhat overlooked; researchers more often focus on the technical aspects of delivering working software or, if they are considering human aspects, on end users or the behaviour of software development teams. However, technical problem solving also has a human dimension, independent of whether the program functions correctly and reliably. Gail’s research addresses individual differences in software developer behaviour that affect how easily others can work on the software, and thus influence the timely delivery of a system and any future changes to it.
The first phase of the research was to characterise how programmers perceive the impact of others’ coding practices on their own work. Using qualitative interviews with experienced programmers from across the industry, this study established a holistic peer-centred definition of best (and worst) practice: the programmer behaviours which help or hinder colleagues across the whole range of their regular tasks.
This definition of ‘best practice’ from a peer perspective can itself play a part in staff appraisals and recruitment, but it is just the beginning. Gail is working with industry partners to explore the practical applications for staff mentoring and continuing professional development. The second phase of the research builds on the findings from the interviews to develop a framework for fostering the behaviours that were identified as helpful. Workshops with software development teams allow them to pick the factors most relevant to their own workplace, reflect on their practice and identify useful steps they can take.