From Coding to Community: Iteration, Abstraction and Open Source Software Development

From Coding to Community: Iteration, Abstraction and Open Source Software Development

Author: Brad Weikel
Graduation Year: 2009
Advisor:
Reader:
Date: 21 May 2009
Link to Thesis: none

Abstract:

Studies of Free and Open Source Software (FOSS) have generally focused on the programmers who write the code (including their culture, ethics, and motivations), the economic consequences of giving away code, and the legal and moral basis for FOSS licenses, in relation to copyright. However, the act of building FOSS applications, or, rather, the very act of programming, is fundamentally mediated by computer interfaces, including programming languages. In the pursuit of an understanding of FOSS development, these interfaces – and the material practices which they both derive and are derived from – cannot be ignored.

Two procedural genres, in particular, stand out in the material practices of software development: iteration and abstraction. Iteration, in this context, refers to the writing of software through incremental changes, leaving it ever subject to further modifications: bug fixes, extensions, and re-factoring. Abstraction, on the other hand, refers to the use of interfaces (programming languages, APIs, and user interfaces) to hide complexity, thereby enabling new relations between code and people.

This thesis is an exploration of iteration and abstraction in the practices of programming, as these concepts relate to the politics and production of FOSS projects. Iteration and abstraction will be introduced through simple code examples, in order to ground them as fundamental characteristics of programming, but will then be examined through a wider discussion of development methodologies and social relations. A comparison of compiled source code and interpreted source code, and the politics they embody, will serve as a proxy for the comparison of proprietary and FOSS development, respectively, again using iteration and abstraction as an entry point.

Finally, iteration and abstraction will be discussed in the context of Drupal, an open source content management system, and the community behind it. While these concepts, at the level of the individual, seem highly compatible with the politics of FOSS, studying a FOSS community reveals several sources of tension between iteration, abstraction, and the collaborative model of FOSS development.

This project brings a necessary precision and depth, and, as such, will inform future research on both FOSS and broader themes in open and participatory culture.