Methodology Matters: How We Study Socio-Technical Aspects in Software Engineering - Williams, Courtney; Storey, Margaret-Anne D.; Ernst, Neil A.; Zagalsky, Alexey; Kalliamvakou, Eirini (ACM Transactions on Software Engineering and Methodology, 2019)
Modern software engineering involves both human and technical aspects, the importance of which is widely accepted by practitioners and researchers alike. At a community level, software engineering researchers may be expected to choose a balance of research strategies that capture both social and technical characteristics of software development. In this paper, we consider if the research strategies we use do in fact provide this balance. We first developed a research strategy framework to help distinguish research strategies that directly study human and social aspects, from strategies that rely on data such as trace, archival or simulated data, and those that may focus more on technical or system aspects. We utilized this framework to categorize the research strategies used by 253 technical track papers from the International Conference on Software Engineering (ICSE). Using a design science lens, we further identified the types of research contributions provided in these papers—either descriptive knowledge, or the design and evaluation of technical solutions. We mapped the contribution types to the research strategies identified. We found that, at the community level, the papers we analyzed strongly favour data strategies over strategies that directly study human and social aspects, and most research contributions consist of the design or evaluation of technical solutions. We conclude by proposing that our community should diversify our use of research strategies so that we may have a deeper understanding of human and social aspects of software development practice, while balancing the design and evaluation of innovations on the technical side.