SecondWATCH

From VitalWiki

Jump to: navigation, search

The Second Life Workspace Awareness Toolkit and Collaboration Hub, or SecondWATCH for short, is a 3-dimensional (3-D) workspace awareness tool based on Second Life, a 3-D online virtual world.

[*] En Ye, Lev A Neiman, Hiep Q Dinh and Chang Liu. "SecondWATCH: a Workspace Awareness Tool based on a 3-D Virtual World". In ICSE '09: Proceedings of the 31th International Conference on Software Engineering, New Ideas and Emerging Results, Vancouver, Canada, May 2009.

Contents

Overview

Awareness of fellow developers' activities has been widely recognized as essential in facilitating collaboration in a software developing team. However, as reported in several field studies on software development, awareness information on software artifact and coworker is difficult to acquire. To help software developers maintain group awareness and enhance their collaboration, we developed a prototype workspace awareness tool called SecondWATCH based on Second Life, a 3-D online virtual world. SecondWATCH informs developers of real-time and history artifact and co-worker information by monitoring team members' activities on their local workspaces, version control repository, and bug tracking system. It then extracts, analyzes, and visualizes the information in SL as a common view shared by the whole team using a 3-D city metaphor.

Videos & Screenshots

Videos

{{#widget:YouTube|id=o7OLPkHnlw8}}

Screenshots

{{#widget:Picasa |user=ye.yearn |album=5306392051959381265 |width=600 |height=400 |captions=1 |autoplay=0 }}

Full-size screenshots are available at SecondWATCH Screenshots.

Design

According to [1], developers in open-source projects tend to maintain both a general awareness of the whole team, and more detailed knowledge of people that they plan to work with. They maintain group awareness by manually "pulling" information from several information sources including version control repository, and bug tracking system. This is also true for commercial software developers. According to a two-month field study of "collocated" software developer teams at Microsoft [2], Ko et al. found that the most common information and the second most frequent information these developers are seeking is coworker awareness, i.e. "what a developer' coworkers have been doing", and artifact awareness information need "How have resources I depend on changed" was ranked as the third common one.

Based on the findings above, SecondWATCH tries to provide the following information to the developers automatically.

  • Presence awareness information: Whether each developer is online or not, and which task they are working on.
  • Real-time artifact awareness information: For each artifact, which developers are changing it in their local workspaces. The "changing" operation can represent any of the following actions: add, delete, rename, move, and modify.
  • History artifact awareness information: For each artifact, how many revisions are contained, who has checked in most recently, who has checked in most often, and how recently the latest change has been committed.

3D City Metaphor

Shneiderman suggests that: "A useful starting point for designing advanced graphical user interfaces is the Visual Information-Seeking Mantra: overview first, zoom and filter, then details on demand."[3]. We try to follow this mantra when designing the visualization of SecondWATCH. We first create a common overview of awareness information based on the file structure of project repository. Then we use animations to highlight active artifacts (i.e. all the files that have local changes from developers' workspace, and these changes are not yet committed to the central repository). We also create a filter by which developers can locate the artifacts in which they are interested quickly. Meanwhile, developers can use zoom function provided by SL. Finally the detailed awareness information can be obtained through a pop-up dialog when developers click the artifact visualization. We will discuss the detailed visualization design in the following paragraphs.

SecondWATCH visualizes presence information by showing developers' status through SL buddy list, and showing the task id and summary (Figure 1e) above the head of developers' avatar. It uses a 3-D city metaphor to visualize both real-time and history artifact awareness information, which is based on the city metaphor proposed in the CodeCity project[4]. As the visualization in CodeCity, SecondWATCH uses city buildings to represent files, and city district to represent folders, with the layout of the city representing the overall file structure of the software project. In SecondWATCH, the buildings shown as differently colored stacked cylinders stand on top of city districts shown as flat blue rectangles (with color saturation representing nested packages). Different from CodeCity that visualizes class metrics (such as number of methods in a class), SecondWATCH visualizes artifact awareness information. In addition, animations are used to highlight the active artifact information, since developers are more interested at it compared with history information[5]. Animations are created in SL when any developer makes local changes to an artifact, and disappear if all its local changes has been committed or rolled back. By monitoring the animation, developers can easily know what other developers are doing, detect whether more than one developers are working on the same artifact, and take actions to avoid the effort of resolving conflicts later.

SecondWATCH represents a file as a stack of differently colored cylinders. The height of the stacked cylinders represents the number of the revisions the file has. A single cylinder represents a revision with its color mapping to the author of that revision. If successive revisions have the same author, the corresponding cylinders will be combined into one cylinder whose height is the sum of the individual heights of all the revisions. Cylinder stack is sorted by date, such that the most recent revision is always on top. The color saturation of the cylinder is used to visualize the time since that revision has been checked-in. The more recent a file has been checked-in, darker it is. In this way, it is easy to guess how many revisions a file has by the number of cylinders, who is the author of the latest version by the color of the top cylinder, and who has committed most revisions in total by which color of the cylinder is highest.

SecondWATCH uses different animations to visualize active (or real-time) artifact information. When a developer changes a file locally, a 3-D token (Figure 1d) representing that developer is added to the top of the corresponding building, and the token rotates around the building. Also the building will start to emit smoke (Figure 1c) in the color corresponding to that developer, which rises to the sky. Through this animation, developers can easily tell the popularity of a file, and then decide whether or not to make changes on it, since changes may incur conflicts to the other developer who have changed it. If more than one developer are changing the same file, the whole building will be shaking, warning the team about the possible conflict.

With the current visualization, it may be difficult for developers to get the awareness information on an artifact if the code base is large. A filter is created to help developers quickly locate the artifacts in which they are interested. The filter allows the developers to select to which project it will be applied. When the developers type any keyword in the filter dynamically, only the artifacts whose name matches the keyword can be shown in the visualization, and other artifacts will become invisible. They can quickly switch back to normal state by removing keywords in the filter. The filter is only applied to local developer's view, i.e., other developers' view is unchanged by the filter operation. Therefore, the filter can be used to create a customized personal view for each developer without affecting other developers' view. To get the detailed information of an artifact, developers can click on the corresponding visualization. They can also highlight the artifact in which they are interested by making the corresponding building glow (Figure 1f).

Visualization Mapping

SecondWATCH uses city buildings to represent files, and city district to represent folders, with the layout of the city representing the overall file structure of the software project. In SecondWATCH, the buildings shown as differently colored stacked cylinders stand on top of city districts shown as flat blue rectangles (with color saturation representing nested packages).

Building property Software project artifact property
History artifact information (static)
Height (Number of floors) Number of revisions (a revision -- a floor)
Location of the floor When the revision was check-in (most recent revision is always on top)
Color The developer who commits this revision
Color saturation (or transparency) How recent each revision was checked-in (range: one hour, one day, one week, one month, one quarter, one year, more than one year)
Real-time artifact information (dynamic)
Smoke emiting from the top of the building Active artifact (Those artifacts that are being changed locally by at least one developer)
An icon rotating around the building Developer who is making the local change
The building is shaking More than one developers are changing the same artifact
The building with lights on (glowing) Highlighted artifact

Implementation

SecondWATCH is implemented as an Eclipse plug-in by integrating Eclipse with a modified SL client viewer, which is open-source. Eclipse communicates with SL client through Inter-Process Communication (IPC). MySQL database is used to store the awareness information. SecondWATCH mainly consists of three components: awareness information monitor (or extractor), awareness information analyzer, and awareness information visualization. The monitor listens to developers's local operations in Eclipse IDE, their activities related to version control repository and bug tracking system through CVS plug-in and Mylyn plug-in, which are already integrated into official Eclipse release. It then extracts awareness information, and stores it in a MySQL database. Developers need to perform operations on version control repository and bug tracking system through the CVS and Mylyn plug-ins so that their operations can be monitored. Then the analyzer processes the information provided by the monitor, and stores the information back to the database. Finally, the visualization gets the information from the database, and visualizes it to the developers in SL as a common view. Our tool takes advantage of SL's 3-D object building feature to create 3-D objects representing software artifacts, and utilizes its various communication functionalities (text chat, Instant Message (IM), group message, and voice chat) to provide interaction between team members.

Application

SecondWATCH visualization can be loaded on a second personal display for individual developer or a large display in the shared workspace for the whole team. SecondWATCH is currently being used as our workspace awareness tool when we are developing it, i.e., used to show awareness information on its own developing process. It has also been successfully used to visualize the history awareness information of three open-source projects: FreeMind, jEdit, and GUJ.

Comparisons with existing workspace awareness tool

Compared with existing workspace awareness tools such as Palantir[6], JAZZ[7] and FASTDash[5], SecondWATCH is different in the following ways. Firstly, SecondWATCH not only extracts awareness information from version control repository and local workspaces, but also from bug tracking system, while all the tools only extract awareness information from version control repository and local workspaces. Secondly, SecondWATCH highlights active artifacts, and also combines the common view for the whole team with the customized personal view for each developer together by using a filter. Thus, it can help developers acquire the awareness information they want on the artifacts in which they are interested quickly. Thirdly, SecondWATCH enables developers to interact with each other through avatars with various communication means under the context of 3-D awareness information visualization in SL. This makes them feel they are much more "there", which in the end enhances the collaboration among team members.

References

[1] C. Gutwin, R. Penner, and K. Schneider. Group awareness in distributed software development. In CSCW ’04: Proceedings of the 2004 ACM conference on Computer supported cooperative work, pages 72–81, New York, NY, USA, 2004. ACM Press.

[2] A. J. Ko, R. DeLine, and G. Venolia. Information needs in collocated software development teams. In ICSE ’07: Proceedings of the 29th International Conference on Software Engineering, pages 344–353, Washington, DC, USA, 2007. IEEE Computer Society.

[3] B. Shneiderman. The eyes have it: A task by data type taxonomy for information visualizations. In VL ’96: Proceedings of the 1996 IEEE Symposium on Visual Languages, page 336,Washington, DC, USA, 1996. IEEE Computer Society.

[4] R. Wettel and M. Lanza. Program comprehension through software habitability. In ICPC ’07: Proceedings of the 15th IEEE International Conference on Program Comprehension, pages 231–240, Washington, DC, USA, 2007. IEEE Computer Society.

[5] J. T. Biehl, M. Czerwinski, G. Smith, and G. G. Robertson. FASTDash: a visual dashboard for fostering awareness in software teams. In CHI ’07: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 1313–1322, New York, NY, USA, 2007. ACM.

[6] A. Sarma, Z. Noroozi, and A. van der Hoek. Palantir: raising awareness among configuration management workspaces. In ICSE ’03: Proceedings of the 25th International Conference on Software Engineering, pages 444–454,Washington, DC, USA, 2003. IEEE Computer Society.

[7] S. Hupfer, L.-T. Cheng, S. Ross, and J. Patterson. Introducing collaboration into an application development environment. In CSCW ’04: Proceedings of the 2004 ACM conference on Computer supported cooperative work, pages 21–24, New York, NY, USA, 2004. ACM Press.

Poster

New Version: http://vital.cs.ohiou.edu/vitalwiki/images/b/bb/SecondWATCH_Poster.ppt

Old Version: http://vital.cs.ohiou.edu/vitalwiki/images/b/b8/AwarenessPoster_revised.ppt

Survey

Pre-study questionaire: http://www.surveymonkey.com/s.aspx?sm=Cgj3uetbLzQveP9kujTCsQ_3d_3d

Post-study questionaire: http://www.surveymonkey.com/s.aspx?sm=IKLg2IsPs8Wg7ZQ5sYH2nQ_3d_3d

Personal tools