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.
[1]
Tom DeMarco,et al.
Peopleware: Productive Projects and Teams
,
1987
.
[2]
David J. Gilmore,et al.
User-Centred Requirements for Software Engineering Environments
,
1994,
NATO ASI Series.
[3]
Adele Goldberg.
Collaborative Software Engineering
,
2002,
J. Object Technol..
[4]
Edward Yourdon,et al.
Death March
,
1997
.
[5]
Amy Jo Kim,et al.
Community Building on the Web: Secret Strategies for Successful Online Communities
,
2000
.
[6]
Lawrence G. Votta,et al.
By the way, has anyone studied any real programmers, yet? [software development process]
,
1994,
Proceedings. Ninth International Software Process Workshop.
[7]
Gerald M. Weinberg,et al.
Psychology of computer programming
,
1971
.
[8]
Frank Maurer,et al.
Task-Specific Knowledge Management in a Process-Centred SEE
,
2001,
LSO.