One-size-doesn't-fit-all.
Particulars of the Volunteer Open
Source Development Methodology
Felix Stalder <http://felix.openflows.org>
Published in: Make World Newspaper #3, Sept.11, 2003
license: Attribution-ShareAlike 1.0,
http://creativecommons.org/licenses/by-sa/1.0/
The Free and Open Source Software Movement has been spectacularly
successful. In barely 20 years, it has grown from a dream of a small
band of programmers to a world-wide reality, producing some of the most
advanced informational goods available anywhere. As such it has been
the first collective effort to successfully harness the potential of
the Internet, where information can be abundant and communication
without cost.
This success has been inspirational, and many are looking for ways to
apply its development model beyond software. The model is based on
communal management and open access to the informational resources for
production, openness to contributions from a diverse range of
users/producers, flat hierarchies, and a fluid organizational structure.
To some degree this model has been applied successfully beyond
software, in projects such as the free Encyclopedia, Wikipedia;
collaborative sites writing/publishing projects such as koro5hin.org;
and the Distributed Proofreading Project, attached to the Gutenberg
Project.
However, the free and open source model is not a one-size-fits-all
solution to open production of informational goods via the Internet and
is not suited to be applied to many areas of informational production.
Why? Because its social organization, the particulars of its
development methodology, reflect the particulars of the problems --
software development -- for which it has been created. Other problems
has different particulars and will need a different form of social
organization to be produced 'openly'.
There are at least six particulars of software production, which is
reflected in the social organization of the Free and Open Source
Movement, that we cannot take for granted in other contexts.
1) Producers are not sellers
The majority professional, i.e. highly-skilled, programmers do not draw
their economic livelihood from directly selling the code they write.
Many work for organizations that use software but do not sell it, for
example as system administrators. For them the efficient solution of
particular problems is of interest, and if that solution can be found
and maintained by collaborating with others, the sharing of code is not
an issue. For others employed in private sector companies, for example
at IBM, the development of free software is the basis for selling
services based on that code. The fact that some people can use that
code without purchasing the services is more than off-set by being able
to base the service on the collective creativity of the developer
community at large. From IBM's point of view, the costs of
participating in open software development can be regarded as 'capital
investment' necessary for the selling of the resulting product:
services.
For members of academia (faculty and students) writing code, but not
selling (often explicitly prohibited), contributes to their
professional goals, be it as part of their education, be it as part of
their professional reputation-building. For them, sharing of code is
not only part of their professional advancement, but an integral part
of the professional culture that sustains them also economically,. in
form of salaries for the faculty and stipends for the (graduate)
students.
Last but not least are all those who use their professional skills
outside the professional setting, for example at home on evenings and
weekends. Having already secured their financial stability, they can
now pursue other interests using the same skill set.
2) Limited capital investment
Particularly the last, and very important group of people, whose who
work outside the institutional framework on projects based on their own
idiosyncratic interests, can only exist due to the fact that the means
of production are extraordinarily inexpensive and accessible.
Materially, all that is needed is a standard computer (often even a
substandard one would already suffice) and a fast, reliable connection
to the communication forums of the community. Of course, the computer
and the network rely on a level of infrastructure that cannot be taken
for granted in large parts of the world, but for most people in the
centers of development, they are within relatively easy reach.
Once this access to be means of communication is secured, the skills
necessary to participate in the development of code can also be
acquired collaboratively, free of charge. The number of self-taught
programmers is significant. Since no expensive diplomas are necessary
to become active, the financial hurdle is, indeed, extraordinarily low.
3) High number of potential contributors
Programming knowledge is becoming relatively common knowledge, no
longer restricted to an engineering elite, but widely distributed
throughout society. Of course, truly great programmers are rare as
truly great artists are, but average professional knowledge is widely
available. This has a quantitative and a qualitative dimensions.
Quantitatively, the number of able programmers is in the millions, and
rising. Qualitatively, the range of people capable programmers is also
unusually wide, not the least because the material hurdles are so low
and the learning can take place outside of institutions with entry
exams and tuition fees. This large and diversified pool of talents
makes it possible to create the critical mass of contributors out of
only a fraction of population.
4) Modularized and Incremental
Production
A large software program consists of many smaller code segments
(libraries, plug-ins etc), some of which can be appropriated from other
programs. This makes it possible to break down the production process
into many small steps which can be carried out by distributed
contributors. If the act of integration is relatively straight forward,
it allows to keep the amount of work that each has to contribute highly
flexible and also make use of smaller contributions (bug reports,
patches). Furthermore, the modularity of the production process allows
a high number of people to work in parallel without creating
significant interferences.
5) Producers Are Users
According to Eric S. Raymond, a good open source projects starts with a
programmer scratching his own itch and finding out in the process that
there are many others with the same problem. Wanting to use a program
is a great motivation of contributing to developing it. Often, it's
much more efficient that waiting, hoping that someone will write and
sell a program that will address one's particular need.
6) No Liability
Last, but not least, software, proprietary as well as free and open
source, has no product liability. Paragraph 11 of the GPL states,
similar to most other licenses, that "the copyright holders and/or
other parties provide the program 'as is' without warranty of any kind,
either expressed or implied, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose"
(GPL, v2). The absence of liability makes it possible to produce a
program without having to assign clear ownership of the entire program
(as supposed to attribution of parts of the code to individual
contributors), or other markers allowing to determine liability.
This is not a critique of the Free and Open Source Software Movement,
it works well and represents exceptional social innovation. But, to
extend this innovation, we need, well, to innovate more. We must to
think creatively what it would mean create open access to other
informational goods, say music or medical drugs. For these areas, Free
and Open Source Software can be an inspiration, but not a model.
There's reason to be optimistic. Now models are being tested, or at
least seriously discussed. The growth of "Open Access Journals" or
discussions around "compulsory licensing" are good, though very early
examples. Much remains to be done.
Note: an earlier version of this text has been published on nettime-l
and oekonux-en and the discussions on this list have helped to clarify
the argument presented.