Distributed Software Development with CHIME

Stephen E. Dossick and Gail E. Kaiser
Dept. of Computer Science, Columbia University
500 W. 120th St., 450 CS
New York, NY 10027 USA
+1 (212) 939-7000
{sdossick, kaiser}@cs.columbia.edu

Computer Science Technical Report #CUCS-007-99

Introduction

Distributed software engineering projects face many challenges.  In addition to the difficulties of coordination caused by geographical dispersion, time zone differences may mean that teams are temporally dispersed as well.  A group in New York attempting coordination with a programming team in, for instance, Brisbane, Australia faces a 13 hour time difference.  CHIME, the Columbia Hypermedia IMmersion Environment, is a framework that aims to address these issues.  CHIME builds upon results from both the User Interface and Hypermedia research communities to create a distributed software development environment for managing and organizing information from all phases of the software lifecycle.  CHIME is designed around a model in which the software artifacts continue to reside in their original locations.  Source code may be located in a configuration management system, design documents in a document management system, email archives on a remote corporate intranet site, etc.  Thus CHIME does not handle storage of artifacts -- users continue to use their existing tools to access this data while CHIME provides data organization and hypertext linking capabilities.  CHIME maintains only location and access information for artifacts.  CHIME generates a Multi-User Domain style virtual world from the metadata.  The virtual world may take the form of a 3D immersive virtual reality (as in many contemporary games like "Quake" from Id Software) or a simple text world (as in the original "Adventure" and "Zork" games from the 1970's and 1980's).

In the CHIME virtual world, users interact with project artifacts by "walking around," where they potentially encounter other users' representations (avatars).  While incidental encounters add a sense of realism to a virtual world, a potentially more useful application of this technology (which CHIME supports) is to allow a novice user to collaborate with an expert by finding his avatar and beginning a conversation.  Geographically and temporally dispersed users are able to more easily gain context with work being performed elsewhere.

Distribution Roadblocks

Software development teams attempting distributed development face many issues beyond those encountered by more traditional, single site development efforts.  These include:

Model

CHIME is built upon a conceptual model which includes Groupspaces, Groupviews, and Software Immersion.  These three interrelated concepts attempt to address the issues inherent in a distributed software development effort.

We use the term Groupspace to describe a persistent collaborative virtual space in which participants work. The participants may be geographically or temporally distributed, and they may be from different organizations cooperating on a common project (subcontractors on a defense contract, for example). Contained within the Groupspace are project artifacts as well as the tools used to create, modify, and maintain them. Artifacts may be organized and reorganized at will by project participants.

Central to the Groupspace concept is the idea that project artifacts continue to exist in their original form in their original repositories. This differs from traditional Software Development Environments (SDEs) (like Oz[1], SMILE[9], Desert[14], Sun NSE[17], Microsoft Visual C++[12]), as well as most traditional Groupware systems (like eRoom[8], TeamWave[18], and Orbit[11]) in which artifacts are under the strict control of the environment. In these systems, users are expected to access artifacts only through the development environment's cadre of tools or via COTS tools specially "wrapped" to work with the environment. In a Groupspace, artifacts continue to exist in their legacy databases, configuration management systems, bug tracking systems, rationale capture tools, etc.  Additionally, Groupspaces may contain information generated within the space. A particular Groupspace may contain built-in tools and services to be used by participants, e.g. to add arbitrary annotations to particular artifacts, hold real-time chat sessions, add hypertext links on top of (and separate from) artifacts in the system, semi-automatically propagate knowledge among participants (in the manner of a recommender system [15]), etc.

Groupviews are multiuser, scalable user interfaces used to navigate and work in a Groupspace. In addition to allowing Groupspace participants to find and access relevant information quickly (as they might in a single user system, or a system in which they had no knowledge of other users' actions), Groupviews keep users informed about work being performed by fellow users.  Groupviews build on research and commercial work in Multi-User Domains (MUDs) [3], chat systems [13], virtual environments [5], and 3d immersive games [7]. In a Groupview, a set of virtual environment rooms containing project artifacts is generated from the organization of the artifacts in the Groupspace. Rather than placing artifacts into these rooms arbitrarily or according to some external mapping mechanism (as in Promo[4], where the mapping from artifacts to rooms is created from a software process definition and cannot be modified by users without corresponding modification to the process), a Groupview generates the rooms and connections between the rooms from the artifacts themselves. For example, a software module might become a room in the Groupview, and the source files making up the module might be furnishings inside the room. Corridors might link the modules' room with rooms containing design documentation, test reports, and other artifacts related to the code.  A core aspect of Groupviews is the ability to provide selective awareness of other users' actions. Participants' locations in the virtual environment, as well as their scope of interest (i.e. the project or projects they are currently involved in, portions of the system they are considered "expert" in, related documents they have recently read, written, or modified, etc.) are shared among other users. In the case of a Groupview involving multiple teams working on separate (but interrelated) portions of a project, it should be possible for users to "tune" awareness so they receive only information relevant to them and their work.

In a Software Immersion, the third component of the conceptual model underpinning CHIME, team members collaborate and perform individual tasks in a virtual space defined by the structure of the artifacts making up the software system. This builds in some respects on previous work done in the Software Visualization community (see [16]) in which visualizations of module interactions and interrelations are created. The primary difference here is that a Software Immersion is intended to be built semi-automatically, while most software visualizations are generated by human experts. When visualizations have been created by software, the generating software has been built to handle a certain small class of input (output from sorting algorithms for example as in [2]).  When applied properly, Software Immersion can speed the learning curve faced by new project members. The architecture and organization of the system they are learning is no longer an abstract concept, it is something they can walk around in and inhabit. Software Immersion is similar in concept to emerging technology in use in Civil Engineering.  In [6], the author shows quantitatively that new construction project members come up to speed faster and perform fewer mistakes when an immersive, virtual construction environment is built from the building design.

Discussion

The CHIME model addresses many of the roadblocks of distributed development.  Groupspaces coordinate access to software artifacts despite their location.  Design documentation which may live on a server in New York is transparently accessed through the underlying Groupspace.  Test plans from a team in Chicago can be easily found and commented on by team members in Los Angeles.   Thus Groupspaces help address coordination issues faced by development teams.

Groupviews attempt to help distributed teams work as a single unit by addressing awareness aspects of their collaboration.  By utilizing virtual environment concepts, Groupviews provide a single shared workspace for all developers to inhabit.  Even text-based Virtual Environments have been shown to be quite immersive to their users; see, for instance, the Carnegie Mellon study [10] in which users were shown to be addicted to their internet-based chat rooms and virtual environments.  Awareness aspects of Groupviews help keep distributed team members up-to-date with activities being performed at other sites.   By keeping users immersed in a single environment and aware of the work being performed at other sites, CHIME helps bind a distributed team together.

Software Immersion and Groupviews work together to help address some of the communications issues brought on by distribution.  Users can walk through the virtual environment to find developers responsible for the software components they wish to discuss.  Learning curves are shortened in two ways. First, since the organization of the virtual environment is created from the relationships among the software system modules, users quickly gain context on how the various components fit together.  Secondly, communications are made easier because users can find other developers in the virtual environment based on modules they are responsible for.

Finally, Groupviews' selective awareness aspects can help with temporal distribution issues.  By making information about what actions other team members have been performing recently, it becomes easier for a temporally dispersed set of developers to maintain a feeling of context with the actions being performed at remote sites.

Conclusions

The CHIME model attempts to address many of the effects of geographical and temporal distribution on distributed software development activities.  The model's three interrelated components, Groupspaces, Groupviews, and Software Immersion, work together to form an environment in which distributed teams of software developers can more easily work as a single unit.

We have performed an initial implementation of the CHIME model and are beginning experiments with it.  In an initial experiment, we have created a Groupview from the Linux 2.0.36 kernel, which includes over 1.2 million lines of source code as well has many megabytes of supporting documentation (including design documentation, build instructions, informal README files, and web-based archives of the linux-kernel mailing list, used by kernel developers to discuss technical issues).

References

  1. I. Ben-Shaul and G. E. Kaiser. A Paradigm for Decentralized Process Modeling. Kluwer, 1995.

  2.  
  3. Marc Brown and Marc A. Najork. Algorithm animation using 3D interactive graphics. In Proceedings ACM Symposium on User Interface Software and Technology, pp. 93-100, November 1993.

  4.  
  5. P. Curtis. MUDs Grow Up: Social Virtual Reality in the Real World. In Proceedings of 1992 conference on Directions and Implications of Advanced Computing.

  6.  
  7. J. C. Doppke, D. Heimbigner, and A. L. Wolf. Software Process Modeling and Execution within Virtual Environments. ACM Transactions on Software Engineering and Methodology, vol. 7, no. 1, January 1998, pp. 1-40.

  8.  
  9. Electric Communities, Inc. The Palace. http://www.thepalace.com.

  10.  
  11. D. B. Hogan. Modeling construction cost performance: a comprehensive approach using statistical, artificial neural network and simulation methods. Columbia University Dept. of Civil Engineering PhD. Thesis, 1998.

  12.  
  13. Id Software, Inc. DOOM. http://www.idsoftware.com

  14.  
  15. Instinctive Corp. eRoom. http://www.instinctive.com/html/eroom.html.

  16.  
  17. G. E. Kaiser and P. H. Feiler. Intelligent assistance without artificial intelligence. In Proceedings of 32nd IEEE Computer Society International Conference, February 1987, pp. 236-241.

  18.  
  19. Kraut, R., Patterson, M., Lundmark, V., Kiesler, S., Mukophadhyay,T. & Scherlis, W. (1998). Internet paradox: A social technology that reduces social involvement and psychological well-being? American Psychologist, Vol. 53, No. 9, 10171031.

  20.  
  21. T. Mansfield, S. Kaplan, G. Fitzpatrick, T. Phelps, M. Fitzpatrick, R. Taylor. Evolving Orbit: a progress report on building locales. In Proceedings of Group97, ACM Press, Phoenix, AZ, Nov 1997.

  22.  
  23. Microsoft Corp. Visual C++. http://msdn.microsoft.com/visualc.

  24.  
  25. MIRC, Inc. Introduction to IRC. http://www.mirc.com/irc.html.

  26.  
  27. S. P. Reiss. Software visualization in the Desert environment. ACM SIGPLAN Notices, 33(7):59-66, July 1998.

  28.  
  29. B. Sarwar, J. Konstan, A. Borchers, J. Herlocker, B. Miller, and J.Riedl. Using Filtering Agents to Improve Prediction Quality in the GroupLens Research Collaborative Filtering System. In Proceedings of the 1998 Conference on Computer Supported Cooperative Work, Seattle, November 1998.

  30.  
  31. J. Stasko et al., editor, Software Visualization: Programming as a Multimedia Experience, MIT Press, 1998.

  32.  
  33. Sun Microsystems, Inc. Introduction to the Networked Software Environment. March, 1988.

  34.  
  35. TeamWave Software, Ltd. TeamWave Workplace. http://www.teamwave.com.