Configuration management for distributed development - practice and needs

Abstract: Configuration management (CM) includes synchronizing and supporting developers in their common development and maintenance of a system. The rapid development of the Internet and time-to-market pressure affects software development. In order to utilize skilled personnel despite geographical location, groups of developers are now working all over the world on the development of common systems, a situation called distributed development. From different locations they may need to concurrently modify thousands of files, sometimes the same files, within the product. When the prerequisites change this implies new, and harder, demands on CM support. This thesis presents two studies on configuration management. The first one focuses on a CM system and an evaluation of its functionality in the particular situation of a company with well-defined CM routines. Situations where the system turned out to be cumbersome to use or lacking functionality are identified and improvements are outlined for how the problems can be solved or the situations better supported. The second study classifies different cases of distributed development and client-server architectures, identifies three development strategies and discusses the properties of different synchronization models with respect to distribution. The analysis is supported by interviews with several companies and is focused on CM aspects related to distributed development. Experiences and practical guidance for some CM key-areas are also presented. The results presented in this thesis provide an understanding of concurrent and distributed development and their demands on CM and CM tools. It is concluded that the CM tools of today do not adequately support distributed groups, i.e. highly interactive distributed development - a problem that must be addressed by future research.

  This dissertation MIGHT be available in PDF-format. Check this page to see if it is available for download.