Tesseract


Research has, thus far, either exclusively focused on studying coordination either from the technical dependencies perspective or through the lens of social interactions in the team. Yet, both of these sets of relationships – the technical and the social – become much more useful when they are considered together. Understanding and using analysis showing the degree of match, or congruence, between the social and technical aspects of a project is vital for supporting collaboration and coordination on software projects.

Tesseract is a socio-technical browser that analyzes code archives, communication records, and the project’s issue database to capture the socio-technical relations between code, developers, and issues. Tesserct has been specifically constructed to:
  • Simultaneously show the social as well as technical relationships among different project entities (e.g., developers, communication, code, and bugs).
  • Highlight the match (or the lack thereof) between the social and technical relationships.
  • Cross-link and enable interactive exploration of these relationships and how they change over time.
 We informed the design of Tesseract by building on (1) studies that reveal the problems of managing change and communication in teams and (2) lessons learned from tooling attempts that aim to address these problems. We then conducted interviews with open source developers to confirm these problems and better understand their nature in this particular environment. These interviews helped us identify the capabilities that must be present in a tool that will be validated with data from an open source project.
Tesseract UI showing 4 juxtaposed panels
More specifically, Tesseract uses four juxtaposed displays (see Fig. 1):
  • The Project activity pane (Figure 1(a)) displays the overall activities in a project in a time series display. It allows users to select a time period for their investigation, which is reflected in all other panes.
  •  The Files network pane (Figure 1(b)) displays artifact dependencies as a file-to-file network, which is created by linking files that are frequently changed together. The number of times two files are committed together is represented by the thickness of the edges in the network. A textual listing of the file names is provided to allow quick identification of specific files by name.
  • The Developers network pane (Figure 1(c)) displays relationships among developers. Two developers are considered related if they either edited the same artifact or interdependent artifacts. The edges in this network are colored (green vs. red) to show when developers have communicated via either email or the bug repository (e.g., comments or activities in Bugzilla). The thickness of the edges is derived from the number of times developers communicated. Similar to the file network, a textual listing of the developer names is provided.
  • The Issues pane (Figure 1(d)) displays defect or feature related information as a stacked area chart as well as in a detailed listing.
These displays are cross-linked allowing interactive exploration of underlying relations tying these entities.  Tesseract enables exploration in a number of ways. First, clicking on an entity (graph element or line in the textual lists) will highlight that entity and will also show all related entities in the other panes. For example, clicking on a particular developer highlights all the files which that developer had edited in the given time frame. Second, hovering over a node in the ‘Files’ or ‘Developers’ panes causes two actions: (1) display of additional information about the node and (2) highlighting of all neighbors (any other nodes with an edge to the hovered over node). Third, a user can pan (background drag), zoom (wheel), and move individual nodes in the graph. Fourth, search functionality allows users to quickly find an entity when they know its full or partial details. Finally, Tesseract allows users to change the perspective of their investigation by drilling down on specific artifact(s) and developer(s). For instance, a user might drill-down to only the developers she personally knows in the ‘Developers’ pane to find whether any of her acquaintances have expertise who could provide help with her current task.

Results


Here are some interesting examples of how Tesseract can be used to explore a given project. These results are from our analysis of the GNOME Rhythmbox project:
 
Distinct spurts in activities

Like most projects, Rhythmbox had distinct spurts of activities followed by lulls in development. It was interesting to note, however, that spurts had different leaders, with different leadership styles as evidenced by the amount and patterns of code contributions and project communications.

Phase III development patterns

Phase 3. Stephen emerges to be the leader. Stephen holds a central position in the communication graph and appears to be communicating most with Alicia and Todd. The top row graph 1, represents the entire communication network including email and bug discussions. Top Row graph 2 shows the communication network when Stephen is filtered out. Top row graph 3 shows the communication patterns when only email is considered.

The second row graphs represent code contributions. Nodes are highlighted in yellow for contributions by each developer listed under the graph. We see that Stephen makes the most contributions to the code base, followed by Alicia and Todd

Phase V development patterns
Phase 5. Alicia emerges as the leader. She holds a central position in the communication network and seems to communicate the most with Todd and John. However, if Alicia is filtered out Todd is not the center of the communication graph as compared to Alicia. Again, as shown in top row graph 4, email constitute only a subset of the communications in the project.

The second row graphs represent code contributions, with nodes for each listed developer highligted in  yellow. We see that code contributions are consistent across developers depicting a very different work distribution style than that evident in Phase III


Selected Papers 

Credits/ Contacts

The following people are involved with developing Tesseract. If you have any questions, you can contact any of the developers:

Primary contact: Anita Sarma
Signficant code contributions by: Larry Maccherone
Data from GNOME mined and linked by: Patrick Wagstrom
Faculty guidance by: Jim Herbsleb

Funding

This effort is partially funded by the NSF grant number IIS-0329090, and the Software Industry Center and its sponsors, particularly the Alfred P. Sloan Foundation. Effort also supported by a 2007 Jazz Faculty Grant.