Share this page
Share this page E-mail this page Print this page RSS feeds
Home > Projects > Collaborative Development Environment using Visual Studio
Collaborative Development Environment using Visual Studio

CollabVS is an effort to introduce collaboration and multiparty, distributed software development enhancements into Visual Studio.

Synopsis

CollabVS is a Visual Studio extension (research prototype) that augments the user experience with functionality aimed at collaborative, distributed development.

CollabVS is an effort to introduce collaboration and multiparty, distributed software development enhancements into Visual Studio. A side-effect of this is an enhanced user experience even when the collaborating developers are co-located.

Key Thoughts Behind the Idea

When software is developed collaboratively, a number of problems arise. It is hard to get in touch with the right people or have the right information. Moreover, a large number of concurrent accesses to the same piece of code are made, resulting in increased defects. These problems get aggravated when people collaborate across geographically dispersed sites, and reduced when they are collocated in a single war room or program in pairs. Software development environments offered by IBM, Sun and Apple have incorporated some novel features to address these problems. There is no single IDE that supports rich collaboration (through detailed presence information and lightweight communication tools) and distributed development tools (e.g. Pair programming). Through this project, we address some of these problems by enhancing Visual Studio with real-time collaboration and tools for multiple developersto program together, whether distributed or co-located.

Collaborative Tools, Activities andTypes

CollabVS allows developers to work together whether intentional or ad-hoc. For example, pair of developers can agree to work together at a scheduled time and work together using CollabVS. On the other hand, CollabVS allows for opportunistic collaboration as well. Developes can carry out various activities using the tools provided by CollabVS. Some of these "facets" of CollabVS are shown in the cube below.

Feature Areas

Real-time Presence information compensates forthe team members not being in the same room to see what's going on. Consequently it's goal is to let the user know what the other team members are doing. It fosters ad-hoc collaboration when the team is dsitributed by creating a virtual environment. Example: show what users are online and whether they're editing, debugging, engaged in an instant messaging session, etc.

Contextual Presence facilitates finding relevant information and people quickly. The goal is to provide information based on the context of artifacts that otherwise would have to be extracted manually. Example: show who has an artifact checked out, last few team members who checked in the artifact, last few changes made to the artifact, the tests associated with the artifact and the testers assigned to them.

Communication tools also compensate for the team members not being in the same room to talk to each other. They aim at allowing a user to engage in rich information exchanges with the other team members, in a seamless manner (i.e., without context switching to other tools). Example: provide the ability to start an instant messaging session, an audio/video session, or a shared whiteboard, allfrom the development environment.

Collaborative development tools change the user experience by augmenting the traditional IDE with support for collaborative activities. These tools aim at providing support for collaborative software construction. Example: collaborative code review, where the development environment allows the user to find reviewers (presence), initiate the conversation (communication), co-annotate the code under review, and sign off the reviewed code, without leaving the environment.

People
Publications