Dissertation Thesis
Total Page:16
File Type:pdf, Size:1020Kb
Palacký University, Olomouc Faculty of Arts Department of Sociology, Andragogy and Cultural Anthropology KNOWLEDGE PRODUCTION IN FREE AND OPEN SOURCE SOFTWARE DEVELOPMENT Dissertation thesis Author: Tomáš Karger Advisor: Doc. PhDr. Dušan Lužný, Dr. Olomouc 2015 I declare that this thesis is my own original work. Where other people’s work has been used, this has been properly acknowledged and referenced in accordance with departmental requirements. Olomouc, May 27th, 2015 ………………………………………….. I would like to express my gratitude to those, who influenced the shape of this work: Doc. Dušan Lužný for providing me with opportunities to grow, Prof. Libora Oates-Indruchová and Prof. Gerlinda Šmausová for their guidance, Dr. Jan Kalenda for all the discussions, my family and friends for their support and understanding. Annotation (CZ) Svobodný software představuje formu kooperativní produkce, která je založena na redukci transakčních nákladů, jíž je dosaženo pomocí neformálních způsobů organizace a využívání internetové infrastruktury. Cílem práce je zachycení dynamiky vědění v projektech svobodného softwaru, aby tak mohla popsat roli, kterou vědění hraje v této konkrétní formě kooperativní produkce. Přístup ke svobodnému softwaru je založen na konceptualizaci programování (ústřední aktivity ve vývoji softwaru) jako aktivity založené na specifických typech vědění. Dále rozlišuji mezi věděním a informacemi, což mi umožňuje formulovat problém dekontextualizace. Předpokládám, že konfigurace aktérů a artefaktů, jenž se promítá do kognitivních procesů, má podobu sítí. K jejich analýze je pak využit jazyk sociologické teorie označované jako Actor- Network Theory, konkrétně koncept mediace specifikovaný jeho čtyřmi významy: kompozice (composition), překlad (translation), delegace (delegation) a zneprůhlednění (black-boxing). Metodologicky je práce ukotvena v přístupech technické etnografie, etnografie infrastruktury a multi-sited etnografie. Sběr dat proběhl v rámci terénní práce (která zahrnovala zúčastněné pozorování a analýzu dokumentů) v projektu svobodného softwaru – působil jsem v roli autora dokumentace vyvíjeného softwaru. Na základě pozorování popisuji programování jako druh praxe, v rámci které je jednání stabilizováno, sestavováno a delegováno (prostřednictvím zkompilovaných programů) na množství míst (počítače uživatelů). Softwarové nástroje v tomto procesu slouží k transformaci nestabilního průběhu práce do standardizovaných jednotek, jenž jsou delegovány na veřejná místa a jsou uzpůsobeny tak, aby bylo možné je zahrnout do jiných kompozic. Taková konfigurace pak značně redukuje transakční náklady kooperativní produkce. I když ale licencování typické pro svobodný software záměrně a systematicky tlumí práva (na přístup, modifikaci a redistribuci) tradičně vázané na vlastnictví tím, že je připisuje každému, činnosti, které tato práva definují, jsou v praxi vykonávána jen malou skupinou aktérů, jenž jsou nositeli určitých typů vědění. V důsledku toho se pak zdá, že v tomto prostředí existuje těsný vztah mezi vlastnictvím (na praktické úrovni) a věděním. Toto zjištění na první pohled potvrzuje předpoklady entuziastických očekávání, vztahujících se k potenciálu kyberprostoru a digitálních technologií obecně, že vědění se stalo nejvýznamnějším faktorem produkce. V této práci se ale snažím ukázat, že vědění je stále umístěno v rozsáhlejších systémech produkce, jenž mají materiální povahu a že požadavky, které tyto systémy ukládají aktérům, limitují jejich domněle volnou interakci. Table of Contents Preface Introduction.................................................................................................................................1 1. FOSS and Utopian Virtualism.................................................................................................4 2. Software and Knowledge......................................................................................................21 2.1. Network Shaped Knowledge Distribution....................................................................29 3. Methodology.........................................................................................................................41 3.1. Analysis and Interpretation Through Indexing and Writing..........................................45 3.2. Research Field...............................................................................................................48 3.3. Research Sample...........................................................................................................51 4. Dismantling Pitivi, the Video Editor.....................................................................................54 4.1. Knowledge Channeling.................................................................................................69 4.2. Debugging.....................................................................................................................81 4.3. Revision Tracking..........................................................................................................87 4.4. Rules of Mediation........................................................................................................95 4.4.1. Composition...........................................................................................................96 4.4.2. Translation and Delegation..................................................................................101 4.4.3. Black-boxing........................................................................................................114 4.5. Resources Propelling Development............................................................................119 5. Assembling a FOSS Project................................................................................................133 References...............................................................................................................................141 Appendix 1: An Example of Scripting....................................................................................152 Appendix 2: Pitivi Architecture..............................................................................................154 Appendix 3: Pitivi Interface....................................................................................................155 Appendix 4: Overview of Projects Developing Video Editors...............................................156 Appendix 5: History Log of a MediaWiki Page.....................................................................157 Appendix 6: Display of Differences Among Two Versions of a MediaWiki Page.................158 Appendix 7: A Git Commit.....................................................................................................159 Preface The original topic of my dissertation research was quite a different one. It should have been a theoretical work about the concept of self-organization (or emergence, spontaneous order) and its use in the social sciences. Having a technological background in my education, I was fascinated by the language of Cybernetics and Systems Theory (Niklas Luhmann’s theory in particular) and by the images of spontaneously emerging order. The reader can still trace these influences in number of footnotes through the work. It was only during the first year of my Ph.D. studies that I realized that I could put my education to use in a different way. I could do participant observation in a field where not many sociologists or anthropologists would feel at home. This went hand in hand with the fact, that I found two fields to be repeatedly listed as empirical examples of self-organization: science and free and open source software development. The former has been researched for quite some time now with a substantial body of literature on record. But the latter has only about a decade and a half on its record with a significantly smaller body of literature. This was an area I could make a good contribution to. Moreover, I was a user interested in the latest development in free and open source software since high school (where I studied electrotechnical engineering), which provided me with a rough picture of the field’s most basic dividing lines. All of this led to my decision to officially change the topic of my dissertation, leaving me with a lot to catch up on but also with an advantage of my prior everyday knowledge which, of course, must have undergone a thorough reflection. Eventually, my findings led me to a rather critical position towards the images associated with self-organization as I uncovered their limited relevance and the utopic valence they carry. There is a little irony in the fact that one of the points of this work is to show the limitations of the images which initially fascinated me and have drawn me to the topic. But I take this as a sign that I did not succumb to my initial preconceptions. How much this work will transform the knowledge in the relevant fields of study remains to be seen. However, a different transformation has already taken place, that of its author. Introduction For some, software development is an activity obscure enough that it should nicely connect to the anthropological tradition of studying exotic cultures covered with mystery. Others may find it as boring as reading through telephone books – a different kind of information infrastructure. However, reading and writing of source code (which is the primary activity behind software development) has been, by many influential individuals, recently pronounced