Studying Software Engineers: Data Collection Techniques for Software Field Studies

Software engineering is an intensively people-oriented activity, yet too little is known about how designers, maintainers, requirements analysts and all other types of software engineers perform their work. In order to improve software engineering tools and practice, it is therefore essential to conduct field studies, i.e. to study real practitioners as they solve real problems. To do so effectively, however, requires an understanding of the techniques most suited to each type of field study task. In this paper, we provide a taxonomy of techniques, focusing on those for data collection. The taxonomy is organized according to the degree of human intervention each requires. For each technique, we provide examples from the literature, an analysis of some of its advantages and disadvantages, and a discussion of how to use it effectively. We also briefly talk about field study design in general, and data analysis.

[1]  W. Foddy Constructing Questions for Interviews and Questionnaires: Theory and Practice in Social Research , 1993 .

[2]  Austen Rainer,et al.  Software Process Improvement Problems in Twelve Software Companies: An Empirical Analysis , 2003, Empirical Software Engineering.

[3]  Janice Singer Practices of software maintenance , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[4]  Victoria Bellotti,et al.  Walking away from the desktop computer: distributed collaboration and mobility in a product design team , 1996, CSCW '96.

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

[6]  Austin Henderson,et al.  Interaction Analysis: Foundations and Practice , 1995 .

[7]  D HerbslebJames,et al.  Two case studies of open source software development , 2002 .

[8]  Magne Jørgensen,et al.  An empirical study of software maintenance tasks , 1995, J. Softw. Maintenance Res. Pract..

[9]  Charles L. A. Clarke,et al.  Archetypal source code searches: a survey of software developers and maintainers , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[10]  T. C. Nicholas Graham,et al.  A study of collaboration in software design , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[11]  Finn Kensing,et al.  Prompted reflections: a technique for understanding complex work , 1998, INTR.

[12]  Stéphane S. Somé,et al.  Parsing minimization when extracting information from code in the presence of conditional compilation , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[13]  Daniela E. Damian,et al.  An Industrial Case Study of Immediate Benefits of Requirements Engineering Process Improvement at the Australian Center for Unisys Software , 2004, Empirical Software Engineering.

[14]  Joyce J. Elam,et al.  Inside a software design team: knowledge acquisition, sharing, and integration , 1993, CACM.

[15]  F C Ulmer,et al.  The Hawthorne Effect , 1979, IEEE Transactions on Reliability.

[16]  Jakob Nielsen,et al.  Interface: The Use and Misuse of Focus Groups , 1997, IEEE Softw..

[17]  Lucy M. Berlin,et al.  Beyond Program Understanding: A Look at Programming Expertise in Industry , 2001 .

[18]  S. Robbins Essentials of Organizational Behavior , 1984 .

[19]  David S. Rosenblum,et al.  A study in software process data capture and analysis , 1993, [1993] Proceedings of the Second International Conference on the Software Process-Continuous Software Process Improvement.

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

[21]  Anneliese Amschler Andrews,et al.  Program Understanding: Models and Experiments , 1995, Adv. Comput..

[22]  David Budgen,et al.  CASE tool evaluation: experiences from an empirical study , 2003, J. Syst. Softw..

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

[24]  Rudolf K. Keller,et al.  Pattern-based reverse-engineering of design components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[25]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[26]  David A. de Vaus,et al.  Surveys in Social Research , 1996 .

[27]  Austen Rainer,et al.  A quantitative and qualitative analysis of factors affecting software processes , 2003, J. Syst. Softw..

[28]  Stephanie D. Teasley,et al.  Rapid Software Development through Team Collocation , 2002, IEEE Trans. Software Eng..

[29]  Magne Jørgensen,et al.  Can you Trust a Single Data Source Exploratory Software Engineering Case Study? , 2002, Empirical Software Engineering.

[30]  Timothy C. Lethbridge,et al.  Approaches to clustering for program comprehension and remodularization , 2002 .

[31]  Marcus Ciolkowski,et al.  Conducting on-line surveys in software engineering , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[32]  Chris F. Kemerer,et al.  Determinants of software maintenance profiles: an empirical investigation , 1997, J. Softw. Maintenance Res. Pract..

[33]  Timothy Lethbridge,et al.  A little knowledge can go a long way towards program understanding , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[34]  Nicolas Anquetil,et al.  Recovering software architecture from the names of source files , 1999, J. Softw. Maintenance Res. Pract..

[35]  Timothy Lethbridge,et al.  Priorities for the education and training of software engineers , 2000, J. Syst. Softw..

[36]  Alan R. Hevner,et al.  Reviewing software diagrams: a cognitive study , 2004, IEEE Transactions on Software Engineering.

[37]  Shari Lawrence Pfleeger,et al.  Investigating the Influence of Formal Methods , 1997, Computer.

[38]  A. V. D. Ven,et al.  Group Techniques for Program Planning , 1975 .

[39]  Shari Lawrence Pfleeger,et al.  Principles of survey research: part 1: turning lemons into lemonade , 2001, SOEN.

[40]  Andrew Walenstein,et al.  Observing and measuring cognitive support: steps toward systematic tool evaluation and engineering , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[41]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[42]  Juhani Iivari,et al.  Why are CASE tools not used? , 1996, CACM.

[43]  Sandro Morasca,et al.  On the application of measurement theory in software engineering , 2004, Empirical Software Engineering.

[44]  R. Henry,et al.  Principles of survey research. , 2018, Family practice research journal.

[45]  Audris Mockus,et al.  International Workshop on Mining Software Repositories , 2004 .

[46]  Timothy C. Lethbridge,et al.  Work Practices as an Alternative Method to Assist Tool Design in Software Engineering , 1997 .

[47]  Tracy Hall,et al.  Motivators of Software Process Improvement: an analysis of practitioners' views , 2002, Journal of Systems and Software.

[48]  Tracy Hall,et al.  De-motivators for software process improvement: an analysis of practitioners' views , 2003, J. Syst. Softw..

[49]  Anneliese Amschler Andrews,et al.  From program comprehension to tool requirements for an industrial environment , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[50]  M. Chi Quantifying Qualitative Analyses of Verbal Data: A Practical Guide , 1997 .

[51]  Victor R. Basili,et al.  User Interface Evaluation and Empirically-Based Evolution of a Prototype Experience Management Tool , 2003, IEEE Trans. Software Eng..

[52]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[53]  Leigh Snelling,et al.  The work mapping technique , 1997, INTR.

[54]  Victor R. Basili,et al.  Communication and Organization: An Empirical Study of Discussion in Inspection Meetings , 1998, IEEE Trans. Software Eng..

[55]  Stan Matwin,et al.  Applying data mining to software maintenance records , 2003, CASCON.

[56]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

[57]  Harvey P. Siy,et al.  An experiment to assess the cost-benefits of code inspections in large scale software development , 1995, SIGSOFT '95.

[58]  T. Jick Mixing Qualitative and Quantitative Methods: Triangulation in Action. , 1979 .

[59]  Janice Singer,et al.  An examination of software engineering work practices , 1997, CASCON.

[60]  Timothy Lethbridge,et al.  Object-oriented software engineering - practical software development using UML and Java , 2002 .

[61]  Françoise Détienne,et al.  Measuring cognitive activities in software engineering , 1998, Proceedings of the 20th International Conference on Software Engineering.

[62]  Susan Elliott Sim,et al.  The ramp-up problem in software projects: a case study of how software immigrants naturalize , 1998, Proceedings of the 20th International Conference on Software Engineering.

[63]  M. Miles Qualitative Data as an Attractive Nuisance: The Problem of Analysis , 1979 .

[64]  Walt Scacchi,et al.  1 Issues and Experiences in Modeling Open Source Software Development Processes , 2003 .

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

[66]  Bernice W. Polemis Nonparametric Statistics for the Behavioral Sciences , 1959 .

[67]  K. A. Ericsson,et al.  Protocol Analysis: Verbal Reports as Data , 1984 .

[68]  Forrest Shull,et al.  Investigating Reading Techniques for Object-Oriented Framework Learning , 2000, IEEE Trans. Software Eng..

[69]  Janice Singer,et al.  Studying work practices to assist tool design in software engineering , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).