Software engineering involves the consideration of both human and technical aspects, and although its origins come from the sub-disciplines of computer science and engineering, today the importance of the social and human aspects of software development are widely accepted by practitioners and researchers alike. Researchers have at their disposal many research methods they can choose from, but does software engineering research, at a community level, use methods that adequately capture the social and human aspects of the socio-technical endeavour that is software development? To answer this question, we conducted a categorization study of 253 ICSE papers and found a bigger emphasis on computational studies that rely on trace data of developer activity, with fewer studies controlling for human and social aspects. To understand tradeoffs that researchers make among their choice of research methods, we conducted a follow-up survey with the authors of the mapping study papers and found they generally prioritize generalizability and realism over control of human behaviours in their studies, sometimes for reasons of convenience or to appease reviewers of their papers. Furthermore, our findings surprisingly suggest a gap in knowledge about triangulation that could help address this gap within our community. We suggest our community, as a whole, diversify its use of research methods, to increase the use of methods that involve more control of the human and social aspects of software development practice while balancing our understanding of innovations on the technical side.
翻译:软件工程涉及对人和技术两方面的考虑,尽管其起源来自计算机科学和工程的次级纪律,但今天,软件开发的社会和人方面的重要性已为实践者和研究人员广泛接受。研究人员可以选择许多研究方法,但软件工程研究在社区一级使用适当捕捉社会-技术努力(即软件开发)的社会和人方面的方法;为了回答这个问题,我们对253份ICSE文件进行了分类研究,发现更强调利用开发者活动的追踪数据进行计算研究,减少对人和社会方面的控制的研究。为了理解研究人员在选择研究方法时所作的权衡,我们与绘图研究文件的作者进行了后续调查,发现他们通常优先考虑在研究中控制人类行为的一般性和现实性,有时是为了方便起见,或是为了适应论文的审查者。此外,我们的调查结果令人惊讶地表明,对于有助于解决我们社区内部这一差距的三角测量知识存在差距。我们建议,我们社区作为一个整体,在利用研究方法的多样化的同时,利用技术革新方法来提高人类对技术革新方法的利用。