Department of Information and Computer Science
University of California, Irvine
Irvine, CA 92717-3425
Tel: +1-714-824-5086
E-mail: beki@ics.uci.edu
Concerns about usability and usefulness give software engineers and HCI researchers a common ground. Recently, these two communities have started to work together on defining these shared interests [10]. My study explores how software developers use one particular technology, configuration management (CM) systems, to coordinate their work. Modern software systems usually consist of hundreds of individual components like: software, libraries, documentation, and test suites. Keeping track of how multiple developers change all of these components during development is very difficult. CM systems provide automated support for maintaining control over the evolution of a software system by: structuring work of developers, providing visibility into the work of others, and gathering all the system's components together.
My study takes critical look at how developers use CM systems in practice. Specifically the research question is: how, and when, do software engineers use configuration management systems to try to coordinate their software development activities with each other? This study contributes to the establishment of shared concerns by bringing a HCI perspective to understanding the work of software development and the role of technology within that work.
Software configuration management systems provide another venue to study these issues in detail. However, the developers of software configuration management systems have been relatively isolated from the groupware community. As a consequence, configuration management systems differ from more "traditional" groupware systems. Many traditional groupware systems, like electronic mail, video conferencing, and media spaces, support collaboration by providing mediums for communication. Configuration management systems do not provide any communications support. Instead, they try to support collaboration by providing information about what other developers are doing, structuring development work, and automating various development activities. Because configuration management systems structure software development activities, they are similar to workflow systems. An empirical study of a technology that supports collaboration by providing information to help developers coordinate with each other, rather than another communications channel, raises new questions about the role of technology in supporting group work.
Because people use configuration management systems some of these challenges must be reconciled, at least in the local work context. However, empirical studies of software configuration management systems have revealed that their usage depends on the surrounding organizational and social context [4]. This study has begun and will continue to identify how developers try to use configuration management systems to collaborate with others and the times when the technology fails to support coordination.
In this study I adopt one particular qualitative data interpretation strategy, grounded theory [3]. Grounded theory suits this study because it meshes perfectly with the theoretical perspective of articulation work that focuses the data collection towards coordination issues. Grounded theory is not entirely inductive and can leverage from existing theoretical bases provided that the theory it relies on has also been developed in the grounded theory tradition. I will use the theory of articulation work, developed in the grounded theory tradition, to focus my study [9].
Articulation work concerns itself not with the primary work of individuals, but the "extra" work they take on in their efforts to coordinate with other people. In the case of software development, developers primarily work on building systems. However, as developers work in a team, they necessarily engage in articulation work to coordinate their own efforts with other people. Unlike other kinds of groupware, CM systems do not facilitate articulation work by providing communications support. Instead CM systems allow developers to coordinate their work without communicating with others. However, little empirical work has been done to date to find out how well technologies can support articulation work [8]. This study will provide valuable information about the role of CM systems in coordinating software development activities.
I have chosen three organizations to conduct this research with the aim of gathering diverse data to strengthen my understanding of configuration management systems usage practices. The three sites I have chosen vary on a number of key dimensions: size of the organization, size of the software project studied, and market that the organization competes in. I use variety of qualitative strategies to collect data including: participant observation, non-participant observation, interviewing and document analysis. By using a combination of techniques in a variety of organizations I have maximized my chances of gathering diverse data.
The data from the three sites has been gathered and is currently being analyzed. Some results are currently available and most or all should be ready by April, 1996.