AbstractSoftware engineering is an intensely
people-oriented activity, yet little is known about how 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 aid this goal, we describe a series of data collection
techniques for such studies, organized around a taxonomy based on the degree to which interaction with software engineers is necessary. For each technique, we provide
examples from the literature, an analysis of some of its advantages and disadvantages, and a discussion of special reporting requirements. We also talk briefly about recording options and data analysis.
1. IntroductionSoftware engineering involves real people working in real environments. People create software,
people maintain software, people evolve software. Accordingly to understand software engineering, one should study software engineers as they work – typically by doing field studies.
In this chapter, we introduce a set of data collection techniques suitable for performing such studies that can be used individually or in combination to understand different aspects of real world environments. These data collection techniques can be used with a wide variety of methods under a wide variety of theoretical and philosophical traditions (see
Easterbrook et al., Chap. To better showcase the qualities of the various techniques, we have created a taxonomy based on the degree to which interaction with software engineers is required. The next section details the taxonomy. In Sect. 3, each technique is described in detail. We talk briefly in Sect. 4 about recording options for the data and present a brief overview of data analysis. We conclude the chapter with a discussion of how these techniques can be used in the most appropriate fashion.
Share with your friends: