Measuring Inner Source Collaboration
Total Page:16
File Type:pdf, Size:1020Kb
Measuring Inner Source Collaboration Vermessung von Inner-Source-Zusammenarbeit Der technischen Fakultät der Friedrich-Alexander-Universität Erlangen-Nürnberg zur Erlangung des Doktorgrades Doktor-Ingenieur (Dr.-Ing.) vorgelegt von Maximilian Capraro Als Dissertation genehmigt von der Technischen Fakultät der Friedrich-Alexander-Universität Erlangen-Nürnberg Tag der mündlichen Prüfung: 19. Mai 2020 Vorsitzender des Promotionsorgans: Prof. Dr.-Ing. Andreas P. Fröba Gutachter: Prof. Dr. Dirk Riehle Prof. Dr. Brian Fitzgerald Copyright © 2020 – Maximilian Capraro. All rights reserved. Abstract Inner source (IS) is the use of open source software development practices and the establish- ment of open source-like communities within an organization. The organization may still de- velop proprietary software but internally opens up its development. IS promises to resolve problems of traditional software development by easing software reuse and enabling parties within an organization to collaborate across organizational boundaries. However, it is unclear what elements constitute IS (problem I) and how to measure the pres- ence and magnitude of IS collaboration (problem II). The large majority of research articles on IS to date are limited to qualitative results regarding IS. There are yet no quantitative studies on IS collaboration exploring how much IS collaboration takes place or how IS practices affect it (problem III). Wefollowed a three-phase research approach to address these problems. First, we performed an extensive literature survey and analyzed 43 IS publications. We found that four key elements constitute IS (shared cultural values, open development environment, communities around software, IS-specific scenarios) but that IS programs and projects differ on at least five dimen- sions (addressing problem I). Second, we developed the patch-flow method (and a software tool implementing it) for measur- ing IS collaboration. Patch-flow is the flow of code contributions across organizational bound- aries (“silos”) such as organizational unit or cost center boundaries. We evaluated the method using case study research with a non-trivial industry organization and found it to be viable and useful to practitioners (addressing problem II). Third, we performed a multiple-case case study with three large software organizations running a total of five IS program. We identified the used IS practices and the resulting patch-flow. We found patch-flow to exist in all organizations but that only fraction of all code contributions to IS projects constitute patch-flow. We observed that the number of IS practices implemented correlates with the distance of parties involved in collaboration. This indicates that IS is par- ticularly suited to enable collaboration between parties of high distance in an organization (ad- dressing problem III). This thesis delivers a holistic definition of IS and the first classification framework for IS pro- grams and projects. Researchers can use such a framework to reason about generalizability of their results more precisely. The patch-flow measurement method is the first of its kind to measure and quantify IS collaboration and can serve as a base for further quantitative analyses of IS collaboration. The exploration of the patch-flow in the three industry cases can serve as example and benchmark for practitioners. v Zusammenfassung Inner Source (IS) ist die Verwendung von Softwareentwicklungspraktiken aus dem Open- Source-Umfeld und die Etablierung von open-source-artigen Communities innerhalb der Gren- zen einer Organisation. Die Organisation kann dabei weiterhin proprietäre Software entwick- eln und öffnet die Softwareentwicklung lediglich für interne Teilnehmer. IS löst Probleme der traditionellen Softwareentwicklung, in dem es Wiederverwendung vereinfacht und Parteien innerhalb einer Organisation erlaubt, über organisationsinterne Grenzen hinweg, zusammen- zuarbeiten. Allerdings ist unklar, welche Elemente IS definieren (Problem I) und wie man das Vorhan- densein und Ausmaß von IS-Zusammenarbeit messen kann (Problem II). Die Mehrheit an existierenden Forschungsartikeln zu IS präsentiert lediglich qualitative Ergebnisse. Es gibt bis jetzt keine quantitativen Studien, die explorieren wie viel IS-Zusammenarbeit vorkommt oder wie IS-Praktiken sie beeinflussen (Problem III). Wir adressieren diese Probleme mit einem Forschungsansatz in drei Phasen: Im der ersten Phase führen wir ein umfangreiches Literatur-Survey durch und analysieren 43 Publikationen zu IS. Wir stellen vier Schlüsselelemente vor, die IS ausmachen (gemeinsame kulturelle Werte, eine of- fene Entwicklungsumgebung, Communities um Software, IS-spezfische Szenarios) und zeigen, dass IS-Programme und -Projekte sich in mindestens fünf Dimensionen unterscheiden können (adressiert Problem I). Im zweiten Schritt entwickelen wir die Patch-Flow Methode (und ein Softwarewerkzeug, dass sie implementiert) um die Vermessung von IS-Zusammenarbeit zu ermöglichen. Patch-Flow ist der Fluss von Codebeiträgen über organisationsinterne Grenzen (“Silos”) wie beispielsweise Organisationseinheiten oder Kostenstellen hinweg. Wir evaluieren die Methode mittels Fallstu- dienforschung in einer nicht-trivialen Organisation und zeigen, dass die Methode in der Praxis umsetzbar und für Praktiker von Nutzen ist (adressiert Problem II). Im dritten Schritt führen wir eine Fallstudie mit drei großen Softwareorganisationen durch, die insgesamt fünf IS-Programme betreiben. Wir identifizieren verwendete IS-Praktiken und vermessen den Patch-Flow. Patch-flow existiert in allen untersuchten Organisationen, jedoch ist nur ein Bruchteil aller Codebeiträge Patch-Flow. Wir beobachteten, dass die Anzahl der IS- Praktiken mit der Distanz der zusammenarbeitenden Parteien korreliert. Das deutet darauf hin, dass IS besonders geeignet ist, um Zusammenarbeit zwischen Parteien in hoher Distanz zu ermöglichen (adressiert Problem III). Diese Thesis präsentiert eine umfassende Definition von IS sowie das erste Klassifikationsrah- menwerk für IS-Programme und -Projekte. Forscher können das Rahmenwerk nutzen um die Generalisierbarkeit ihrer Ergebnisse präziser zu diskutieren. Die Patch-Flow Methode ist die er- ste Methode zur Vermessung und Quantifizierung der IS-Zusammenarbeit. Sie kann als Basis für weitere quantitative Analysen der IS-Zusammenarbeit dienen. Die Exploration des Patch- Flow in drei Organisationen dient als Beispiel und Benchmark für Praktiker. vii Contents 1 Introduction 1 1.1 Motivation, Research Questions, Contributions ............... 2 1.1.1 Inner Source Taxonomy ....................... 3 1.1.2 Method for Measuring Inner Source Collaboration . 4 1.1.3 Influence of Inner Source Practices on Collaboration . 5 1.2 Inner Source Definitions ........................... 6 1.3 Thesis Structure ................................ 7 2 Inner Source Taxonomy 9 2.1 Related Work ................................. 10 2.1.1 Elements of Inner Source ....................... 10 2.1.2 Classification Framework ....................... 11 2.2 Research Approach .............................. 11 2.2.1 Literature Selection .......................... 11 2.2.2 Resulting Literature ......................... 13 2.2.3 Literature Analysis .......................... 16 2.3 Key Elements of Inner Source ......................... 17 2.3.1 Open Environment .......................... 19 2.3.2 Shared Cultural Values ........................ 21 2.3.3 Communities around Software .................... 22 2.3.4 Inner Source Scenarios ........................ 23 2.4 Classification Framework for Inner Source . 25 2.4.1 Classification of Inner Source Programs . 25 2.4.2 Classification of Inner Source Projects . 29 2.5 Application of the Classification Framework . 32 2.5.1 Application to Inner Source Programs . 32 2.5.2 Application to Inner Source Projects . 37 2.6 Conclusion .................................. 38 3 Patch-Flow Measurement Method 39 3.1 Related Work ................................. 40 3.1.1 Measuring Inner Source Collaboration . 40 3.1.2 Measuring Software Development Collaboration . 41 3.2 Patch-Flow Measurement Method ...................... 43 3.2.1 Contribution-Flow Phenomenon . 43 3.2.2 Patch-Flow Phenomenon ....................... 43 3.2.3 Data Structures ............................ 45 3.2.4 Measurement Process ......................... 47 3.2.5 Relationship to Classification ..................... 48 3.3 Evaluation Approach ............................. 50 ix 3.3.1 Case Selection ............................. 50 3.3.2 Data Gathering ............................ 51 3.4 Evaluation Results ............................... 53 3.4.1 Organizational Structure ....................... 53 3.4.2 Patch-Flow Overview ......................... 55 3.4.3 Patch-Flow Over Time ........................ 57 3.4.4 Patch-Flow into IS Projects ...................... 58 3.5 Discussion ................................... 61 3.5.1 Evaluation .............................. 61 3.5.2 Operational Inner Source Definition . 63 3.6 Trustworthiness ................................ 63 3.6.1 Credibility .............................. 64 3.6.2 Dependability ............................ 64 3.6.3 Confirmability ............................ 64 3.6.4 Transferability ............................ 64 3.7 Conclusion .................................. 65 4 Patch-Flow Crawler: A Toolfor Measuring Patch-Flow 67 4.1 Requirements ................................. 68 4.1.1 Overview ............................... 69 4.1.2 Identify and Persist Inner Source Projects