Supporting coordination of software development across organizational boundaries
Abstract
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.