Open Source Software Development As a Complex System John David Nicholas Graves a Thesis Submitted to Auckland University Of

Total Page:16

File Type:pdf, Size:1020Kb

Open Source Software Development As a Complex System John David Nicholas Graves a Thesis Submitted to Auckland University Of 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
Recommended publications
  • Freebsd Handbook
    FreeBSD Handbook http://www.freebsd.org/doc/en_US.ISO8859-1/books/han... FreeBSD Handbook The FreeBSD Documentation Project Copyright © 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 The FreeBSD Documentation Project Welcome to FreeBSD! This handbook covers the installation and day to day use of FreeBSD 8.3-RELEASE and FreeBSD 9.1-RELEASE. This manual is a work in progress and is the work of many individuals. As such, some sections may become dated and require updating. If you are interested in helping out with this project, send email to the FreeBSD documentation project mailing list. The latest version of this document is always available from the FreeBSD web site (previous versions of this handbook can be obtained from http://docs.FreeBSD.org/doc/). It may also be downloaded in a variety of formats and compression options from the FreeBSD FTP server or one of the numerous mirror sites. If you would prefer to have a hard copy of the handbook, you can purchase one at the FreeBSD Mall. You may also want to search the handbook. REDISTRIBUTION AND USE IN SOURCE (XML DOCBOOK) AND 'COMPILED' FORMS (XML, HTML, PDF, POSTSCRIPT, RTF AND SO FORTH) WITH OR WITHOUT MODIFICATION, ARE PERMITTED PROVIDED THAT THE FOLLOWING CONDITIONS ARE MET: 1. REDISTRIBUTIONS OF SOURCE CODE (XML DOCBOOK) MUST RETAIN THE ABOVE COPYRIGHT NOTICE, THIS LIST OF CONDITIONS AND THE FOLLOWING DISCLAIMER AS THE FIRST LINES OF THIS FILE UNMODIFIED. 2. REDISTRIBUTIONS IN COMPILED FORM (TRANSFORMED TO OTHER DTDS, CONVERTED TO PDF, POSTSCRIPT, RTF AND OTHER FORMATS) MUST REPRODUCE THE ABOVE COPYRIGHT NOTICE, THIS LIST OF CONDITIONS AND THE FOLLOWING DISCLAIMER IN THE DOCUMENTATION AND/OR OTHER MATERIALS PROVIDED WITH THE DISTRIBUTION.
    [Show full text]
  • Rapport Projet Ahmed
    ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC RAPPORT DE PROJET PRÉSENTÉ À L’ÉCOLE DE TECHNOLOGIE SUPÉRIEURE COMME EXIGENCE PARTIELLE À L’OBTENTION DE LA MAÎTRISE EN GÉNIE LOGICIEL M.Ing. PAR Ahmed SEDJAI ÉTUDES D’OUTILS DE CONTRÔLE DE LA QUALITE LOGICIEL (LOGICIEL LIBRE) POUR SUPPORTER LES NORMES DE GÉNIE LOGICIEL MONTRÉAL, LE 31 AOÛT 2013 Ahmed Sedjai, 2013 ©Tous droits réservés Cette licence signifie qu’il est interdit de reproduire, d’enregistrer ou de diffuser en tout ou en partie, le présent document. Le lecteur qui désire imprimer ou conserver sur un autre media une partie importante de ce document, doit obligatoirement en demander l’autorisation à l’auteur. Cette licence Creative Commons signifie qu’il est permis de diffuser, d’imprimer ou de sauvegarder sur un autre support une partie ou la totalité de cette œuvre à condition de mentionner l’auteur, que ces utilisations soient faites à des fins non commerciales et que le contenu de l’œuvre n’ait pas été modifié. REMERCIEMENTS Je tiens à remercier particulièrement mon directeur de projet, Monsieur Alain APRIL, pour ses recommandations et ses conseils, sans lesquelles je ne pourrai arriver à un tel résultat. Aussi, d’avoir dirigé et consciencieusement relu mon rapport, de m’avoir permis de participer à un tel projet et tout le soutien accordé. À mes parents, partis trop tôt pour me lire. Je remercie toute ma famille, pour leurs encouragements et leur soutient tout au long de mes études. À ma femme, à mes enfants. Aussi, sans oublier tous mes amis. Merci. ÉTUDES D’OUTILS DE CONTRÔLE DE LA QUALITE LOGICIEL (LOGICIEL LIBRE) POUR SUPPORTER LES NORMES DE GÉNIE LOGICIEL Ahmed SEDJAI RÉSUMÉ Notre projet vise à identifier des logiciels libres qui supportent certaines activités de génie logiciel.
    [Show full text]
  • The Architecture of Mass Collaboration: How Open Source
    THE ARCHITECTURE OF MASS COLLABORATION: How Open Source Commoning Will Change Everything ALEC GARDNER/UC_DAAP_SAID/SPRING 2013 ABSTRACT the consumer into an engaged participant. It tracks the beginnings of maker culture and its direct connection to DIY The privatization of tools, the specialization of and vernacular lineages in architectural history. It examines knowledge, and the restriction of access to technological how open source software has led to open source hardware systems have progressively removed the amateur from the further erasing digital and physical constraints. Several case design of the built environment. Today, maker culture and the studies of downloadable manufacturing tools and design open source movement offers an alternative approach. This platforms are presented, as well as precedents of relevant approach invites the public into a new sphere where access to architectural methods and how they are attempting to address open information systems and shared, affordable, user-friendly this cultural shift. Finally, it provides an introduction into the technology renders the specialist obsolete. In doing so, these built studio project, the design manifestation of this research post-industrial movements transfer authority and tools to the document. This thesis is, in itself, an amalgamation of existing commons, and offer a growing library of free, downloadable technologies and precedents and remains a work in process, blueprints with an enormous supporting network of opinions, existing in order to situate itself into future negotiations of advice, and training. Technology and the Internet are quickly ways of doing architecture. erasing the division between the professional and the amateur. Presently architecture fails to address this and it is ill-prepared for this confrontation.
    [Show full text]
  • Producing Open Source Software How to Run a Successful Free Software Project
    Producing Open Source Software How to Run a Successful Free Software Project Karl Fogel Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel Copyright © 2005-2013 Karl Fogel, under a CreativeCommons Attribution-ShareAlike (3.0) license [http:// creativecommons.org/licenses/by/3.0/]. Dedication This book is dedicated to two dear friends without whom it would not have been possible: Karen Under- hill and Jim Blandy. i Table of Contents Preface ............................................................................................................................. vi Why Write This Book? ............................................................................................... vi Who Should Read This Book? ..................................................................................... vi Sources .................................................................................................................... vii Acknowledgments .................................................................................................... viii Disclaimer ................................................................................................................. ix 1. Introduction .................................................................................................................... 1 History ...................................................................................................................... 3 The Rise of Proprietary Software and Free Software ................................................
    [Show full text]
  • Lista.Txt Thu Jan 01 10:19:02 2015 1 0Ad-Data 2Ping 2Vcard 389
    lista.txt Thu Jan 01 10:19:02 2015 1 0ad-data 2ping 2vcard 389-console 3dchess 3depict 4digits 4g8 4store 6tunnel 7kaa-data 8086tiny 8086tiny-dev 9base 9menu 9wm a2jmidid a2ps a56 a7xpg a7xpg-data aa3d aajm aaphoto abacas abby abcde abcm2ps abcmidi abcmidi-yaps abe abe-data abgate abi-compliance-checker abicheck abinit abinit-doc abiword abiword-common abiword-dbg abiword-plugin-grammar abiword-plugin-mathview abntex abook abootimg abr2gbr abraca abs-guide abtransfers abuse abuse-lib abuse-sfx accerciser accessodf accountsservice acct ace-gperf ace-netsvcs ace-of-penguins acedb-other acedb-other-belvu acedb-other-dotter aces3 acetoneiso acfax lista.txt Thu Jan 01 10:19:02 2015 2 acgvision-agent acheck acheck-rules acheck-rules-fr achilles ack ack-grep acl acl2 acl2-books acl2-books-certs acl2-books-source acl2-doc acl2-emacs acl2-infix acl2-infix-source acl2-source aclock.app acm aconnectgui acorn-fdisk acoustid-fingerprinter acpi-support acpi-support-base acpid acpitool acpitool-dbg actionaz activemq activity-log-manager activiz.net-doc activiz.net-examples ada-reference-manual-2005 ada-reference-manual-2012 adabrowse adacgi1 adacontrol adanaxisgpl adanaxisgpl-data addresses-goodies-for-gnustep addresses.framework addressmanager.app addressview.framework adduser adept adjtimex adlint admesh adminer adns-tools adonthell-data adplay adplug-utils adun.app advancecomp advene advi advi-examples adzapper aegis aegis-doc aegis-tk aegis-web aegisub aegisub-l10n lista.txt Thu Jan 01 10:19:02 2015 3 aeolus aephea aes2501-wy aesfix aeskeyfind aeskulap
    [Show full text]
  • Spack Documentation Release 0.9
    Spack Documentation Release 0.9 Todd Gamblin August 31, 2016 Contents 1 Table of Contents 3 1.1 Feature overview.............................................3 1.2 Getting Started..............................................5 1.3 Basic usage................................................6 1.4 Packaging Guide............................................. 40 1.5 Mirrors.................................................. 80 1.6 Configuration............................................... 83 1.7 Developer Guide............................................. 86 1.8 Using Spack for CMake-based Development.............................. 90 1.9 Command index............................................. 92 1.10 Package List............................................... 93 1.11 spack package.............................................. 335 2 Indices and tables 453 Python Module Index 455 i ii Spack Documentation, Release 0.9 Spack is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments. It was designed for large supercomputing centers, where many users and application teams share common installations of software on clusters with exotic architectures, using libraries that do not have a standard ABI. Spack is non-destructive: installing a new version does not break existing installations, so many configurations can coexist on the same system. Most importantly, Spack is simple. It offers a simple spec syntax so that users can specify versions and configuration options concisely. Spack is also simple for package authors: package files are written in pure Python, and specs allow package authors to maintain a single file for many different builds of the same package. See the Feature overview for examples and highlights. Get spack from the github repository and install your first package: $ git clone https://github.com/llnl/spack.git $ cd spack/bin $ ./spack install libelf If you’re new to spack and want to start using it, see Getting Started, or refer to the full manual below.
    [Show full text]