Introducting Innovations in Open Source Projects

Total Page:16

File Type:pdf, Size:1020Kb

Introducting Innovations in Open Source Projects Introducing Innovations into Open Source Projects Dissertation zur Erlangung des Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) am Fachbereich Mathematik und Informatik der Freien Universität Berlin von Sinan Christopher Özbek Berlin August 2010 2 Gutachter: Professor Dr. Lutz Prechelt, Freie Universität Berlin Professor Kevin Crowston, Syracuse University Datum der Disputation: 17.12.2010 4 Abstract This thesis presents a qualitative study using Grounded Theory Methodology on the question of how to change development processes in Open Source projects. The mailing list communication of thirteen medium-sized Open Source projects over the year 2007 was analyzed to answer this question. It resulted in eight main concepts revolving around the introduction of innovation, i.e. new processes, services, and tools, into the projects including topics such as the migration to new systems, the question on where to host services, how radical Open Source projects can change their ways, and how compliance to processes and conventions is enforced. These are complemented with (1) the result of five case studies in which innovation introductions were conducted with Open Source projects, and with (2) a theoretical comparison of the results of this thesis to four theories and scientific perspectives from the organizational and social sciences such as Path Dependence, the Garbage Can model, Social-Network analysis, and Actor-Network theory. The results show that innovation introduction is a multifaceted phenomenon, of which this thesis discusses the most salient conceptual aspects. The thesis concludes with practical advice for innovators and specialized hints for the most popular innovations. 5 6 Acknowledgements I want to thank the following individuals for contributing to the completion of this thesis: • Lutz Prechelt for advising me over these long five years. • Stephan Salinger and Florian Thiel for discussion and critique of methodology and results. • Gesine Milde and Anja Kasseckert for countless hours of proof-reading, comma checking, and browsing the dictionaries to find better words to spice up my poor writing. • Many thanks go to my family who have always supported me in doing this Ph.D. and always listened when I explained what it is exactly that I am doing. • Aenslee, Anne, and Ulrike, who each in their own style participated in the genesis of this thesis and motivated me to persevere. • Leonard Dobusch, Steven Evers, and Lina Böcker—in their facility as the Open Source Research Network—for inspirational discussion in the early days of my thesis. • Karl Beecher, Julia Schenk, Ulrich Stärk, Janine Rohde, Isabella Peukes, and Moritz Minzlaff for proof-reading selected chapters. • Martin Gruhn and Sebastian Jekutsch for keeping room 008 a great place for working. • The Saros Team for providing a welcome relief from the sociological work of this thesis. 7 8 Attribution-Noncommercial-Share Alike 3.0 Germany This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/ 3.0/de/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. You are free: to Share—to copy, distribute, and transmit the work. to Remix—to adapt the work. Under the following conditions: Attribution—You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Noncommercial—You may not use this work for commercial purposes. Share Alike—If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. With the understanding that: • Waiver—Any of the above conditions can be waived if you get permission from the copyright holder. • Other Rights—In no way are any of the following rights affected by the license: – Your fair dealing or fair use rights; – The author’s moral rights; – Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. • Notice—For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to http://creativecommons.org/licenses/ by-nc-sa/3.0/de/deed.en. 9 10 Contents 1 Introduction 19 1.1 Goal and Motivation.................................... 19 1.2 Context.......................................... 20 1.3 Contributions....................................... 20 1.4 Outline........................................... 21 1.5 Note to the Reader.................................... 21 2 Background 23 2.1 Defining Innovation Introduction............................. 23 2.1.1 Introduction vs. Diffusion............................. 25 2.2 Types of Innovations................................... 25 2.3 Open Source........................................ 26 2.3.1 Historical Introduction.............................. 27 2.3.2 Terminology.................................... 28 2.3.3 Licensing...................................... 29 2.3.4 Research on Open Source............................. 30 2.3.5 The Participants.................................. 31 2.3.6 Open Source and Organizations......................... 33 2.3.7 Community Ideology............................... 34 2.3.8 The Open Source Development Process..................... 35 2.3.9 Decision Making.................................. 41 2.3.10 Defining Success.................................. 42 3 Methodology 45 3.1 Development of the Methodology............................. 45 3.1.1 Action research and field experiments...................... 45 3.1.2 Surveying the Open Source Community for Change Episodes.......... 47 3.1.3 Using Grounded Theory Methodology...................... 48 3.2 Grounded Theory Methodology.............................. 48 3.2.1 Open Coding................................... 49 3.2.2 Axial Coding.................................... 54 3.2.3 Selective Coding.................................. 58 3.2.4 The Paradigm................................... 61 3.3 Use of GTM in Related and Open Source Research................... 62 3.4 GmanDA – Tool Support for Qualitative Data Analysis of E-mail Data......... 63 3.4.1 User Interface................................... 65 3.4.2 Software Design.................................. 68 3.5 Visualization of Temporal Data.............................. 71 3.6 Data............................................ 75 3.6.1 Selection Criteria................................. 75 3.6.2 Data Collection Site................................ 76 3.6.3 List of Projects.................................. 76 11 12 CONTENTS 3.7 Threats to Validity.................................... 79 3.7.1 Credibility and Internal Validity.......................... 79 3.7.2 Relevance and External Validity......................... 80 4 Related Work 83 4.1 Optimizing Open Source Projects............................. 83 4.2 Innovation Adoption in Debian.............................. 85 4.3 Innovation Introduction and Design Discussions..................... 88 4.4 Community Building.................................... 93 4.5 Other Related Work.................................... 94 5 Results 97 5.1 Quantitative Overview................................... 97 5.2 The Introduction Lifecycle................................ 98 5.2.1 Failure Reasons.................................. 101 5.3 Partial Migrations..................................... 102 5.3.1 Partial Migration at KVM............................. 103 5.3.2 Partial Migration at ROX............................. 105 5.4 Enactment Scopes of Process Innovation......................... 107 5.5 Hosting.......................................... 111 5.5.1 Strategies for Hosting............................... 116 5.5.2 Relating Hosting to Innovation Introduction................... 116 5.5.3 Summary..................................... 118 5.6 Adapter Innovations.................................... 118 5.7 Forcing, Compliance, and Decisions............................ 119 5.7.1 Organizational Innovation Decisions....................... 119 5.7.2 Individual Innovation Decisions.......................... 121 5.7.3 Compliance and its Enforcement......................... 123 5.8 Participation Sprints and Time-dependent Behavior................... 126 5.9 Radical vs. Evolutionary Innovation............................ 129 5.9.1 Reimplementation in Open Source Development................. 129 5.9.2 Radical Innovation Introductions......................... 132 5.10 Tool Independence..................................... 134 6 Comparison with Classic Models 137 6.1 Path Dependence..................................... 138 6.1.1 Literature on Path Dependence and Open Source................ 141 6.1.2 Path Dependence and Innovation Episodes.................... 142 6.1.3 Implications for the Innovator........................... 147 6.2 Garbage Can Model.................................... 148 6.2.1 The Garbage Can in the Open Source Literature................. 148 6.2.2 The Garbage Can and Innovation Episodes.................... 149 6.2.3 Implications for the Innovator........................... 155 6.3 Social Network Analysis and Social Network Theory................... 156 6.3.1 SNA in the Open Source Literature....................... 156 6.3.2 Social Network Analysis and Innovation Episodes................ 158 6.3.3 Summary and Recommendations for the Innovator..............
Recommended publications
  • Hacker Public Radio
    hpr0001 :: Introduction to HPR hpr0002 :: Customization the Lost Reason hpr0003 :: Lost Haycon Audio Aired on 2007-12-31 and hosted by StankDawg Aired on 2008-01-01 and hosted by deepgeek Aired on 2008-01-02 and hosted by Morgellon StankDawg and Enigma talk about what HPR is and how someone can contribute deepgeek talks about Customization being the lost reason in switching from Morgellon and others traipse around in the woods geocaching at midnight windows to linux Customization docdroppers article hpr0004 :: Firefox Profiles hpr0005 :: Database 101 Part 1 hpr0006 :: Part 15 Broadcasting Aired on 2008-01-03 and hosted by Peter Aired on 2008-01-06 and hosted by StankDawg as part of the Database 101 series. Aired on 2008-01-08 and hosted by dosman Peter explains how to move firefox profiles from machine to machine 1st part of the Database 101 series with Stankdawg dosman and zach from the packetsniffers talk about Part 15 Broadcasting Part 15 broadcasting resources SSTRAN AMT3000 part 15 transmitter hpr0007 :: Orwell Rolled over in his grave hpr0009 :: This old Hack 4 hpr0008 :: Asus EePC Aired on 2008-01-09 and hosted by deepgeek Aired on 2008-01-10 and hosted by fawkesfyre as part of the This Old Hack series. Aired on 2008-01-10 and hosted by Mubix deepgeek reviews a film Part 4 of the series this old hack Mubix and Redanthrax discuss the EEpc hpr0010 :: The Linux Boot Process Part 1 hpr0011 :: dd_rhelp hpr0012 :: Xen Aired on 2008-01-13 and hosted by Dann as part of the The Linux Boot Process series.
    [Show full text]
  • Easy Slackware
    1 Создание легкой системы на базе Slackware I - Введение Slackware пользуется заслуженной популярностью как классический linux дистрибутив, и поговорка "кто знает Red Hat тот знает только Red Hat, кто знает Slackware тот знает linux" несмотря на явный снобизм поклонников "бога Патре­ га" все же имеет под собой основания. Одним из преимуществ Slackware является возможность простого создания на ее основе практически любой системы, в том числе быстрой и легкой десктопной, о чем далее и пойдет речь. Есть дис­ трибутивы, клоны Slackware, созданные именно с этой целью, типа Аbsolute, но все же лучше создавать систему под себя, с максимальным учетом именно своих потребностей, и Slackware пожалуй как никакой другой дистрибутив подходит именно для этой цели. Легкость и быстрота системы определяется выбором WM (DM) , набором программ и оптимизацией программ и системы в целом. Первое исключает KDE, Gnome, даже новые версии XFCЕ, остается разве что LXDE, но набор программ в нем совершенно не устраивает. Оптимизация наиболее часто используемых про­ грамм и нескольких базовых системных пакетов осуществляется их сборкой из сорцов компилятором, оптимизированным именно под Ваш комп, причем каж­ дая программа конфигурируется исходя из Ваших потребностей к ее возможно­ стям. Оптимизация системы в целом осуществляется ее настройкой согласно спе­ цифическим требованиям к десктопу. Такой подход был выбран по банальной причине, возиться с gentoo нет ни­ какого желания, комп все таки создан для того чтобы им пользоваться, а не для компиляции программ, в тоже время у каждого есть минимальный набор из не­ большого количества наиболее часто используемых программ, на которые стоит потратить некоторое, не такое уж большое, время, чтобы довести их до ума. Кро­ ме того, такой подход позволяет иметь самые свежие версии наиболее часто ис­ пользуемых программ.
    [Show full text]
  • Increasing Automation in the Backporting of Linux Drivers Using Coccinelle
    Increasing Automation in the Backporting of Linux Drivers Using Coccinelle Luis R. Rodriguez Julia Lawall Rutgers University/SUSE Labs Sorbonne Universites/Inria/UPMC/LIP6´ [email protected] [email protected] [email protected], [email protected] Abstract—Software is continually evolving, to fix bugs and to a kernel upgrade. Upgrading a kernel may also require add new features. Industry users, however, often value stability, experience to understand what features to enable, disable, or and thus may not be able to update their code base to the tune to meet existing deployment criteria. In the worst case, latest versions. This raises the need to selectively backport new some systems may rely on components that have not yet been features to older software versions. Traditionally, backporting has merged into the mainline Linux kernel, potentially making it been done by cluttering the backported code with preprocessor impossible to upgrade the kernel without cooperation from the directives, to replace behaviors that are unsupported in an earlier version by appropriate workarounds. This approach however component vendor or a slew of partners that need to collaborate involves writing a lot of error-prone backporting code, and results on developing a new productized image for a system. As an in implementations that are hard to read and maintain. We example, development for 802.11n AR9003 chipset support consider this issue in the context of the Linux kernel, for which on the mainline ath9k device driver started on March 20, older versions are in wide use. We present a new backporting 2010 with an early version of the silicon, at which point the strategy that relies on the use of a backporting compatability most recent major release of the Linux kernel was v2.6.32.
    [Show full text]
  • Contributor's Guidelines
    Contributor’s Guidelines Release 17.11.10 Feb 27, 2020 CONTENTS 1 DPDK Coding Style1 1.1 Description.......................................1 1.2 General Guidelines..................................1 1.3 C Comment Style...................................1 1.4 C Preprocessor Directives..............................2 1.5 C Types.........................................4 1.6 C Indentation......................................7 1.7 C Function Definition, Declaration and Use.....................9 1.8 C Statement Style and Conventions......................... 11 1.9 Python Code...................................... 13 2 Design 14 2.1 Environment or Architecture-specific Sources.................... 14 2.2 Library Statistics.................................... 15 2.3 PF and VF Considerations.............................. 16 3 Managing ABI updates 18 3.1 Description....................................... 18 3.2 General Guidelines.................................. 18 3.3 What is an ABI..................................... 18 3.4 The DPDK ABI policy................................. 19 3.5 Examples of Deprecation Notices.......................... 20 3.6 Versioning Macros................................... 20 3.7 Setting a Major ABI version.............................. 21 3.8 Examples of ABI Macro use............................. 21 3.9 Running the ABI Validator............................... 25 4 DPDK Documentation Guidelines 27 4.1 Structure of the Documentation........................... 27 4.2 Role of the Documentation.............................
    [Show full text]
  • Gestión De Proyectos Software
    Proyecto Fin de Carrera AITForge: Gestión de Proyectos Software Autor: Antonio Domingo Lagares Alfaro Titulación: Ingeniero de Telecomunicación (Plan 98) Especialidad: Telemática Año: 2005 Tutor: Antonio Estepa Alonso AITForge: Gestión de Proyectos Software Índice de contenido 1 Prefacio..................................................................................................................6 2 Portales de Desarrollo Colaborativo......................................................................7 2.1 Introducción a los Entornos Colaborativos....................................................8 2.1.1 Hosting de Proyectos de Software Libre (FOSPHost)...........................9 2.1.2 ¿Software Libre y Software de Fuentes Abiertas?...............................10 2.1.3 Prácticas deseables en Software Libre................................................11 2.1.4 El nacimiento de una nueva filosofía de trabajo...................................13 2.1.5 Objetivos de los sistemas libres de FOSPHost....................................14 2.1.6 Principales características de los sistemas FOSPHost........................16 Características intrínsecas..........................................................................16 Características de utilidad...........................................................................17 Características de usabilidad......................................................................18 Características contextuales.......................................................................19 2.1.7
    [Show full text]
  • Beets Documentation Release 1.5.1
    beets Documentation Release 1.5.1 Adrian Sampson Oct 01, 2021 Contents 1 Contents 3 1.1 Guides..................................................3 1.2 Reference................................................. 14 1.3 Plugins.................................................. 44 1.4 FAQ.................................................... 120 1.5 Contributing............................................... 125 1.6 For Developers.............................................. 130 1.7 Changelog................................................ 145 Index 213 i ii beets Documentation, Release 1.5.1 Welcome to the documentation for beets, the media library management system for obsessive music geeks. If you’re new to beets, begin with the Getting Started guide. That guide walks you through installing beets, setting it up how you like it, and starting to build your music library. Then you can get a more detailed look at beets’ features in the Command-Line Interface and Configuration references. You might also be interested in exploring the plugins. If you still need help, your can drop by the #beets IRC channel on Libera.Chat, drop by the discussion board, send email to the mailing list, or file a bug in the issue tracker. Please let us know where you think this documentation can be improved. Contents 1 beets Documentation, Release 1.5.1 2 Contents CHAPTER 1 Contents 1.1 Guides This section contains a couple of walkthroughs that will help you get familiar with beets. If you’re new to beets, you’ll want to begin with the Getting Started guide. 1.1.1 Getting Started Welcome to beets! This guide will help you begin using it to make your music collection better. Installing You will need Python. Beets works on Python 3.6 or later. • macOS 11 (Big Sur) includes Python 3.8 out of the box.
    [Show full text]
  • Free Software Needs Free Tools
    Free Software Needs Free Tools Benjamin Mako Hill [email protected] June 6, 2010 Over the last decade, free software developers have been repeatedly tempted by devel- opment tools that offer the ability to build free software more efficiently or powerfully. The only cost, we are told, is that the tools themselves are nonfree or run as network services with code we cannot see, copy, or run ourselves. In their decisions to use these tools and services – services such as BitKeeper, SourceForge, Google Code and GitHub – free software developers have made “ends-justify-the-means” decisions that trade away the freedom of both their developer communities and their users. These decisions to embrace nonfree and private development tools undermine our credibility in advocating for soft- ware freedom and compromise our freedom, and that of our users, in ways that we should reject. In 2002, Linus Torvalds announced that the kernel Linux would move to the “Bit- Keeper” distributed version control system (DVCS). While the decision generated much alarm and debate, BitKeeper allowed kernel developers to work in a distributed fashion in a way that, at the time, was unsupported by free software tools – some Linux developers decided that benefits were worth the trade-off in developers’ freedom. Three years later the skeptics were vindicated when BitKeeper’s owner, Larry McVoy, revoked several core kernel developers’ gratis licenses to BitKeeper after Andrew Tridgell attempted to write a free replacement for BitKeeper. Kernel developers were forced to write their own free software replacement: the project now known as Git. Of course, free software’s relationships to nonfree development tools is much larger than BitKeeper.
    [Show full text]
  • Release Notes for X11R7.5 the X.Org Foundation 1
    Release Notes for X11R7.5 The X.Org Foundation 1 October 2009 These release notes contains information about features and their status in the X.Org Foundation X11R7.5 release. Table of Contents Introduction to the X11R7.5 Release.................................................................................3 Summary of new features in X11R7.5...............................................................................3 Overview of X11R7.5............................................................................................................4 Details of X11R7.5 components..........................................................................................5 Build changes and issues..................................................................................................10 Miscellaneous......................................................................................................................11 Deprecated components and removal plans.................................................................12 Attributions/Acknowledgements/Credits......................................................................13 Introduction to the X11R7.5 Release This release is the sixth modular release of the X Window System. The next full release will be X11R7.6 and is expected in 2010. Unlike X11R1 through X11R6.9, X11R7.x releases are not built from one monolithic source tree, but many individual modules. These modules are distributed as individ- ual source code releases, and each one is released when it is ready, instead
    [Show full text]
  • Ubuntu Server Guide Basic Installation Preparing to Install
    Ubuntu Server Guide Welcome to the Ubuntu Server Guide! This site includes information on using Ubuntu Server for the latest LTS release, Ubuntu 20.04 LTS (Focal Fossa). For an offline version as well as versions for previous releases see below. Improving the Documentation If you find any errors or have suggestions for improvements to pages, please use the link at thebottomof each topic titled: “Help improve this document in the forum.” This link will take you to the Server Discourse forum for the specific page you are viewing. There you can share your comments or let us know aboutbugs with any page. PDFs and Previous Releases Below are links to the previous Ubuntu Server release server guides as well as an offline copy of the current version of this site: Ubuntu 20.04 LTS (Focal Fossa): PDF Ubuntu 18.04 LTS (Bionic Beaver): Web and PDF Ubuntu 16.04 LTS (Xenial Xerus): Web and PDF Support There are a couple of different ways that the Ubuntu Server edition is supported: commercial support and community support. The main commercial support (and development funding) is available from Canonical, Ltd. They supply reasonably- priced support contracts on a per desktop or per-server basis. For more information see the Ubuntu Advantage page. Community support is also provided by dedicated individuals and companies that wish to make Ubuntu the best distribution possible. Support is provided through multiple mailing lists, IRC channels, forums, blogs, wikis, etc. The large amount of information available can be overwhelming, but a good search engine query can usually provide an answer to your questions.
    [Show full text]
  • This Book Doesn't Tell You How to Write Faster Code, Or How to Write Code with Fewer Memory Leaks, Or Even How to Debug Code at All
    Practical Development Environments By Matthew B. Doar ............................................... Publisher: O'Reilly Pub Date: September 2005 ISBN: 0-596-00796-5 Pages: 328 Table of Contents | Index This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project. Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further. Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often.
    [Show full text]
  • Process Innovations for Security Vulnerability Prevention in Open Source Web Applications
    Process Innovations For Security Vulnerability Prevention In Open Source Web Applications Diploma Thesis Florian Thiel April 30, 2009 Department of Mathematics and Computer Science Institute for Computer Science Software Engineering Working Group Responsible University Professor: Prof. Dr. Lutz Prechelt Supervisor: Dipl.-Medieninf. Martin Gruhn This work is licensed under the Creative Commons Attribution 3.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/de/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Please note: Pictures in this work are not licensed under a Creative Commons Attribution license and may not be copied as freely as the rest of this work. Comic strips in this work are by Randall Munroe of xkcd and licensed under a Creative Commons Attribution-NonCommercial 2.5 license. The picture on the title page is by Matteo Carli and licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 license. It is available at http://www.flickr.com/photos/matteocarli/2489736887/. Affirmation Of Independent Work I hereby declare that I wrote this thesis myself without sources other than those indicated herein. All parts taken from published and unpublished scripts are indicated as such. Berlin, April 30, 2009 ii Acknowledgments First of all, I would like to thank Professor Lutz Prechelt who suggested and supported the topic of this thesis and enabled me to spend months of interesting research in the fascinating world of security research. I also owe a lot to Martin Gruhn, my supervisor, who provided lots of feedback and was especially helpful to flesh out the argumentation and create a good narrative.
    [Show full text]
  • Debian Packaging Tutorial
    Debian Packaging Tutorial Lucas Nussbaum [email protected] version 0.27 – 2021-01-08 Debian Packaging Tutorial 1 / 89 About this tutorial I Goal: tell you what you really need to know about Debian packaging I Modify existing packages I Create your own packages I Interact with the Debian community I Become a Debian power-user I Covers the most important points, but is not complete I You will need to read more documentation I Most of the content also applies to Debian derivative distributions I That includes Ubuntu Debian Packaging Tutorial 2 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 3 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 4 / 89 Debian I GNU/Linux distribution I 1st major distro developed “openly in the spirit of GNU” I Non-commercial, built collaboratively by over 1,000 volunteers I 3 main features: I Quality – culture of technical excellence We release when it’s ready I Freedom – devs and users bound by the Social Contract Promoting the culture of Free Software since 1993 I Independence – no (single)
    [Show full text]