Collaborative Development Environments

Abstract A collaborative development environment (CDE) is a virtual space wherein all the stakeholders of a project—even if distributed by time or distance—may negotiate, brainstorm, discuss, share knowledge, and generally labor together to carry out some task, most often to create an executable deliverable and its supporting artifacts. CDEs are particularly useful as places where engineers may collaborate to solve problems. Here we focus on software developers in their tasks of designing, implementing, deploying, and maintaining high quality software-intensive systems where they are physically separated and make use of the Internet as the basis for their interactions. In this paper, we examine the points of friction in the software development process and the mechanisms that reduce that friction. We then survey a variety of sites, both inside and outside the software domain, which provide some of these mechanisms. We conclude with observations as to what a CDE is, what it is not, and what it can become.