Can Collaborative Software Development Benefit from Synchronous Groupware Functions?
Total Page:16
File Type:pdf, Size:1020Kb
Can Collaborative Software Development Benefit from Synchronous Groupware Functions? Gerardo Canfora*, Filippo Lanubile°, Teresa Mallardo* ([email protected], [email protected], [email protected]) *Research Centre On Software Technology, Department of Engineering, University of Sannio Via Traiano, Pal. Ex-Poste - 82100 Benevento, Italy °Department of Computer Science, University of Bari Via Orabona 4 - 70126 Bari, Italy Abstract conversation [12], where people informally communicate valuable pieces of information. Collaboration is the Large enterprise organizations have software creation and management of shared information to development teams distributed over multiple geographical implement a common task. Distance affects collaboration sites. Because of distance, enterprises face challenges because teams may fail to disseminate information and which are similar to those that open source software then miss reuse opportunities or work on the same (OSS) projects have experienced in the past. OSS projects problems that have been already solved at other locations. overcame the problem of distance through both Coordination is the act of integrating tasks and development practices and Collaborative Software organizational units to reach a common goal. The cost of Development (CSD) platforms, wholly made up of coordination increases with distance, especially if there is asynchronous tools. However, generic groupware a lack of standards and shared practices. platforms offer both same-time and different-time options The main effect of cooperation issues caused by for communication and collaboration. distance is speed [13]: cross-sites changes take much We intend to understand whether distant developers longer than changes that are all at single site. Distance can can benefit from synchronous functions other than be offset by Internet-based technologies, which play the asynchronous functions for cross-sites cooperation. As a role of infrastructure for global software teams. One of the first step, this paper provides a comparison of CSD most effective technologies to enable distributed platforms and generic groupware with respect to teamwork is Collaborative Software Development (CSD) supported functions. As a result we propose the extension platforms. Earliest CSD platforms were developed within of CSD platforms with synchronous functions, as those open source software (OSS) projects because OSS available in widespread groupware platforms. projects, from the beginning, have been composed of dispersed individuals. However, OSS projects primarily 1. Introduction rely on asynchronous tools for almost all communication and coordination services [16], partly because time-to- Over the last few years, large enterprise organizations market is not a given priority. have embraced global software development, where Although many development tasks may be adequately software projects are distributed over multiple supported with asynchronous collaborative technology, geographical sites [14]. Developing software as a team is we argue that many other tasks need to be supported with a challenge but adding physical separation among team synchronous tools. Same-time (synchronous) members, often separated by a national boundary, makes communication tools, such as those offered in generic it even more challenging. groupware platforms, may help to resolve Geographic distance has an impact on all the forms of miscommunications, misunderstandings, and minor cooperation within a team: communication, collaboration problems before the consequences become major. A small and coordination [8]. Communication is the core function issue can take days of back-and-forth discussions over of cooperation that allows information to be exchanged email to resolve, but a brief conversation can quickly between team members. Distance has a negative effect for clarify the problem [7]. communication-intensive tasks such as requirements We intend to understand whether distant developers elicitation and negotiation, and on spontaneous can benefit from synchronous functions other than asynchronous functions for cross-sites cooperation. As a best practices. It may also include more sophisticated first step, this paper provides a comparison of CSD knowledge management activities to acquire tacit platforms and generic groupware with respect to knowledge in explicit forms, such as expert supported functions. identification and skills management [20]. The next section describes the primary functions of • Notification services. It is a workflow function that CSD and presents some popular CSD platforms. Section 3 allows team members to be notified of events (e.g., a characterizes the main groupware functions and change to an artifact or the completion of a task) that introduces some existing groupware systems. Finally have an impact on their activities. Section 4 ends up with a discussion, and draws conclusions. CSD platforms also include some generic collaborative functions, such as email (mostly for notification services), 2. Collaborative Software Development and mailing lists or web-based discussion forums to support communication among team members. A CSD platform is an integrated toolset of task-specific In the following, some well-known CSD platforms are solutions to support collaborative software engineering. described. We only include three of them just to highlight The software-engineering functions of a CSD platform common features of a CSD multi-function platform. can be classified according to the following taxonomy, SourceForge is one of the most widespread platforms adapted from [6]: for web-based collaborative software development [23]. • Configuration management (CM). A CM tool The original mission of SourceForge was to enrich the includes the ability to manage change in a controlled open source community by providing a centralized place manner, by checking components in and out of a for developers to control and manage OSS projects repository, and the evolution of software products, by development. To accomplish its mission, SourceForge storing multiple versions of components, and offers a variety of free services: web interface for project producing specified versions on command. administration, space for web content and CGI scripts, • Bug and change tracking. This function is centered trackers (for reporting bugs, submitting support requests around a database, accessible by all team members, or patches to review, and posting feature requests), which includes information on defects found (who, mailing lists and discussion forums, download notification when, where, severity) and related changes together of new releases, shell functions and compile farm, and with their status (approved, deferred, escalated, CVS-based configuration management. Today, the free tested, released, and so on). version of SourceForge supports over 50,000 hosted • Product and process modeling. This function projects and over 500,000 registered users. There is also a encompasses the core features of what was called commercial version for corporate use, called SourceForge Computer Aided Software Engineering (CASE), from Enterprise Edition [25], which adds features for tracking, requirements management to visual modeling of both measuring and reporting on software project activities. software artifacts and customized software processes. SourceCast is another popular commercial platform for • Programming tools. It includes code generators, web-based collaborative software development [22]. It compilers, debuggers, testing and code analysis tools combines development tools, reporting, communication that are usually used by single programmers. tools, administration, delivery, and document and file • Project status. It allows team member to get an management. SourceCast is organized into three logical effective representation of project-related measures control areas. The first area, called My Pages, includes such as number of tasks (completed/in progress/not data about an individual user and the projects on which yet started), number of bugs (open/assigned/closed), the user is either working or interested in tracking. The and other indicators of how the project as a whole is second area, called Projects, allows a user to define a new doing. project and resources to support that project, including members, mailing lists, source code, issue tracking, file • Scheduling and tasking. It defines and enacts the sharing, news, and discussion forums. The third area, steps that must occur in terms of process and people called Administration, supports administrative functions, during the course of software development. It and includes e-mails posted about SCM and issue includes task assignment, meeting scheduling, management activities that are logged in project mailing milestone planning, and role assignment. lists. • Knowledge center. This function is mostly document- Rational Suite Enterprise [19] is a commercial CSD driven and web-enabled, and allows team members to that supports teamwork by integrating the following tools: share explicit knowledge across a work unit. A RequisitePro (a requirements management tool that knowledge center includes technical references, includes a discussion feature), RUP (a web-enabled set of standards, frequently asked questions (FAQs) and software engineering processes), Rose (a tool for visual modeling according to UML), PurifyPlus (a set of − Web discussion forums realize the discussion automated runtime analysis tools for improving forum entirely as a web