Code Forking, Governance, and Sustainability in Open Source Software

This article addresses the question of how the right to fork open source projects – to use the source code of an existing program to start a new, independent version – works as a governance mechanism to provide sustainability in open source software. The concept of sustainability is under debate, with numerous rubrics against which the sustainability of a product may be measured (e.g., Connelly, 2007: tinyurl.com/atjcgq3; Davison, 2001: tinyurl.com/aukl5ch; McManus, 1996: tinyurl.com/a5usfo3). Within the context of the current study, sustainability is defined as the possibility of an open source program to continue to serve the needs of its developers and users.


Introduction
This article addresses the question of how the right to fork open source projects -to use the source code of an existing program to start a new, independent versionworks as a governance mechanism to provide sustainability in open source software.The concept of sustainability is under debate, with numerous rubrics against which the sustainability of a product may be measured (e.g., Connelly, 2007: tinyurl.com/atjcgq3;Davison, 2001: tinyurl.com/aukl5ch;McManus, 1996: tinyurl.com/a5usfo3).Within the context of the current study, sustainability is defined as the possibility of an open source program to continue to serve the needs of its developers and users.
While code forking may lead to redundant independent efforts, it represents the single greatest tool available for guaranteeing sustainability in open source software.In this article, we examine code forking within open source initiatives and discuss the managerial implications of code forking.The article is structured as fol-lows: first, we offer some background on code forking; second, we look at how code forking affects governance on the three levels mentioned; finally, we explain the relevance of these findings and their management implications.

Background
Code forking has often been viewed in a negative light.At the core of this negative view is the continued use of a restrictive, and perhaps outdated, definition of the term forking.Until recently, the term fork was mainly used to describe a situation in which a developer community had split into competing camps, each continuing work on their own, incompatible version of the software (see, for example, Raymond, 1999: tinyurl.com/3ald3;Fogel, 2006: tinyurl.com/3dx2py).Hence, the negative tone found in discussions of forking has been related to concerns regarding the hindered progress, wasted resources, and potential demise of one or both of the projects.In recent years, the term forking The right to fork open source code is at the core of open source licensing.All open source licenses grant the right to fork their code, that is to start a new development effort using an existing code as its base.Thus, code forking represents the single greatest tool available for guaranteeing sustainability in open source software.In addition to bolstering program sustainability, code forking directly affects the governance of open source initiatives.Forking, and even the mere possibility of forking code, affects the governance and sustainability of open source initiatives on three distinct levels: software, community, and ecosystem.On the software level, the right to fork makes planned obsolescence, versioning, vendor lockin, end-of-support issues, and similar initiatives all but impossible to implement.On the community level, forking impacts both sustainability and governance through the power it grants the community to safeguard against unfavourable actions by corporations or project leaders.On the business-ecosystem level forking can serve as a catalyst for innovation while simultaneously promoting better quality software through natural selection.Thus, forking helps keep open source initiatives relevant and presents opportunities for the development and commercialization of current and abandoned programs.tributed, and open (Kallinikos et al., 2010;tinyurl.com/4zn6cun).These characteristics dictate that software is prone to being changed, repaired, and updated rather than remaining fixed from the early stages of the design process.The openness combined with the granular composition of the software offer new ways of governance (Benkler, 2006;tinyurl.com/6ftot3).This governance is not tied to over-appropriating a natural resource (Ostrom, 1991;tinyurl.com/b8rc2pu),but rather related to ways in which a group of developers, following institutional rules, collectively produce a public good (Schweik et al., 2010;tinyurl.com/aqxy2jp).

Software level
The nature of the industry dictates that programs cannot maintain a stable steady state for an extended period of time.They must continue to evolve in order to remain useful and relevant.Without continual adaptation, a program will progressively become less satisfactory (Lehman, 1980;tinyurl.com/b2mpkw3).Conversely, truly successful software is able to adapt and even out-live the hardware for which it was originally written (Brooks, 1975;tinyurl.com/awg3rrw).Therefore, the ability to change and evolve is a key component of software sustainability.Although stagnation may be a precursor to obsolescence, obsolescence need not creep into a project over time; it is often a design feature.
Popularized in the 1950s by American industrial designer Brooks Stevens (The Economist, 2009; tinyurl.com/ahws66g), the concept of planned obsolescence stands in stark contrast to the concept of sustainability.Stevens defined planned obsolescence as the act of instilling in the buyer "the desire to own something a little newer, a little better, a little sooner than is necessary" (Brooks Stevens' biography; tinyurl.com/bbs8a3c).Considered "an engine of technological progress" by some (Fishman et al., 1993;tinyurl.com/bye2n5r),yet increasingly problematized in the business ethics literature (Guiltinan, 2009; tinyurl.com/alr2c92),planned obsolescence is part of every consumer's life.Although contemporary software development and distribution have characteristics that differ substantially from the industrial products of the 1950s, the revenue models of companies in the software marketplace often welcome elements such as system versioning, to encourage repurchases of a newer version of the same system, or vendor lock-ins that limit the customer choice to certain providers of system or product (for a further review, see Forking lays the building blocks for innovators to introduce new functionalities into the market, and the plethora of online forges have hundreds of thousands of programs available for forking and reuse in any new, creative way the user can imagine, allowing for the rapid adaptation to the needs of end users.Hence, the practice of forking allows for the development of a robust, responsive software ecosystem that is able to meet an abundance of demands (Nyman et al., 2012;tinyurl.com/acg3fp21.

Managerial Implications
Managers should consider the following implications of code forking: • An abandoned project can become a business opportunity.
• Neither business models nor governance systems can completely prevent forking.Thus, developer and community satisfaction is of key importance.Table 1.Forking and its effect on governance

Forking
sits at the intersection of several different open source topics, such as software development, governance, and company participation in communities and business ecosystems.In the interest of clarity, we have simplified the categorization of the multifaceted concept of forking.In actuality, there is overlap among the categories: a strong community offers better insurance of sustainability of the software level, while better software can more easily attract a bigger community.Both a poorly handled community and an abandoned project can spawn a business ecosystem competitor.The right to fork code is intrinsic to open source software and is guaranteed by all open source licenses.This right to fork has a significant effect on governance and helps ensure the sustainability of open source software.We have analyzed the effect of forking on three differ-ent levels: the software level, the community level, and the ecosystem level.On a software level, code forking serves as a governance mechanism for sustainability by offering a way to overcome planned obsolescence and decay, as well as versioning, lock-in, and related concerns.On a community level, code forking ensures sustainability by providing the community with an escape hatch: the right to start a new version of the program.Finally, on an ecosystem level, forking serves as a core component of natural selection and as a catalyst for innovation.Online forges offer a plethora of publically available programs that can serve as the building blocks of a new creation.Current projects can be forked, abandoned projects can be revived and commercialized, or programs can be combined in novel ways to better meet the needs of both the developers and end users.It is the right to fork that moulds the governance of open source projects and provides the dynamic vigour found in open source computing today.

Governance, and Sustainability in Open Source Software
The possibility to fork is central to the governance of any open source community.The shared ownership of open source projects allows anyone to fork a project at any time.Therefore, no one person or group has a "magical hold" over the project(Fogel, 2006;  tinyurl.com/ahbh8nt).Since a fork involving a split of the community can hurt overall productivity, Fogel notes that the potential to fork a program is "the indispensable ingredient that binds developers together".Open source software is free, but it is also increasingly developed and supported for commercial gains (Wheeler, 2009: timreview.ca/article/229).While the right to fork may seem to make for a harsh business environment, open source companies can and do thrive.With its billion-dollar revenue (tinyurl.com/b7py36u),Red Hat is one such example.While their revenue primarily comes from subscriptions and services related to their software (see Suehle's [2012; timreview.ca/article/513]TIM Review Q&A for a more in-depth look at the secret of Red Hat's success), Red Hat's programs themselves are largely based on forks of programs by other developers.This phenomenon of combining forked programs is not unique to Red Hat: the hundreds of different Linux distributions (tinyurl.com/85r9o)are all made possible by the forking of existing products and repackaging them as a new release.
Combs, 2000; tinyurl.com/aq2wl7h).Newer versions of programs may introduce compatibility problems with earlier operating systems or programs (e.g., lack of backwards compatibility in Internet Explorer, Microsoft Office, or OS X's OpenStep APIs).Some programs also introduce new file formats, which can cause compatibility issues with earlier versions of the program (e.g., docx vs. doc).Furthermore, end-of-life announcements and concerns over end-ofsupport deadlines may encourage users to upgrade, regardless of the real need to do so.(Fitzgerald,2006;tinyurl.com/al995aj).The result of this constant collaborative improvement in open source systems is that any program with the support of the open source community can enjoy assured relevance rather than planned obsolescence.Furthermore, with renewed community interest, programs that have decayed and fallen into disuse can be revived and up-Code Forking, One of the concerns among open source communities is what Lerner and Tirole (2002; tinyurl.com/bfmaxl4)call the hijacking of the code.Hijacking occurs when a commercial vendor attempts to privatize a project's source code.The 2008 acquisition of MySQL (mysql.com),Similarly, in 2010, community concerns regarding governance led to a forking of the OpenOffice (OO; open office.org)project.The Document Foundation, which included a team of long-term contributors to OO, forked the OO code to begin LibreOffice (libreoffice.org).The spinoff project emphasized the importance of a "transparent, collaborative, and inclusive" government (The ful program with the intention of competing for the same customer base still leaves the would-be competitor with issues regarding trademarks, brand value and recognition, as well as the existing developer and user base of the original program.Even though forking allows companies to compete with identical open source software, it is nevertheless cooperation that is con- ).

Governance, and Sustainability in Open Source Software
www.timreview.caCodeForking,