Traditionally, collaboration has been a means for organizations to do their work. However, the context in which they do this work is changing, especially in regards to where the work is done, how the work is organized, who does the work, and with this the characteristics of collaboration. Software development is no exception; it is itself a collaborative effort that is likewise affected by these changes. In the context of both open source software development projects and communities and organizations that develop corporate products, more and more developers need to communicate and liaise with colleagues in geographically distant places about the software product they are conceiving, designing, building, testing, debugging, deploying and maintaining. Thus, work teams face sizeable collaborative challenges, for which they have need of tools that they can use to communicate and coordinate their work efficiently.
Key Terms in this Chapter
Computer-Supported Cooperative Work: A field of study addressing the way collaborative activities and their coordination can be supported by means of software and computer systems commonly referred to as groupware, as well as their psychological, social, and organizational effects.
Coordination: The management of dependencies between activities (generally representing independent subtasks as a result of the division of a cooperative task) and the support of (inter) dependencies among actors involved in carrying them out.
Software Configuration Management: The discipline of managing the evolution of large and complex software systems.
Collaborative Development Environment: A virtual space wherein all the stakeholders of a project, even if separated by time or distance, may negotiate, communicate, coordinate, brainstorm, discuss, share knowledge, and liaise to carry out some task, most often to create an executable deliverable and its supporting artifacts, holistically integrating multiple collaborative tools and resources.
Collaborative Tool: A software module conceived to assure that the people who design, produce, maintain, commercialize and use software are aware of and communicate about the activities of the others simply, efficiently and effectively, also encouraging creativity, driving innovation, and considering software development’s social nature.
Open Source Community: A loosely organized, ad-hoc community of contributors from all over the world who share an interest in meeting a common need, ranging from minor projects to huge developments, which they carry out using a high-performance collaborative development environment (CDE). The concept represents one of the most successful examples of high-performance collaboration and community-building on the Internet.
Collaboration: Refers to the different processes wherein people, from small groups to larger collectives and societies, work together, possibly in ubiquitous environments like Internet. A number of useful and effective collaborative environments and methods have emerged from the study of such processes and their distinctive properties.
Groupware: Computer-based systems that support groups of people engaged in a common task (or goal) and that provide an interface to a shared environment, thanks to the enabling technologies of computer networking, software and services.