Supporting coordination of software development across organizational boundaries
MetadataVis full innførsel
Introduction: Large-scale software development requires a substantial amount of coordination. Development and maintenance of code are simultaneously carried out by many individuals and teams, and this code can be integrated and used in many software products. When projects spread through organizational boundaries, such as projects involving multiple companies and autonomous development units, different types of coordination problems appear, which requires suitable coordination mechanisms. Research objective: This thesis aims at generating new knowledge about coordination challenges in inter-organizational software projects and proposing effective technical and managerial solutions. The thesis addresses three main research questions (RQs): RQ1. How is the collaboration of technical tasks characterized at organizational level? RQ2. How do organizational boundaries impact coordination of development activities in distributed software development? RQ3. How can coordination practices and tools support software development across organizational boundaries? Research approach: This thesis reports about five studies conducted during four years, focusing on collaboration and coordination of software development activities, such as open source software (OSS) adoption, bug fixing, and duplicated code resolution in different types of interorganizational projects. The research was performed in various forms, such as systematic literature review, survey, case study and action research. Qualitative data were mainly collected in the form of interviews and documents. Quantitative data were mainly collected from code repositories, issue tracking systems, and mailing lists. Results: Through a synthesis of contributions from eight papers (MP1-MP8), five contributions connected to the three RQs have been identified: C1. Identification of challenges and solutions for resolving OSS component integration mismatches in commercial companies C2. Synthesized impact of geographical and temporal boundaries on team performance and software quality in DSD C3. A classification framework presenting organizational boundaries that inhibit team coordination activities during software development in DSD C4. A description of boundary spanners’ capacities and activities in coordinating crossorganization development tasks C5. Recommendations to management and coordination of development tasks in multiple platform systems Conclusions: Organizational boundaries inhibit team coordination through collaboration policy, team structure, engineering process, and development practice. Coordination needs across organizational boundaries depend on not only the technical nature of tasks, but also organizational policies. Relying on boundary spanners and cloning mechanisms across configuration management systems, are two effective coordination approaches. Boundary spanners mediate task dependency, status information, handle impacts of global boundaries, and facilitate practice exchanges. Configuration management systems temporize coordination needs resolution, support identifying and resolving duplicate dependencies and facilitate cross boundary meetings. Our research comes up with several recommendations to improve coordination in specific project contexts. Future research in DSD should focus on team coordination in an OSS context, co-existence of competition and collaboration in commercial software ecosystems, and branching and merging practices in multi-platform projects.