Development Environments (IDEs) for supporting software engi neers in their isolated programming tasks. Software Engineering however, is primarily a collaborative activity in which communi cation, coordination and cooperation with colleagues is essential. Supporting this collaboration is often overlooked in support environments while it is in fact highly beneficial for Software Engineering teams in general and distributed teams in particular. Progress has been made in extending existing IDEs with func tionality for supporting the collaborative activities in Software Engineering, however such environments are focused primarily on the programming task with collaboration functionality added to that. In this paper we argue the case that collaboration should be at the core of Integrated Collaborative Development Environments by showing exhibits that Software Engineering is primarily a collaborative activity, discussing limitations in the support for this in existing solutions and discussing our own approach in dealing with these limitations.  In 2002 Booch and Brown [1] emphasized the importance of a Collaborative Development Environment (CDE) defined as: "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 exe cutable deliverable and its supporting artifacts". They argue that [1]: (i) effective teamwork is an essential part of every nontrivial Software Engineering effort and (ii) collaborative capabilities are essential to support these teams, particularly as team sizes get smaller while team interaction becomes more geographically dispersed. They conclude that CDEs are an ideal way to get people to work together effectively. Since Booch and Brown's paper, the importance of CDEs has only increased because software engineers work more and more dislocated from each other due to the globalization of business In other words the core of the solution revolves around the individual programming task while the team and the collaboration within the team is secondary. According to Sengupta et al. [7] : "Most of the work in the CDE domain till date has focused on collaborative coding". We argue the next step should be focusing on Collaborative Software Engineering. However, achieving collaboration support for software de velopment by extending existing solutions is difficult. Sarma agrees and states [8] : "To create intrinsic collaboration sup port for software development, researchers need to reevaluate the traditional development practices to design development tools from the ground up to truly support collaboration". Next to this, Gerald Weinberg [9] has noted that programming is ultimately a human activity and studies by DeMarco and Lister [10] suggest that on large projects typical developers spend about 70% of their time working with others. So, effective communication plays a key role in software development [Ill Therefore we argue useful insights into how to best support Software Engineers can be identified by creating a CDE which has support for inter-personal collaboration at its core as op posed to support for the individual programming task. Because such an approach is contradictionary to how most solutions attempt to support collaborative Software Engineering at the moment, the goal of this paper is: To argue that collaboration should become a first-class citizen in support environments for Software Engineers. To do this we have structured the paper as follows. First, in section II we discuss how Software Engineering is an inherent collaborative and human activity and why this implies the most important thing to support is collaboration. Following this in section III we give an overview of a selection of existing solutions to support collaborative Software Engineering by looking at a number of reviews of the current state of practice. In this analysis we identify a number of limitations of the current solutions and in section IV we discuss our approach in resolving the limitations by the creation of a collaborative environment called Iris: an extensible communication platform bootstrapped and created by and for a group of fully distributed Software Engineers. Finally, we summarize our work and discuss further research possibilities in section V. 978-1-936968-36-7
Dullemond et al. REF discuss that software engineering is a co mbination of collaborative activ ities.
Collaboration should become a first-class citizen in support environments for software engineers
8th International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom)
8th International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom)
Computer Science