The who, what, how of software engineering research: a socio-technical framework

Software engineering is a socio-technical endeavor, and while many of our contributions focus on technical aspects, human stakeholders such as software developers are directly affected by and can benefit from our research and tool innovations. In this paper, we question how much of our research addresses human and social issues, and explore how much we study human and social aspects in our research designs. To answer these questions, we developed a socio-technical research framework to capture the main beneficiary of a research study (the who ), the main type of research contribution produced (the what ), and the research strategies used in the study ( how we methodologically approach delivering relevant results given the who and what of our studies). We used this Who-What-How framework to analyze 151 papers from two well-cited publishing venues—the main technical track at the International Conference on Software Engineering, and the Empirical Software Engineering Journal by Springer—to assess how much this published research explicitly considers human aspects. We find that although a majority of these papers claim the contained research should benefit human stakeholders, most focus predominantly on technical contributions. Although our analysis is scoped to two venues, our results suggest a need for more diversification and triangulation of research strategies. In particular, there is a need for strategies that aim at a deeper understanding of human and social aspects of software development practice to balance the design and evaluation of technical innovations. We recommend that the framework should be used in the design of future studies in order to steer software engineering research towards explicitly including human and social concerns in their designs, and to improve the relevance of our research for human stakeholders.

[1]  Daniela E. Damian,et al.  The promises and perils of mining GitHub , 2009, MSR 2014.

[2]  Robyn Dowling,et al.  Qualitative methods 1 , 2016 .

[3]  Lefteris Angelis,et al.  Towards individualized software engineering: empirical studies should collect psychometrics , 2008, CHASE.

[4]  A.E. Hassan,et al.  The road ahead for Mining Software Repositories , 2008, 2008 Frontiers of Software Maintenance.

[5]  Laurie A. Williams,et al.  How Good Is a Security Policy against Real Breaches? A HIPAA Case Study , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[6]  Emerson R. Murphy-Hill,et al.  Do Developers Read Compiler Error Messages? , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[7]  Hanspeter Pfister,et al.  UpSet: Visualization of Intersecting Sets , 2014, IEEE Transactions on Visualization and Computer Graphics.

[8]  Brian Fitzgerald,et al.  A Holistic Overview of Software Engineering Research Strategies , 2015, 2015 IEEE/ACM 3rd International Workshop on Conducting Empirical Studies in Industry.

[9]  J. McGrath Methodology matters: doing research in the behavioral and social sciences , 1995 .

[10]  N. Denzin The research act: A theoretical introduction to sociological methods , 1977 .

[11]  Robert Feldt,et al.  An initial analysis of software engineers’ attitudes towards organizational change , 2017, Empirical Software Engineering.

[12]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

[13]  Gina Venolia,et al.  The secret life of bugs: Going past the errors and omissions in software repositories , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[14]  Janice Singer,et al.  Ethical Issues in Empirical Studies of Software Engineering , 2002, IEEE Trans. Software Eng..

[15]  Michael Felderer,et al.  The Evolution of Empirical Methods in Software Engineering , 2019, ArXiv.

[16]  Brian Fitzgerald,et al.  The ABC of Software Engineering Research , 2018, ACM Trans. Softw. Eng. Methodol..

[17]  Janice Singer,et al.  For the Special issue on Qualitative Software Engineering Research , 2007, Inf. Softw. Technol..

[18]  Jun Sun,et al.  Feedback-Based Debugging , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[19]  Robert Feldt,et al.  Towards a behavioral software engineering , 2014, CHASE.

[20]  Barbara McGillivray,et al.  The citation advantage of linking publications to research data , 2019, PloS one.

[21]  Paul Ralph,et al.  Grounded Theory in Software Engineering Research: A Critical Review and Guidelines , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[22]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[23]  Brian Whitworth,et al.  The Social Requirements of Technical Systems , 2009 .

[24]  Tom DeMarco,et al.  Peopleware: Productive Projects and Teams , 1987 .

[25]  Timothy C. Lethbridge,et al.  Software Engineering Data Collection for Field Studies , 2008, Guide to Advanced Empirical Software Engineering.

[26]  Daniela E. Damian,et al.  Managing the requirements flow from strategy to release in large-scale agile development: a case study at Ericsson , 2017, Empirical Software Engineering.

[27]  Laurie A. Williams,et al.  Writing Good Software Engineering Research Papers: Revisited , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[28]  Mohamed Wiem Mkaouer,et al.  A robust multi-objective approach to balance severity and importance of refactoring opportunities , 2017, Empirical Software Engineering.

[29]  Gordon Fraser,et al.  Code Defenders: Crowdsourcing Effective Tests and Subtle Mutants with a Mutation Testing Game , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[30]  Shmuel S. Tyszberowicz,et al.  UML Diagram Refinement (Focusing on Class-and Use Case Diagrams) , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[31]  Laurent Réveillère,et al.  Raters’ reliability in clone benchmarks construction , 2017, Empirical Software Engineering.

[32]  Courtney Bornholdt Methodology matters: mapping software engineering research through a sociotechnical lens , 2018 .

[33]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .

[34]  J. Kirk,et al.  Reliability and Validity in Qualitative Research , 1985 .

[35]  Jonathan Grudin,et al.  Human Computer Interaction: The Year 2000 and Beyond , 1995, HCI.

[36]  Sven Apel,et al.  Classifying Developers into Core and Peripheral: An Empirical Study on Count and Network Metrics , 2016, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[37]  Helen Sharp,et al.  The Role of Ethnographic Studies in Empirical Software Engineering , 2016, IEEE Transactions on Software Engineering.

[38]  Xiaochen Li,et al.  What Causes My Test Alarm? Automatic Cause Analysis for Test Alarms in System and Integration Testing , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[39]  Hugo Paredes,et al.  Towards an Overarching Classification Model of CSCW and Groupware: A Socio-technical Perspective , 2012, CRIWG.

[40]  Ben Shneiderman,et al.  Software psychology: Human factors in computer and information systems (Winthrop computer systems series) , 1980 .

[41]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[42]  Brian Whitworth,et al.  Handbook of Research on Socio-Technical Design and Social Networking Systems , 2009 .

[43]  James Noble,et al.  Becoming Agile: A Grounded Theory of Agile Transitions in Practice , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[44]  Jian Liu,et al.  LibD: Scalable and Precise Third-Party Library Detection in Android Markets , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[45]  Roel Wieringa,et al.  Naming the pain in requirements engineering , 2016, Empirical Software Engineering.

[46]  Per Runeson,et al.  A review of software engineering research from a design science perspective , 2019, ArXiv.

[47]  Mary Shaw,et al.  Writing good software engineering research papers: minitutorial , 2003, ICSE 2003.

[48]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[49]  Shari Lawrence Pfleeger,et al.  Personal Opinion Surveys , 2008, Guide to Advanced Empirical Software Engineering.

[50]  Pearl Brereton,et al.  Robust Statistical Methods for Empirical Software Engineering , 2017, Empirical Software Engineering.

[51]  Peter Müller,et al.  A General Framework for Dynamic Stub Injection , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[52]  Daniel M. Germán,et al.  An empirical study of unspecified dependencies in make-based build systems , 2017, Empirical Software Engineering.

[53]  Paul J. Lavrakas,et al.  Applied Qualitative Research Design: A Total Quality Framework Approach , 2015 .

[54]  Michele Lanza,et al.  The Tragedy of Defect Prediction, Prince of Empirical Software Engineering Research , 2016, IEEE Softw..

[55]  Robert Feldt,et al.  Behavioral software engineering - guidelines for qualitative studies , 2017, ArXiv.

[56]  Laura Lehtola,et al.  The Focus Group Method as an Empirical Tool in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

[57]  A. Huberman,et al.  Qualitative Data Analysis: A Methods Sourcebook , 1994 .

[58]  Marvin V. Zelkowitz,et al.  Techniques for Empirical Validation , 2006, Empirical Software Engineering Issues.

[59]  N. Leech,et al.  Validity and Qualitative Research: An Oxymoron? , 2007 .

[60]  Mary Shaw,et al.  Writing good software engineering research papers , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..