A View of Software Development Environments Based on Activity Theory
We view software development as a collaborative activity that is typically supported by a software development environment. Since these environments can significantly influence the collaborative nature of a software development project, it is important to analyze and evaluate their capabilities with respect to collaboration. In this paper, we present an analysis and evaluation of the collaborative capabilities of software development environments using an activity theory perspective. The discipline of software engineering (SE) emerged to study and develop artifacts to mediate the collective development of large software systems. While many advances have been made in the past three decades of SE's existence, the historical origins of the discipline are present in that techniques and tools to support the collaborative aspects of large-scale software development are still lacking. One factor is a common ``production-oriented'' philosophy that emphasizes the mechanistic and individualistic aspects of software development over the collaborative aspects thereby ignoring the rich set of human-human interactions that are possible over the course of a software development project. We believe that the issues and ideas surrounding activity theory may be useful in improving support for collaboration in software engineering techniques and tools. As such, we make use of the activity theory to analyze and evaluate process-centered software development environments (PCSDEs).