Skip to main content

IBM Cambridge Research Center

  Project: Bloom

Researchers: Li-Te Cheng, Bernard Kerr
Contact: Li-Te_Cheng@us.ibm.com

A Collaborative User Experience Project:

Open source software, such as Firefox, Linux, and Eclipse, is created collaboratively by a group of individuals who make the code accessible to the public to both use and enhance. Seeing the pattern of contributions to these projects can provide useful insights into the vitality of the project and the community building it. The Bloom Diagram provides a visualization of contribution activity in open source projects. At a glance, this tool can summarize the overall level of coding and discussion in a project, show which individuals are the recent key contributors, and allow comparisons across multiple projects.

The figure below shows the process for creating a Bloom Diagram. First, information about the targeted open source project is analyzed and classified into "code events" or "comment events." Making changes to a file in the code repository of the project constitutes a "code event." Postings on the project's mailing lists, forums, and bug trackers are "comment events." Comment and code events associated with each person (Step 1) are tallied and a stack of two shaded blocks is generated for each person (Step 2). The upper block represents comment events; the lower block, code events. The darker the shading in the block, the higher the proportion of events for the individual. So, for example, "person D" has more code events than comment events. In Step 3, the stacks are arranged in a row, grouping people with the same types of shadings. For example, persons "A" and "B" are grouped together because they have white top blocks (zero comment events) and dark bottom blocks. In the remaining steps the width of the stacks is scaled in proportion to the total number of events for each person (wider stacks mean more events), and wrapped into a circle, converting each person's stack into a wedge in two concentric circles.



The six steps for generating a Bloom Diagram

The Bloom Diagram is being used to study Sourceforge.net, one of the most popular open source community sites, and the IIOSB (the IBM Internal Open Source Bazaar), a site hosted internally within IBM to promote open source-style development. The screenshot below is an example of the Bloom Diagram for a Sourceforge project. The upper left portion provides summary statistics about the project, for example the total number of events by commentor and coder. Using the slider in the timeline, top right, users can see the state of the project at different points in time. Users can also play an animation of the activity over time from this timeline. The inset on the bottom left is a live "magnifying glass" view around the current mouse position. Keyboard controls are also available to let users zoom in, out, and pan around the screen.



The diagram above gives us a clear sense of the overall proportion of coding to commenting activity in this project. The inner ring, which represents code events, takes up slightly more than a quarter of the circle. One quarter of the outer ring, which represents comment events, overlaps with the inner ring, revealing that only 25% of the community is commenting and coding. The majority of contributors (75%) are just discussing the project.

When the user moves the timeline slider, animated bubbles appear in the inner or outer ring. A bubble in the inner ring represents a code event, while a bubble in the outer ring indicates a comment event. The bubble position as it animates provides a cue about the frequency and recency of the event. If the person associated with the event seldom contributes code or comments after that event, the bubble drifts outward, leaving a "trail" (a series of unfilled circles). If the person continues to create code or comments, the bubble moves back to its starting position, creating a "bounce-back" effect. Judging from this diagram, there seems to be a core group of developers who frequently contribute code (25% of the bubbles in the inner ring are bouncing around the center) and a peripheral group of people commenting on the project less frequently (75% bubbles in the outer ring with fewer bouncing toward the center).

Bloom Diagrams can provide useful insights into how things are going on a project. For example, project leads can use them as a dashboard to monitor how often people are contributing and follow up when contributions start to slow. Potential contributors may decide whether or not to join a project depending on the activity they see. Hosting providers of open source projects can identify the hot projects to promote on the front pages of their community sites or check on the ones that seem to be dying down.