Scenario: A developer is working on a maintenance task. She faces a program comprehension problem and writes about it in a micro-blog message directly within the IDE.
With the historical information collected by our approach, the developer could be given ad-hoc suggestion of where to look in the source code or which developer(s) to contact for assistance on that particular problem. In this way she can actively take advantage of knowledge of others (by contacting other developer to directly ask them about their findings).
On the other hand, the message is eventually seen by other developers, who might have helpful information for her. Once developers are aware of the problem others are facing, they can decide to help each other (via micro-blogging or other means of communication). Micro-blogging within the IDE would establish, in this way, a fundation for collaborative program comprehension.
Micro-blogging is an asynchronous approach on information exchanging. However, such messages are often seen by other users in a semi-synchronous fashion (usually within the day or within a few days at most).
We implemented the proposed approach in an Eclipse plug-in named James. James follows a client-server architecture. The client plug-in collects navigation information and allows users (i.e., developers) to enter quest messages. Messages and actions are sent to the James server in order to be stored and analyzed. Note that our approach is language-independent, thus can be applied to any IDE (e.g., IBM Jazz, Microsoft Visual Studio). We also anticipate the implementation of a fully web-based client.
The current prototype is primarily intended for gaining experience with the type of messages developers are willing and able to send, and how these relate to actual interactions. We plan on releasing James soon.
Software engineers spend a considerable amount of time on program comprehension. Because there is little support for reusing and sharing program comprehension knowledge, developers have to go through the time-consuming program understanding phase multiple times, instead of recalling knowledge from their past or other’s program comprehension activities. With our research we aim at making the knowledge gained during the program comprehension process accessible, by combining micro-blog messages with interaction data automatically collected from the IDE.
Publication and Technical report
The approach behind James has been presented at the 26th IEEE International Conference on Software Maintenance (ICSM 2010) in the Early Research Achievements (ERA) Track in the paper: Combining Micro-Blogging and IDE Interactions to Support Developers in their Quests (in Proceedings of ICSM2010, Timisoara, Romania)
More information can be found in: Combining Micro-Blogging and IDE Interactions to Support Developers in their Quests (Technical Report, 2010)
You can also download a list of example messages, which have been collected during our initial pilot study. In this example, developers where working on the same maintenance task, however they were working on their own and could not see each other messages. We are working on another case study, where developers can directly see each other messages and reply to each other. Such scenario will likely give different examples of messages.
Anja Guzzi (Room : HB 08.290)
Delft University of Technology
Department of Software Technology
Software Engineering Research Group
2628 CD Delft
E-mail: A (dot) Guzzi (at) tudelft (dot) nl