IBM Watson Research Center
Primary Researchers: John Patterson, Li-Te Cheng, Susanne Hupfer, Steven Ross, Dan Rosen
A Collaborative User Experience Project: more about CUE...
Note that this early work for this project is completed and has moved outside of the CUE research group to Rational. Please visit http://jazz.net for the latest information about Jazz.
The Jazz research project grew out of a recognition that although software development is an inherently collaborative process in which teams of developers work together to design solutions and produce code, this collaboration is usually ad hoc and rarely supported by tools within the programmer's integrated development environment (IDE). As software development teams become increasingly geographically distributed, and face greater time and resource constraints, there is a need for software development tools to support structured and unstructured communication and coordination of work. Integrating such tools into the IDE, and enabling them with awareness of the development process and artifacts, may help reduce context switches between tools inside and outside of the IDE, and make for a more seamless connection between development and collaboration.
The Jazz research project seeks to extend the Eclipse (http://www.eclipse.org) software development environment with collaborative capabilities to support coordination, communication, and awareness among a small close-knit team of developers. This involves creating connections to server infrastructure for messaging, awareness, and source control, building hooks into the Eclipse development environment to supply awareness of the developers' interactions with source code and source control, and integrating user interfaces for communication and awareness within the Eclipse environment to provide unobtrusive access to in-context team information.
In the Jazz prototype, teammates are first-class members of the environment on a par with files, folders, and libraries. People's icons appear in a "band" similar to an instant messaging buddy list, allowing the developer to monitor who is on-line coding. Developers can include macros in their status messages that automatically reflect what files or projects they are working on at the moment and whether they are coding or debugging. Developers can also initiate chats from highlighted source code, automatically hyperlink code-specific keywords in their chats to relevant source code, and save the chat transcripts either as code annotations or in a discussion forum. They can also communicate through screensharing and voice-over-IP telephony with no setup overhead. In addition, Jazz provides resource awareness by decorating files and other resources in the file viewer with colored icons to indicate what other developers are doing with their local copies of the files. For example, developers can tell at a glance that a file is being edited at that very moment, or that a file has been saved locally but not checked back into the code repository. Tooltips on the resources reveal who is responsible for these changes.
For more information about Jazz and related work in CUE, see
"A Need-Based Collaboration Classification Framework" (technical report 04-17)
"How a Good Software Practice Thwarts Collaboration - The Multiple Roles of APIs in Software Development" (technical report 04-15)
"Sometimes You Need to See Through Walls - A Field Study of Application Programming Interfaces" (technical report 04-14)
"Introducing Collaboration in an Application Development Environment" (technical report 04-12)
"Jazzing up Eclipse with Collaborative Tools" (technical report 03-12)
"Building Collaboration into IDEs" (ACM Queue, Dec/Jan 2003-04, pp. 40-50)