ProxiScientia: A sneak preview of a visualization tool for collaborative software development
UPDATE 2012-04-03: Paper on ProxiScientia accepted at the ICSE CHASE workshop. Here’s a preprint (PDF).
The September semester is officially over, at least for me. This was my first semester as a PhD student, too. And it could be construed as a test of my patience in assuming various challenges or challenging tasks and the success rate in attaining the predefined objectives, if not more.
I confess I did, in fact, accept to TA two third-level undergraduate courses while taking a peculiarly interesting, but challenging, course known as Computer-Supported Collaborative Work (CSCW — could it be!) taught (or, rather, facilitated) by Margaret-Anne Storey. More about my contemplations on this course can be found in this post. Here, I’d like to discuss on the project I completed for the course which culminated into a final paper and presentation in lieu of the traditional, prosy final examination-like course structures.
Basically, the project I chose to pursue along with Sean Stevenson of CHISEL and Owen Duckett (an undergraduate student here at UVic) involved conceptualizing, designing, and implementing a visualization tool that provided real-time awareness of ongoing activities in a collaborative software development environment. We baptized this tool with the name ProxiScientia, a portmanteau word merging “proximity” and “scientia”, the latter meaning “awareness” from Latin. The backbone (and back-end) of ProxiScientia is Blincoe et al.’s proximity algorithm, which has been accepted for publication at the CSCW 2012 conference. (Getting a hold of such oblivious unpublished information required less than a cloak-and-dagger operation, mainly thanks to modern networking techniques…)
Let me succinctly expose the conceptualization of ProxiScientia in terms of a solid five-dimensional framework proposed by Storey et al. in this paper:
- Intent. The motivation behind ProxiScientia lies in the needs that arise to efficiently coordinate and communicate in collaborative software development environments in real-time. Visualizing such requirements posits a strong cognitive support to developers, testers, documenters, and even project managers.
- Information. ProxiScientia is based on the proximity algorithm, as mentioned above. This algorithm extracts context data, i.e. data that captures the user’s interaction with their IDE. Because user-IDE interactions occur continuously, proximity captures them in real time, which is essential per our tool’s intent. ProxiScientia, therefore, does not carry out semantic analysis on the source code.
- Interaction. This dimension is crucial for the visualization as it outlines how the user shall interact with the tool. ProxiScientia may be integrated into the IDE as a plug-in or it may serve as a standalone system. It shall convey information to the user silently or disruptively. The latter could pose a disruptive interruption threat to the user’s prospective memory; however, we believe that the information thus provided far outweighs the importance of most future tasks because immediate coordination in collaborative projects is vital with respect to the overall project objectives. (Or, so says empirical research in the field… I believe it, epistemologically.)
- Presentation. ProxiScientia uses entity-centric radar graphs or networks, wherein an entity represents a developer or a task. In the developer-centric case, the current developer is placed in the center of the graph and other related developers (yielded by the proximity algorithm) revolve around as nodes. The distances between the revolving nodes to the central node represent the proximity semantic relationship. The same principle applies to task-centric graphs (screenshots below).
- Effectiveness. To determine the effectiveness of ProxiScientia, we plan to conduct rigorous, in situ user studies. Preliminary expert opinion studies have revealed encouraging results and have provided invaluable insights to ameliorate features and other technical properties of the tool.
The following figure illustrates ProxiScientia integrated as an Eclipse plug-in and tested on some dummy task with simulated users:

ProxiScientia in action: User-to-user proximities for a sample Java project. The ego-centric network is displayed as a view on the lower-right corner (by default).
The general system architecture is best exposed by the following diagram:
There is still a lot of work in our research and development agenda to enrich the preliminary implementation of ProxiScientia with extra features and properties we deem essential to provide and increase developer awareness.
