The secret life of bugs: Going past the errors and omissions in software repositories

Every bug has a story behind it. The people that discover and resolve it need to coordinate, to get information from documents, tools, or other people, and to navigate through issues of accountability, ownership, and organizational structure. This paper reports on a field study of coordination activities around bug fixing that used a combination of case study research and a survey of software professionals. Results show that the histories of even simple bugs are strongly dependent on social, organizational, and technical knowledge that cannot be solely extracted through automation of electronic repositories, and that such automation provides incomplete and often erroneous accounts of coordination. The paper uses rich bug histories and survey results to identify common bug fixing coordination patterns and to provide implications for tool designers and researchers of coordination in software development.

[1]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[2]  R. Yin Case Study Research: Design and Methods , 1984 .

[3]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[4]  A. Stinchcombe Information and Organizations , 2019 .

[5]  F. Paul Wilson,et al.  Root Cause Analysis : A Tool for Total Quality Management , 1993 .

[6]  Dewayne E. Perry,et al.  People, organizations, and process improvement , 1994, IEEE Software.

[7]  Robert E. Kraut,et al.  Coordination in software development , 1995, CACM.

[8]  E. Hutchins Cognition in the wild , 1995 .

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

[10]  An examination of software engineering work practices , 1997, CASCON.

[11]  James D. Herbsleb,et al.  Splitting the organization and integrating the code: Conway's law revisited , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[12]  Morten Hertzum,et al.  The importance of trust in software engineers' assessment and choice of information sources , 2002, Inf. Organ..

[13]  D. Whitehead Case Study Research Design and Methods, 3rd edition , 2003 .

[14]  Maarten Sierhuis,et al.  Management of interdependencies in collaborative software development , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[15]  Audris Mockus,et al.  An Empirical Study of Speed and Communication in Globally Distributed Software Development , 2003, IEEE Trans. Software Eng..

[16]  Janice Singer,et al.  How software engineers use documentation: the state of the practice , 2003, IEEE Software.

[17]  Jean Hartley,et al.  Case study research , 2004 .

[18]  Jorge Aranda Distributed cognition in software engineering research : Can it be made to work ? , 2006 .

[19]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[20]  Gail C. Murphy,et al.  Who should fix this bug? , 2006, ICSE.

[21]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[22]  Robert DeLine,et al.  Information Needs in Collocated Software Development Teams , 2007, 29th International Conference on Software Engineering (ICSE'07).

[23]  Jan Chong,et al.  The Social Dynamics of Pair Programming , 2007, 29th International Conference on Software Engineering (ICSE'07).

[24]  Mary E. Helander,et al.  Using Software Repositories to Investigate Socio-technical Congruence in Development Projects , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[25]  David F. Redmiles,et al.  An empirical study of software developers' management of dependencies and changes , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[26]  Thomas Zimmermann,et al.  What Makes a Good Bug Report? , 2008, IEEE Transactions on Software Engineering.