<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Social Forking in Open Source Software: An Empirical Study</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Kam Hay Fung</string-name>
          <email>kamhayfung@ieee.org</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aybüke Aurum</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Tang</string-name>
          <email>dtang@atlassian.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Information Systems, Technology and Management, The University of New South Wales</institution>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Forking is the creation of a new software project by making a copy of artefacts from another project. Forking is gaining traction in industry because of the maturity of distributed version control systems and the abundance of open source software (OSS) and hosting platforms that support forking. However, forking in OSS is a poorly understood practice in research, often assumed to be damaging to the open source community. This research aims to explore social forking. It uses a conceptual model for forking centring on three key concepts forks (i.e. created projects), communities (i.e. groups of forks) and contributions (i.e. changes contributed from a forked project to the project from which its artefacts were copied) - to empirically analyse nine public domain JavaScript development communities in GitHub, a web site for hosting social coding. The analysis examined the relationships of these communities, the nature of forking, and the way in which forking and contributions were used in a social setting.</p>
      </abstract>
      <kwd-group>
        <kwd>forking</kwd>
        <kwd>cloning</kwd>
        <kwd>open source software</kwd>
        <kwd>social coding</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The open source software (OSS) initiative has provided an invaluable source of
learning for the software industry, running counter to many existing theories and
explanations [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], and offering practices and characteristics in contrast to commercial
software development. While much of the open source landscape has been explored – in
terms of participants’ motivations [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], social and technical characteristics of projects,
management issues, legal issues, adoption and business models – a changing
technological milieu is likely to offer new opportunities for learning, as it nudges the open
source community in subtle but interesting ways. This is because OSS development,
as a geographically distributed and asynchronous process, is largely mediated by
Internet technologies such as mailing lists, wikis, bug trackers and version control
systems [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] – which, as with any technology, evolve over time.
      </p>
      <p>
        Distributed revision control systems (DRCS) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] provide the infrastructure and
platforms for hosting OSS projects. DRCS, as distinct from the traditional, centralised
revision control systems, enable the sharing of code between peers without
communicating through a central server [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. These platforms encourage developers to fork each
other’s projects [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] – that is, to copy and publish an OSS’s code from repositories
owned and maintained by others to make changes. These changes can be promoted to
the original OSS (e.g. as enhancements) or used to manifest it into a different OSS.
The social phenomenon of forking refers to the heedful interaction of members in an
OSS community, via forking, in driving the advancement of the OSS.
      </p>
      <p>
        We do believe that forking has its importance and practicality in OSS
development. It, however, has received mixed reception in the literature and which is often
contingent on anecdotes and conjecture [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The lack of interest in and in-depth
research on this topic also stems from the fact that forking in OSS is considered to be
unlikely to occur [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. This brings us to our research question:
      </p>
      <p>How is forking utilised to facilitate OSS development?</p>
      <p>This research serves as a first step towards improving the understanding of forking
in OSS and hopefully fuelling research in this direction for the benefit of OSS
development by online communities. This paper is organised as follows. A review of the
literature is given in Section 2. In Section 3, we describe our proposed conceptual
model for social forking as a way to explain its key concepts. Section 4 presents our
research methodology to empirically examine a web site that facilitates forking and
OSS development, using our conceptual model as a guide. Section 5 provides our
results and Section 6 presents our conclusions and a discussion of future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Literature Review</title>
      <p>
        Forking is the creation of a new software project from the same code base as another
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] by anyone, with or without the knowledge or consent of the creator of the original
project, as unlike commercial software licences OSS grants the right for anyone to
access, modify and redistribute source code [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The definitions of forking vary
subtly in emphasis. It can be merely seen as the splitting up of an OSS project into two or
more projects which are then developed separately. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Sometimes forking is
weighed in with dire consequences. It is regarded as the splitting up of an OSS project
into competitive [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and incompatible [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] strands of OSS. Nevertheless, forking
fosters the code base of an existing OSS to be moved in a different direction than that of
its erstwhile project leadership [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        It has been claimed there is a strong taboo against forking [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. It is believed that
forking divides an OSS community by weakening both user and developer
involvement [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Projects forked from another dilute the attention of end users of OSS, the
user base of the original project and the support network around it. They also starve
the original project of developers, who need to split their effort for different forked
projects [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Forks are also seen as a band aid solution for technical disagreements
and interpersonal conflicts that cannot be resolved in the forking project [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Thus,
leaders within an OSS community strive to directly resolve those issues within the
forking project so as to reduce the need for forks [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        Forking is seen to distance developers of an OSS community from the original
project from which forks were created (i.e. the forking project) and make them lose
interest in the project [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. There is also the potential for duplication of effort in different
forks, and rivalry among developers (e.g. claiming their forks are superior) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. A
developer might face the loss of their reputation since (s)he is unlikely to contribute to
multiple forks as well as the forking project and claim the credit for all his/her effort
[
        <xref ref-type="bibr" rid="ref15 ref5">5, 15</xref>
        ]. Even when a developer can make modifications in a fork for a good cause,
(s)he can feel a sense of rejection when modifications are but declined(?) by
administrators of the forking project [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Forking has been touted as a danger to OSS development and its adoption [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
since forking has the potential for fragmenting the design into competing [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and
incompatible versions [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Whilst it is easy to create forks, the number of forks for a
project, and hence variants of it, can explode, leading to a loss of commonality [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
the original intent and main characteristics of the software produced from the forking
project.
      </p>
      <p>
        On the positive side, forking permits specialisation of OSS for different needs [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
For example, parties in an OSS community may use forking to extend or customise a
standard implemented in the OSS to their advantage [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The OSS in a forked project
can also evolve separately from the project from which it was forked to satisfy new
requirements [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. New features are experimentally developed in forks independently
of the OSS from the original project. Variants of the OSS (e.g. for Apple iPhone vs.
for Android) from the original project can also be developed in a fork. Hence, forking
is also regarded as a source of innovation [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        In an OSS development environment, an individual has some freedom to fork a
project and choose to work on whatever part of the OSS suits his/her interest, agendas
and approaches [
        <xref ref-type="bibr" rid="ref11 ref16">11, 16</xref>
        ], irrespective of time and geographical constraints. Forking
also provides developers leeway in exploring alternatives for OSS [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Developers
can also work at a fast pace without being bogged down by the bureaucracy of
consensus-driven processes that manage changes [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. When developers work on
different forks, they have the opportunity to compete with one another by developing the
OSS solution of best interest to their OSS community.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>A Conceptual Model for Social Forking</title>
      <p>To facilitate our investigation, we firstly define a conceptual model for social forking
and its terminology. Forking is the task of creating a new software project from
existing artefacts of another software project. Artefacts are not limited to source code.
They can be anything related to the software that a project aims to develop, such as
documentation, examples, test harnesses and third party libraries. The forked project
(or simply the fork) can be used for enhancement, bug fixes, innovation and so on. A
fork and the one from which it is forked forms a successor-predecessor relationship.
A developer of a fork has a vested interest in the original project from which it was
forked but the owner of the original project may not necessarily be aware of the forks
created and their development activities.</p>
      <p>
        When changes are made to the original project, the underlying DRCS notifies
coders of its forked projects about the changes. They may then review the changes and
incorporate them as an update to their forks as at their own pace, without any
involvement of the owner of the original project. The social aspect of forking comes
into play when social interaction occurs in order for a successor fork to make
contributions [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to a predecessor fork. In a simple case, a coder who has forked a project
makes changes to it, notifies the owner of the predecessor project of the changes and
interacts with the owner by exchanging comments about the changes. The owner then
incorporates the changes into the predecessor project.
      </p>
      <p>Forking is utilised at two layers of abstraction: endogenous and exogenous.
Endogenous forking occurs within a community of social developers who work on forks
for the same software product line. For instance, one creates a fork to enhance an
existing feature of a software product. A fork tree for forks in a community can be
represented as a tree structure. At the top of the tree is the master fork of the
community from which all forks are created. Primary forks are those directly created from
the master fork. Likewise, secondary forks are those created for primary forks.</p>
      <p>Exogenous forking refers to the creation of forks across communities of social
developers. Through exogenous forking, import and export relationships are established
across community borders. In the former, a copy of a master fork in one community is
imported into a master fork in another community. It can be used for bringing a copy
of a third-party library into another project for creating a new software product. This
import operation decouples activities of coders in one community from the other. The
coders in the new community work with a baseline version or snapshot of the master
fork, while those in the original community continue to evolve its master fork. Note
also that the import operation only brings in whatever artefacts are required for the
importing community. A more complex form of exogenous forking is to import forks
from multiple communities into another community.</p>
      <p>In an export relationship, artefacts in community B are purported to be an add-on
or plug-in feature to artefacts in community A. Artefacts in B are essentially
decoupled from those in B; the runtime code produced from artefacts in B can be run
independently of those produced from A and vice versa. This independence also
distinguishes between export and import relationships.</p>
      <p>
        A fork is to a fork tree what a branch is to a version tree for version control
systems in which branches are created for auxiliary tasks to be carried out [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Auxiliary
tasks include performing fixes, distributed development, custom modification, dealing
with conflicting updates [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Although both a fork tree and a version tree (as well as
their artefacts) are structured similarly and managed under version control, a fork tree
is differentiated from a version tree in a few ways:
 A fork can be used to initiate a separate strand of independent development for a
new OSS. Unlike those in a branch, changes made in the fork need not be
promoted to its predecessor;
 A fork can be created from only a subset of the artefacts from its predecessor
whereas in a branching operation, a whole copy of a project’s artefacts is made into
its branch; and
 A fork can be created from two or more predecessors, thereby bringing features
from different predecessors. A branch can only have one predecessor.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Research Methodology</title>
      <p>A three-step empirical study was carried out to examine the phenomenon of social
forking using our conceptual model as an analysis framework. In step 1, we chose and
examined Github (https://github.com/) since it is one of the top websites based on the
number of OSS development projects hosted1. We started our search for communities
(i.e. software repositories in Github) using JavaScript programming language since
JavaScript was the most popular in GitHub (20%) and it might also increase our
chance of finding exogenous forking. We then narrowed our selection to those with
the highest number of forks which was indicative of a high level of social activities
and a rich source of forking data. In step 2, we developed and ran a tool against each
of the software repositories identified to extract data from them via GitHub’s public
APIs (which are RESTful Web Services); to transform extracted data into a format
based on our conceptual model; and to load the transformed data into a relational
database. In step 3, the empirical data loaded in the database were explored to identify
patterns of social forking. Our analysis of the results is presented next.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Results</title>
      <p>The top nine JavaScript development communities hosted by Github having the
highest numbers of forks were selected and used in our empirical analysis in November
2011. We investigated the relationships of the communities by examining their
documentation and the files in their repositories. The communities exhibit import and
export relationships and there are two variants in the former. In one case a full copy of
the artefacts from community A is imported into community B whereas in the other
case only a subset of the artefacts from A were imported into B. Fig. 1 depicts the
analysed communities and their relationships. The number labelled alongside each
relationship instance represents the number of integration contributions made to a
community as a result of maintaining the import/export relationships. This is further
elaborated, together with the analysis of results for contributions, in Section 5.1.
5.1</p>
      <sec id="sec-5-1">
        <title>Forks</title>
        <p>All the communities we investigated had forks created at the primary and secondary
levels, with two having forks at the tertiary level. Of the (7789) primary forks
examined, 3.2% of them were used to create secondary forks and about the same ratio were
used for the secondary forks. These figures are indicative that sub-communities were
formed within the communities, which means developers participated in developing
1 http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities
features in the primary forks through their secondary forks. We observed that some
primary forks were created to develop brand new innovations in the community based
on their respective master forks, but were not necessarily intended to be incorporated
into their masters. For instance, “nodejsjp/node” is a primary fork for “joyent/node”
for the purpose of developing a Japanese version of “joyent/node”. Indeed, these forks
in conjunction with their successor forks formed sub-communities.</p>
        <p>Of all the primary forks created, only 14% offered contributions to their respective
master forks (11% for secondary to primary forks). A possible explanation for the
high ratio of non-contributing forks (86% for primary and 89% for secondary) is that
their developers were using forks to learn or experiment with the OSS’s features only.
ajaxorg/ace
joyent/node
2
Legend
A
A</p>
        <p>B
B</p>
        <p>B imports A
B exports to A
madrobby/
scripta
culous
documentcl</p>
        <p>oud/
backbone
7
1
jquery/
jquery
jquery/
jquery-ui
10
0
26
h5bp/
html5boilerplate
twitter/
bootstrap
jquery/
jquerymobile
The kinds of contributions made to each fork in the fork tree can be seen as a
reflection of the ways in which their successor forks were used in each community. We
analysed the titles and descriptions of over two thousand contributions and identified
keywords which we subsequently used to categorise the contributions as defect
fixes(43%), code enhancement(12%), documentation(7%), integration(2%), example
enhancement(2%) and changes to test code and documentation(1%). The rest could
not be categorised because of insufficient information. The integration category is
triggered by the import relationship between two communities. For instance, when
new features are added to artefacts in one community, they may also require import to
the community that imported the original version of these artefacts. The artefacts in
the latter community may also require changes to its artefacts in order to utilise the
new features imported from the former community.</p>
        <p>Of the contributions analysed from over one thousand contributing forks, the
contribution rates (i.e. number of contributions divided by number of contributing forks)
were 2.3 and 2.5 for contributing primary and secondary forks respectively. Note that
contributions have the potential to be propagated further up the fork tree. This was
evident from one case found during our examination of the contribution logs. A
secondary fork (“flavaflav/jquery-mobile”) produced a contribution to its primary fork
(“arsduo/jquery-mobile”) and the changes associated with that contribution were
packaged as yet another contribution which was subsequently incorporated into the
master fork (“jquery/jquery-mobile”).
5.3</p>
      </sec>
      <sec id="sec-5-2">
        <title>Users</title>
        <p>Close to seven thousand developers created about eight thousand forks in the OSS
communities analysed. We discovered some interesting behaviour of forking. In an
extreme case one developer created forks in eight out of the nine communities
analysed (i.e. working on projects in multi-communities). Six developers individually
created more than one fork in the same community. This could be because each of
these developers was using several forks to work on different parts of an OSS. 16% of
developers made contributions to their OSS communities and from which we also
identified some interesting behaviour of contribution. 5% of these developers made
contributions to more than one community, with the top eight having made
contributions to three communities. The most active developer made one hundred and
fortythree contributions! The OSS community most attracted to contributions was
jquery/jquery in which each developer created 3.3 contributions on average.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusions, Limitations and Future Work</title>
      <p>There has been a lack of critical studies into forking in OSS. In the literature there
is a debate about whether or not forking should be used; some contend it as damaging
to OSS development whilst some advocate its benefits to OSS communities and the
OSS developed. To improve on this lack of knowledge about forking, we empirically
investigated nine OSS communities from GitHub to gain an initial understanding of
how it was used to facilitate OSS development in a social setting. It shows that
forking was actively used by community participants for tasks such as fixing defects and
creating innovations. “Forks of forks” were also utilised to form sub-communities
within which specific aspects of an OSS product line were nurtured.</p>
      <p>Since our study is in its infancy, we limited our analysis to one OSS hosting
website, one programming language and nine communities, which poses validity threats
to our findings. We thus plan to expand our study with additional web sites hosting
OSS development (e.g. SourceForge, BitBucket, Gitorious) and interviews with OSS
communities’ members to gain better understanding of their perspectives on social
forking. The excitement around social forking combined with our research to date will
hopefully invigorate future research in this area and increase its uptake in practice.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Barcellini</surname>
            <given-names>F</given-names>
          </string-name>
          , DÈtienne
          <string-name>
            <given-names>F</given-names>
            ,
            <surname>Burkhardt J-M</surname>
            , Sack
          </string-name>
          <string-name>
            <surname>W</surname>
          </string-name>
          (
          <year>2008</year>
          )
          <article-title>A socio-cognitive analysis of online design discussions in an open source software community</article-title>
          .
          <source>Interacting with Computers</source>
          <volume>20</volume>
          (
          <issue>1</issue>
          ):
          <fpage>141</fpage>
          -
          <lpage>165</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bitzer</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schröder</surname>
            <given-names>PJH</given-names>
          </string-name>
          (
          <year>2006</year>
          )
          <article-title>The impact of entry and competition by open source software on innovation activity</article-title>
          .
          <source>In: J. Bitzer aPS (ed.): The Economics of Open Source Software Development 219-246</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cheliotis</surname>
            <given-names>G</given-names>
          </string-name>
          (
          <year>2009</year>
          )
          <article-title>From open source to open content: Organization, licensing and decision processes in open cultural production</article-title>
          .
          <source>Decision Support Systems</source>
          <volume>47</volume>
          (
          <issue>3</issue>
          ):
          <fpage>229</fpage>
          -
          <lpage>244</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Ernst</surname>
            <given-names>NA</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Easterbrook</surname>
            <given-names>SM</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
            <given-names>J</given-names>
          </string-name>
          (
          <year>2010</year>
          )
          <article-title>Code forking in open-source software: a requirements perspective</article-title>
          .
          <source>CoRR abs/1004.2889</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Feller</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fitzgerald</surname>
            <given-names>B</given-names>
          </string-name>
          (
          <year>2000</year>
          )
          <article-title>A framework analysis of the open source software development paradigm</article-title>
          .
          <source>Proc. 21st Int. Conf. Info. Systems 58-69</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Fogel</surname>
            <given-names>K</given-names>
          </string-name>
          (
          <year>2010</year>
          )
          <article-title>Producing open source software</article-title>
          . http://producingoss.com/en/index.html.
          <source>Accessed on 15 Nov</source>
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Glass</surname>
            <given-names>RL</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>A sociopolitical look at open source</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>46</volume>
          (
          <issue>11</issue>
          ):
          <fpage>21</fpage>
          -
          <lpage>23</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hertel</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Niedner</surname>
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Herrmann</surname>
            <given-names>S</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>Motivation of software developers in open source projects: an Internet-based survey of contributors to the Linux kernel</article-title>
          .
          <source>Research Policy</source>
          <volume>32</volume>
          (
          <issue>7</issue>
          ):
          <fpage>1159</fpage>
          -
          <lpage>1177</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Lanubile</surname>
            <given-names>F</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ebert</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prikladnicki</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vizcaíno</surname>
            <given-names>A</given-names>
          </string-name>
          (
          <year>2010</year>
          )
          <article-title>Collaboration tools for global software engineering</article-title>
          .
          <source>IEEE Software</source>
          <volume>27</volume>
          (
          <issue>2</issue>
          ):
          <fpage>52</fpage>
          -
          <lpage>55</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Moen</surname>
            <given-names>R</given-names>
          </string-name>
          (
          <year>1999</year>
          )
          <article-title>Fear of Forking</article-title>
          . http://linuxmafia.com/faq/Licensing_and_Law/forking.html.
          <source>Accessed on 22 May</source>
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Muffatto</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Faldani</surname>
            <given-names>M</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>Open source as a complex adaptive system</article-title>
          .
          <source>Emergence</source>
          <volume>5</volume>
          (
          <issue>3</issue>
          ):
          <fpage>83</fpage>
          -
          <lpage>100</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Nagy</surname>
            <given-names>D</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yassin</surname>
            <given-names>AM</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bhattacherjee</surname>
            <given-names>A</given-names>
          </string-name>
          (
          <year>2010</year>
          )
          <article-title>Organizational adoption of open source software: barriers and remedies</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>53</volume>
          (
          <issue>3</issue>
          ):
          <fpage>148</fpage>
          -
          <lpage>151</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>O</given-names>
            <surname>'Sullivan</surname>
          </string-name>
          <string-name>
            <surname>B</surname>
          </string-name>
          (
          <year>2009</year>
          )
          <article-title>Making sense of revision-control systems</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>52</volume>
          (
          <issue>9</issue>
          ):
          <fpage>56</fpage>
          -
          <lpage>62</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Open Source Initiative The Open Source Definition</surname>
          </string-name>
          (Annotated). http://www.opensource.org/osd.html.
          <source>Accessed on 01 June</source>
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Raymond</surname>
            <given-names>E</given-names>
          </string-name>
          (
          <year>1998</year>
          )
          <article-title>Homesteading the noosphere</article-title>
          .
          <source>First Monday</source>
          <volume>3</volume>
          (
          <issue>10</issue>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Raymond</surname>
            <given-names>E</given-names>
          </string-name>
          (
          <year>1999</year>
          )
          <article-title>The cathedral and the bazaar</article-title>
          .
          <source>Knowledge, Technology &amp; Policy</source>
          <volume>12</volume>
          (
          <issue>3</issue>
          ):
          <fpage>23</fpage>
          -
          <lpage>49</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Stewart</surname>
            <given-names>KJ</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gosain</surname>
            <given-names>S</given-names>
          </string-name>
          (
          <year>2006</year>
          )
          <article-title>The impact of ideology on effectiveness in open source software development teams</article-title>
          .
          <source>MIS Quarterly</source>
          <volume>30</volume>
          :
          <fpage>291</fpage>
          -
          <lpage>314</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Tichy</surname>
            <given-names>WF</given-names>
          </string-name>
          (
          <year>1985</year>
          )
          <article-title>RCS - a system for version control</article-title>
          .
          <source>Software: Practice and Experience</source>
          <volume>15</volume>
          (
          <issue>7</issue>
          ):
          <fpage>637</fpage>
          -
          <lpage>654</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Vetter</surname>
            <given-names>GR</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>Open source licensing and scattering opportunism in software standards</article-title>
          .
          <source>Boston College Law Review</source>
          <volume>48</volume>
          (
          <issue>1</issue>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>von Krogh</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spaeth</surname>
            <given-names>S</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>The open source software phenomenon: Characteristics that promote research</article-title>
          .
          <source>The Journal of Strategic Information Systems</source>
          <volume>16</volume>
          (
          <issue>3</issue>
          ):
          <fpage>236</fpage>
          -
          <lpage>253</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>