Release management in free and open source software ecosystems

Date

2016-12-02

Authors

Poo-Caamaño, Germán

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Releasing software is challenging. To decide when to release software, developers may consider a deadline, a set of features or quality attributes. Yet, there are many stories of software that is not released on time. In large-scale software development, release management requires significant communication and coordination. It is particularly challenging in Free and Open Source Software (FOSS) ecosystems, in which hundreds of loosely connected developers and their projects are coordinated for releasing software according to a schedule. In this work, we investigate the release management process in two large-scale FOSS development projects. In particular, our focus is the communication in the whole release management process in each ecosystem across multiple releases. The main research questions addressed in this dissertation are: (1) How do developers in these FOSS ecosystems communicate and coordinate to build and release a common product based on different projects? (2) What are the release management tasks in a FOSS ecosystem? and (3) What are the challenges that release managers face in a FOSS ecosystem? To understand this process and its challenges better, we used a multiple case study methodology, and colleced evidence from a combination of the following sources: documents, archival records, interviews, direct observation, participant observation, and physical artifacts. We conducted the case studies on two FLOSS software ecosystems: GNOME and OpenStack. We analyzed over two and half years of communication in each ecosystem and studied developers’ interactions. GNOME is a collection of libraries, system services, and end-user applications; together, these projects provide a unified desktop —the GNOME desktop. OpenStack is a collection of software tools for building and managing cloud computing platforms for public and private clouds. We catalogued communication channels, categorized coordination activities in one channel, and triangulated our results by interviewing key developers identified through social network analysis. We found factors that impact the release process in a software ecosystem, including a release schedule positively, influence instead of direct control, and diversity. The release schedule drives most of the communication within an ecosystem. To achieve a concerted release, a Release Team helps developers reach technical consensus through influence rather than direct control. The diverse composition of the Release Team might increase its reach and influence in the ecosystem. Our results can help organizations build better large-scale teams and show that software engineering research focused on individual projects might miss important parts of the picture. The contributions of this dissertation are: (1) an empirical study of release management in two FOSS ecosystems (2) a set of lessons learned from the case studies, and (3) a theory of release management in FOSS ecosystems. We summarize our theory that explains our understanding of release management in FOSS ecosystems as three statements: (1) the size and complexity of the integrated product is constrained by the release managers capacity, (2) release management should be capable of reaching the whole ecosystem, and (3) the release managers need social and technical skills. The dissertation discusses this theory in the light of the case studies, other research efforts, and its implications.

Description

Keywords

Release Management, Software Ecosystems, Empirical Study, Free and Open Source Software

Citation