
Open Source Software Development as a Complex System John David Nicholas Graves A thesis submitted to Auckland University of Technology in fulfillment of the requirements for the degree of Doctor of Philosophy (PhD) October, 2013 Software Engineering Research Laboratory Faculty of Design and Creative Technologies Supervisors: Dr. Tony Clear and Dr. Steve MacDonell Abstract Open Source Software Development is an approach to software development involving open, public exposure of the source code of a computer program under development (hence, ‘open source’). Each open source program is shared online as a project in a source code repository. The so-called ‘open source community’ is the system which coordinates the work of software developers on the code in the repositories. This research explored the growth dynamics of this system, first by launching open source projects and then via simulation. Following (Barabasi & Albert, 1999) and a biodiversity model (Hubbell, 2001), simulations of a complex system driven by preferential attachment, where popular projects attract more developers and grow (subject to some attrition), provided a systematic explanation for the lack of growth typical of single- developer projects. In this multi-methodological study, the lack of growth in the research projects empirically demonstrated the need for a theoretical understanding of open source project initiation and growth while the subsequent simulation results showed how the pattern of no growth (one developer) projects could be explained by a simple model. Open Source Software Development as a Complex System ii TABLE OF CONTENTS 1. Introduction ............................................................................................................................. 1 1.1 No Explanation for Open Source Project Growth ............................................................ 1 1.2 Insights from Business Startups ....................................................................................... 6 1.3 Insights from Biology....................................................................................................... 8 1.4 Thesis Structure .............................................................................................................. 11 1.5 Artifacts .......................................................................................................................... 12 1.5.1 Publications. ............................................................................................................ 12 1.5.2 Prototype open source projects. .............................................................................. 13 1.5.2.1 Open Allure Dialog System. ............................................................................ 13 1.5.2.2 Wiki-to-Speech. ............................................................................................... 13 1.5.2.3 SlideSpeech. .................................................................................................... 14 1.5.3 Simulations. ............................................................................................................ 15 1.5.3.1 Simulation in R. ............................................................................................... 15 1.5.3.2 Simulation in Excel. ........................................................................................ 15 1.5.3.3 Simulation in NetLogo. ................................................................................... 16 1.5.4 Videos. .................................................................................................................... 17 1.5.5 SlideShare presentations. ........................................................................................ 17 1.5.6 SlideSpeech presentations. ...................................................................................... 17 2. Literature Review.................................................................................................................. 19 2.1 Theoretical Ideas ............................................................................................................ 19 2.1.1 Open source software development as a complex system. ..................................... 19 Open Source Software Development as a Complex System iii 2.1.1.1 Sensitivity to initial conditions. ....................................................................... 22 2.1.1.2 Nonlinear value creation. ................................................................................. 23 2.1.1.3 Diversity. ......................................................................................................... 24 2.1.1.4 Complexity. ..................................................................................................... 38 2.1.1.5 Unpredictability. .............................................................................................. 56 2.1.1.6 Emergent patterns ............................................................................................ 57 2.1.2 Open source software development as an innovation system ................................. 64 2.1.2.1 Recombinant search. ........................................................................................ 65 2.1.2.2 Project uniqueness. .......................................................................................... 67 2.1.2.3 Conditions for beneficial diversity. ................................................................. 68 2.1.3 Open source and evolution...................................................................................... 69 2.1.3.1 Potential biological parallels with open source. .............................................. 70 2.1.3.2 Entropy ............................................................................................................ 73 2.1.3.3 Epigenetics....................................................................................................... 75 2.2 Prior Research ................................................................................................................ 78 2.2.1 A systems view of the bazaar. ................................................................................. 78 2.2.1.1 Sensitivity to initial conditions. ....................................................................... 78 2.2.1.2 Diversity yields robustness. ............................................................................. 79 2.2.1.3 Emergent phenomenon. ................................................................................... 80 2.2.2 Established projects. ............................................................................................... 81 2.2.3 Open source beyond the repositories. ..................................................................... 84 2.2.4 Prior research in open source simulation. ............................................................... 85 2.2.4.1 Fitting a power law distribution....................................................................... 86 Open Source Software Development as a Complex System iv 2.2.4.2 Crosetto’s model. ............................................................................................. 88 2.2.4.3 FLOSSSim. ...................................................................................................... 89 2.2.4.4 Summary .......................................................................................................... 91 3. Research Design.................................................................................................................... 92 4. Data and Analysis ................................................................................................................. 98 4.1 Overview ........................................................................................................................ 98 4.1.1 Open source projects. .............................................................................................. 98 4.1.2 Project notes. ......................................................................................................... 100 4.1.3 Code commits. ...................................................................................................... 104 4.1.4 Project wikis.......................................................................................................... 106 4.1.5 Presentations. ........................................................................................................ 107 4.1.6 Project summary. .................................................................................................. 109 4.2 Open Allure Dialog System ......................................................................................... 109 4.2.1 Project initiation. ................................................................................................... 111 4.2.2 Downloads. ........................................................................................................... 120 4.2.3 Social media trials. ................................................................................................ 124 4.2.4 Public announcements and publicity. ................................................................... 125 4.2.5 Getting Python code to execute. ........................................................................... 127 4.2.6 Documentation. ..................................................................................................... 128 4.2.7 Multiple platforms
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages256 Page
-
File Size-