Open Source, Dynamic Systems and Self-Organization
Author: Ino Fleishmann
Originally Published at Peace and Conflict Monitor on: 12/08/2011
The intention of this article is to explain and compare the ideas of open source with systems theory, particularly regarding self-organized, self-regulating, dynamic systems and strange attractors. In so doing, it is important to first define what the term ‘open source’ means.
What is Open Source?
It is not so easy to define ‘open source’. The term open source implies the accessibility to the “source” of a product, a social movement, a methodology, and/or perhaps some sort of common values. It is probably impossible to find a general definition of open source. The Open Source Initiative defines open source as much more than just the access to the source code of a particular software. But, what is source code? To keep it simple, source code is basically text, written in programming language. This code is translated into a machine-readable version by a so-called “compiler”. After this compilation, a machine is able to understand the code and execute its orders. Proprietary software is mostly delivered only in a machine-readable way, which means the buyer or “owner” of the software is not able to see what the software actually does, because he is not able to read this language. This means that the buyer of the software only buys a sort of license that allows him or her to use the software under certain conditions. These conditions are mostly very limited in many aspects. I had an interesting conversation with Richard Stallman (Founder of GNU’s not UNIX and the General Public License) at the Open Knowledge Conference (OKCON) in Berlin this year. Among other interesting ideas, he stated that: “Proprietary software keeps users helpless and dependent on the producer of the software.” These thoughts can also be found in several interviews with Stallman himself.2
The core idea of open source is rooted in this limitation. People who wanted to change minor functions of software were not able to do so, because of its limited access and license. From there, the demand to be able to access the source code became popular. The term open source itself refers to the human-readable code of software.
As mentioned before, the Open Source Initiative defines open source as much more than just having access to the source code of the program: “The Open Source Initiative (OSI) is a non-profit corporation with global scope formed to educate about and advocate for the benefits of open source and to build bridges among different constituencies in the open source community”.1 Its definition includes 10 points, including:
– Free Redistribution
– Integrity of the Author’s Source Code
– No Discrimination against Persons or Groups
– No Discrimination against Fields of Endeavor
– License Must Not Be Specific to a Product
– License Must Not Restrict Other Software
– License Must Be Technology-Neutral1
Richard Stallman is talking about the concept of the term he created called “free software”. It is not exactly the same as open source, but it is very close and probably just boils down to a personal preference of wording. “Free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer.”3 He defined four freedoms of software that allow the user to run, copy, distribute, study, change and improve the software. The four freedoms are:
– The freedom to run the program, for any purpose (freedom 0).
– The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1).
– The freedom to redistribute copies so you can help your neighbor (freedom 2).
– The freedom to distribute copies of your modified versions to others (freedom 3).3
All these freedoms are only possible if the source code is open and available. Open source is a precondition for free software.
The development of Open Source Software Projects
Given these preconditions, many successful open source software projects have arisen in the last 20–30 years. The range of software covers almost every application imaginable, including operating systems like Linux, which is probably one of the most stable. Surprisingly the market share of Linux is only around 1%4. However, this does not mean that it is not important; actually, the opposite is true. Linux is mostly used by governments, organizations and institutions who want to have full access and control of the software they use, also known as the four freedoms. A few examples of how and where Linux is used:
– U.S. Department of Defense (According to Linux.com, the United States Department of Defense is the “single biggest install base for Red Hat Linux” in the world. […] as Brigadier General Nick Justice, the Deputy Program Officer for the Army’s Program Executive Office proclaims “open source software is part of the integrated network fabric which connects and enables our command and control system to work effectively, as people’s lives depend on it.” Justice went on to state that “when we rolled into Baghdad, we did it using open source”, and that he was indeed Red Hat’s “biggest customer.”)4
– The French Parliament (opted in November 2006 to dump Windows in favor of Ubuntu Linux, according to ZD Net. The move was part of a comprehensive shake-up in the software run on Parliament computers, resulting ultimately in “1,154 French parliamentary workstations running on Linux, with OpenOffice.org productivity software, the Firefox web browser and an open-source e-mail client.”)4
– Google (Believe it or not, the gigantic, ever-growing cluster of servers that power Google’s search and other apps runs Linux. Of course, in typical fashion, Google was not content to simply run an out-of-the-box version on its own hardware. Instead, the search giant had its engineers cook up a customized version of Ubuntu referred to within the company as “Goobuntu.” Linux is also frequently used internally on desktop machines, beyond its use on Google servers.)4
– Czech Post (Perhaps taking a cue from the U.S. Postal Service, the Czech Republic’s own post office successfully migrated to Linux in 2005, according to Europa. The chosen distribution of Linux (SuSe) now runs on “4,000 servers at 3,400 post offices across the country, as well as at 12,000 client terminals used by 20,000 employees.” Once more, cost was a driving force behind a large state institution switching from Windows or other providers to free, open-source Linux.)4
Amazon, The U.S Navy Submarine Fleet, The City of Munich (Germany), Cuba (Cuba is even developing its own Linux distribution), Novell, IBM, Panasonic, Cisco, Peugeot, Wikipedia and many universities, schools and governmental institutions all over the world are using and trusting Linux more than a proprietary operating system.4 This is also happening with all other kinds of software, including for healthcare, media, security, computer added design, education, groupware, games, data management, etc.5 One of the most popular examples of open source success stories is the web browser Firefox promoted by the Mozilla Foundation. Its market share is around 25% and many web developers love this browser because of the given freedom to add whatever little program or function you need.6 Other examples are Open Office (market share in Germany, Austria and Switzerland: 21%)7, the Apache Server (market share 65% of all web servers worldwide!)8 and open source content management systems (CMS), like WordPress, Joomla and Drupal (these 3 together have a market share of 84%, and they are the only open source CMSs)9.
By having a common understanding of the roots and some examples of open source “success” projects, we are able to move on and look at other aspects of open source: open source as a methodology or a social movement, not only a product.
Characteristics of Open Source Projects
One of the main characteristics of open source projects is that they are not driven by money or profit. People collaborate, contribute and share because they are motivated by other reasons. According to a study “Working for Free? – Motivation of Participating in Open Source Projects” from the University of Southern California, the sources of motivation are complex.10 Internal and external motivation is found among all of the contributors, and there is a diverse composition of contributors. Students and hobby programmers are more internally motivated, while paid programmers are more motivated by selling related products and services. One of the key findings of this study is that the composition of contributors and their motivation to participate in open source projects is very diverse and non-homogenous. As a consequence, the open source movement can draw from a diverse set of motivations.10 All these motivations have something in common. There is no external immediate reward. People are passionate with what they are doing.
There is also no “classical hierarchy” in open source projects. People self-organize in small working groups or teams and organize their contribution to the whole, bigger product. This way of working is much more flexible than in strict hierarchical structures. This methodology also fosters much more creativity and flexibility, as many studies in the past have proven. The reaction time in these open source communities is impressively fast. If there is a bug report (something not working as expected), it is for the most part resolved in a short time. There is no hierarchy to go through. The bug is reported, everyone is able to see the problem, and everyone is invited to solve it. With this way of collaboration, it could so happen that you report a bug by the end of the day and when you wake up it is already resolved by someone living in another time zone. This goes beyond nation-states, continents and cultures, since open source communities are mostly acting worldwide. This is also an example for working self-organization.
A precondition for making this happen is transparency. It is not only that the source code is open; it is also very important to keep track of changes of the software and document them in a transparent way. For that reason, there are several websites (e.g. sourceforge.net, github.com) offering exactly this. Github.com is a web-based hosting service, including a control system for software versions:“Git is an extremely fast, efficient, distributed version control system ideal for the collaborative development of software. GitHub is the best way to collaborate with others. Fork, send pull requests and manage all your public and private git repositories.11 This way of working enables the contributors to be located wherever they want. Everyone has the same access to the source of the software, at the same time.
Open source projects tend to be in constant movement. People gradually fade when there is no activity. This is closely connected to the contribution of files to a project. If there is no movement it becomes boring and people start doing something else. There are many examples of open source projects that just faded away. But there is also the phenomenon that open source projects “reactivate” themselves. It is fascinating to see how the social space of a collaborative software development project ebbs and flows over time.12 All movement goes around the so-called strange attractor, which is the common idea or urge to create something that is not yet available, passion or motivation.
Characteristics of Dynamic Systems and Self-Organization
Many books have been written about dynamic / complex systems and self-organization, and this is probably a topic in and of itself. At this point, I only want to point out a few key elements of these theories and connect them in the following paragraph with open source networks and communities.
Dynamic systems is a recent theoretical approach to the study of development. In its contemporary formulation, the theory grows directly from advances in under- standing complex and nonlinear systems in physics and mathematics, but it also follows a long and rich tradition of systems thinking in biology and psychology. The term dynamic systems, in its most generic form, means systems of elements that change over time. The more technical use, dynamical systems, refers to a class of mathematical equations that describe time-based systems with particular properties.13
One definition of self-organization: “Self-organization is the spontaneous often seemingly purposeful formation of spatial, temporal, spatiotemporal structures or functions in systems composed of few or many components.”14 Self-organization is visible in many cases in nature. Self-organizing systems are adaptive and robust. They can reconfigure themselves to changing demands and thus keep on functioning in spite of perturbations.14
These definitions of dynamic systems and self-organization serve to describe the concept of open source networks.
Open Source Networks, Dynamic Systems and Self-Organization
By looking at the characteristics of open source projects, it becomes quite obvious that there is a strong connection to dynamic systems. This starts with the strange attractor, who is outside and inside the system at the same time, never stopping and never traveling the same path twice, but inspiring people to use and develop a product. The connection is also visible in the positive and negative feedback loops and the constant movement of the system. It is only when open source projects find the right balance between expansion and inclusion of their contributors that they are able to move on. If there is too much creativity and the product expands, it runs the risk of becoming vague and will lose its attraction. The same is valid for the opposite. If the project loses its creative inputs and becomes too strict, it becomes unattractive as well. But also, if the project is losing its input and constant renewal, it becomes unattractive and dissolves just as every organic, living system is wont to do. There are many examples where open source projects just stopped, and people went somewhere else to develop something. Therefore, the dynamic equilibrium and its constant movement is an important condition for an open source project.
Also, self-organization is quite visible and obvious in open source projects. There is no hierarchy; no rules; no frame. Nevertheless, the system organizes itself and gives itself a structure. This structure stays open and flexible and is automatically in development. This makes it stable and robust, just like dynamic self-organized systems.
It seems quite impressive how the development of communication technology fosters ways of collaboration, collectivism and sharing. Open Source is a wonderful example for self-organized collaboration and non-competitive sharing.
Bio: Ino Fleischmann is mechanical engineer with background in hydro power. He is currently pursuing a masters degree in Peace, Development, Security and International Conflict Transformation at the University of Innsbruck, Austria. He created an organization (globalanchor.org), which focuses on open source hydro power solutions for rural electrification. He can be contacted at firstname.lastname@example.org