Anita Sarma 
home
research
publications
teaching
curriculum vitae (pdf)

Research

My research interests reside in the intersection of Software Engineering, Computer Supported Cooperative Work, and Human-Computer Interaction.Specifically, I am interested in investigating novel conceptual approaches to coordination and have designed, as well as implemented, tools that draw on these approaches to improve coordination in distributed software development. During the course of my work, I have been involved in the design and development of three projects:  Palantír, the Workspace Activity Viewer, and the World View.

 Palantír is a workspace awareness tool that aims to bring increased levels of awareness to Configuration Management (CM) systems. The goal of the project is to support individual developers with advanced graphical views that not only keeps them continuously aware of which artifacts are being changed, but also of the impact and severity of those changes.

Palantír breaks the isolation currently separating distributed CM workspaces by keeping a developer continuously aware of the changes taking place elsewhere in the project. To do so, Palantír provides advanced graphical views, which are based on check-in / check-out information and show the changes that are being made to the artifacts that are of interest to the developer. Changes to an artifact are tracked at real time, and the severity (magnitude of change between the current and the previous version) and impact (influence of the change on the specified artifact) of each change are calculated and visualized. An event notification server is used for communication at real time and different visualizations can be chosen based on user needs.

Palantír currently provides a set of four visualizations, each varying in the degree of detail and obtrusiveness so that developers can choose the visualization that best suits their preferences.

Palantír screenshots depicting advanced conflict detection in distributed software development






The Workspace Activity Viewer The workspace activity viewer allows one to visualize and explore workspace activities and their evolution on a project-wide basis. The workspace activity viewer is a three dimensional (3D) visualization tool that builds on the underlying infrastructure of our research prototype, Palantír, and its events. The 3D visualization gives an overview of all workspaces at the same time, either from the perspective of a developer or an artifact, while simultaneously allowing the viewer to discern the loci of activity, by placing the most important and relevant data at the forefront of the visualization.

We believe that this view will help both developers, who can benefit from the high level view and place their work in the context of others' activities, and managers, who can now get a comprehensive view of all project activities and adjust task assignments if needed. In addition to showing the current state of a project, there is a movie-like capability to replay past events, which can be used for analysis of project dynamics and other forensics. Visualizing this quantity of data leads to scalability issues, which we address through the use of user-definable filters.

Workspace Activity Viewer depiciting parallel activities in a workspace.  Color coded cylinders depict workspace operations on different artifacts or by different developers





The World View is a visualization that provides a comprehensive view of the team dynamics of a project, regarding the geographical location of teams, the time zones of their operations, and the interdependencies among teams. This view is intended to help developers involved in global software development answer questions such as, who are my extended team members,what is the interrelation between our teams, how should I contact other team members?

In this view (Figure a), teams are represented as "red stars" on a world map and interdependencies among teams are shown as "lines" connecting them. The size of the star denotes the size of the team; larger teams are represented as larger stars. Interdependencies among teams are determined based on the number of shared artifacts, which are identified through program analysis of the code base. The thickness of the lines represents the extent of sharing: the thicker the lines, the larger the number of shared artifacts. Through this view, developers can discern at-a-glance which teams are tightlycoupled and through which artifacts (mouse-hovers display the list of shared artifacts).

Right clicking on a team icon displays the organizational structure of that team (see inset in Figure a).Each chart is annotated with project details of that specific team (e.g., the team name, the product feature under development, the list of shared artifacts). Other nodes of the chart display the names of developers in the team, their contact information, and their preferred mode of communication (via highlights in the chart).

Shaded areas of the map represent countries where it is dark. Teams that are still active in the shaded area of the view (based on development activities monitored via CM workspaces) are shown as "white stars". Identifcation of active teams (or active developer in the organizational chart) helps a developer seeking assistance choose the right mode of communication (e.g., email, instant messaging, telephone).

World View showing dependencies across geographically separated teams