Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Design

Social Software Development Environments


Collaboration Within the Development Environment

In 2002, we began to explore integrating collaboration into an application development environment. This effort, the Jazz Research Project (JRP), is a system we developed at IBM Research that focused on providing a set of collaborative features for the Eclipse IDE (www.eclipse.org). (JRP is related to, but not the same as, Jazz from IBM Rational.) The aim was to promote interaction and team-building among a small, core group of developers, while capturing the team's artifacts to provide a useful knowledgebase and context for communication. The system was modeled after an "open office" approach to software development, in which team members are situated close together at their workstations, with shared space available for holding meetings, sharing materials, and collaborating at whiteboards. One important advantage of such an environment is "team awareness": While they focus on their own tasks, team members have a peripheral sense of the activities, discussions, and work occurring around them. Another significant characteristic of the open office is easy communication: People ask questions or provide information to the whole team, or call colleagues over for consultation. We wanted to provide the benefits of this type of open development environment, even in situations where developers may be distributed around the world.

Our system extended the Eclipse Java development environment to emulate the collaborative features of an open office: increasing the user's awareness of people, resources, and activities, and encouraging team communication. To promote team awareness, we elevated developers to first-class standing in the IDE—as prominent as files, folders, and libraries. JRP supplied an instant-messaging-like "buddy bar" along the bottom of the IDE that provides peripheral awareness of one's teammates. Each team member is represented by an image and, at a glance, you can tell who is online and working in the JRP environment. Hovering over the images reveals further details about developers' activities; for instance, what files they are currently editing or debugging (see Figure 1). From the buddy bar, users can kick off a variety of interactions, including text chat, screen sharing (useful for pair programming, joint debugging, and code reviews), and voice-over-IP telephony. Communication can also be initiated from the work context itself, by selecting a block of code to discuss. Chats can be saved as annotations, accessible from markers in the margin next to the code they reference or as entries in a team-wide discussion forum; team members who come along later can read and contribute to the existing discussions.

[Click image to view at full size]

Figure 1: The Jazz Research Prototype.

In addition to team awareness, JRP also provided "resource awareness" by extending the Eclipse IDE's Package Explorer file viewer. Files and other resources in the viewer are decorated with colored icons, indicating what other developers are currently doing with local copies of the files; for instance, which files have been checked out of source control, which have been edited, and which have been checked back in, making one's local version obsolete (see Figure 2). Decorators are also used to signal that someone is modifying a file at a particular moment. Hovering over a resource reveals a tooltip with further details; for example, who changed the resource and when. Resource awareness is also provided through extensions to the code editor: Markers in the left margin of the code automatically pinpoint where team members have made modifications. The decorators and markers help developers maintain a peripheral awareness of the activities of their teammates, including where others are working in the codebase and what issues surround specific parts of the code. Whether developers are working in the same building or around the world, the team- and resource-awareness features introduced by the JRP can help team members coordinate their work and avoid conflicts and duplication of effort. Moreover, collaboration happens in a contextual way: Developers are not forced to leave their core work environment—the IDE—to launch collaborative tools; they can instead easily access them as integral extensions to the IDE.

[Click image to view at full size]

Figure 2: Resources in the Package Explorer are decorated with colored icons: Yellow indicates a file has been checked out and changed; green indicates someone is currently modifying the file; and black indicates the file has been checked back into source control. Tooltips provide more detailed information about each resource.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.