We'll see | Matt Zimmerman

a potpourri of mirth and madness

The free software ecosystem and its denizens

Free software is a remarkable phenomenon.  It is a highly evolved form of collaboration: compared to other creative endeavors, free software developers all over the world are able to work together on a project with surprisingly little friction.  It is a grassroots political movement which has grown from small online communities to span geographical and national boundaries.  It is a multicultural social group with unique and diverse characteristics.  It has spawned a variety of self-governing organizations and successful corporations.

It is also an interesting example of a gift economy.  In general, participants in free software donate their work to the greater good, with no expectation of an exchange of value.  Some contributions are rewarded by social or professional recognition, where the author achieves standing among their peers or receives gratitude from recipients of their work.  Others indirectly evoke rewards in kind, such as where the creator of a program is rewarded by contributions from others which improve it further.  Some are works for hire, where a corporation commissions a contribution through its employees, in pursuit of its own aims.  There are other types of exchanges where I do not personally understand what motivates the contributor.

There are many recognized roles in free software, but they can be broadly classified into three types:

Developers are the heart of this economy.  They are continuously creating and improving free software technology, and publishing their source code for other developers to use and learn from.  Some developers write one program and then vanish from the community, while others contribute to many different projects over the course of decades.  Highly effective developers are celebrities in the free software community.

Users, also known as “people”, are the reason why software is written.  Their needs and wants determine which software is considered valuable.  Many of them also contribute directly to free software in one way or another, by promoting awareness, providing testing and feedback, supporting other users, writing documentation, or building communication links.  Historically, most users of free software were also its developers, but today, this is no longer true, and millions of people use free software who are not developers.

Packagers connect these two groups.  They gather up the source code produced by developers, wrap it in standardized packaging, and bundle it into collections (distributions) designed to meet the needs of users.  Users experience free software almost exclusively through a distribution.  As the free software stack has grown in size and complexity, so have distributions, and the maintenance of a modern distribution is a large-scale development project in itself: selecting appropriate software and versions, getting the lot working smoothly together, and releasing it in the form of a product which is accessible to users.  Packagers create only a small fraction of the software included in their distribution, but they define several key aspects of “what it is like” to use it.  Users most strongly associate their experience of free software with a distribution.

If free software were film, developers would be some combination of writer and crew, creating and expressing characters and a story.  Users would be viewers (including critics and fans), who receive and interpret the work.  Packagers would be the film crew, realizing the production on film so that it can be seen.

If free software were food, developers would be chefs, developing recipes and cooking.  Users would eat and critique the dishes.  Packagers would be restaurateurs, serving customers and creating an environment in which they can experience the food.

Neither of these analogies are very complete.  In particular, these analogies fail to capture the strange loops of free software.  Every developer is also a user, reliant upon of thousands of other programs which they receive in packaged form order to do their development work.  Every team of packagers develops some software in order to make their distribution work, and they use the distribution itself in order to do so.

Distributions, and the integration work that they do, are a critical part of this ecosystem.  Many of us would not be using free software today if not for the efforts of projects like Debian, whose mission is to produce a complete system out of free software created by others.  In my case, Debian provided both the means and the motivation for my contributions to free software, and later made Ubuntu possible.

Strong, productive relationships between these groups are essential to continuing the growth and development of free software.  Whichever groups you’re part of, get to know your counterparts in other groups.  Talk to the people who are packaging your software, writing the software you package, using your software or packages.  Learn about the problems they face and how you can help each other.  Don’t assume that this communication is someone else’s job: reach out and make it happen.

Advertisements

Written by Matt Zimmerman

October 7, 2008 at 12:46

8 Responses

Subscribe to comments with RSS.

  1. Hmm, are you including artists and designers within developers? :)

    thorwil

    October 7, 2008 at 19:03

  2. I think there is a relative scarcity of artists and designers in free software today. There is a lot of need for these talents, but it’s not entirely clear to me where they will fit in yet.

    Designers can do a lot of good within the distribution realm, because it’s more possible to change the overall experience there. Of course, application developers also need designers to help make their applications more usable.

    mdz

    October 8, 2008 at 09:08

  3. On the whole gift economy thing, is that actually true?

    I know the free software model is self-described as that, and that this model certainly holds true for smaller projects, but isn’t a large portion of the work done on the larger projects done by people who essentially get paid to do so?

    Do you have any stats for this gift economy? For example, what percentage of work on the kernel, X etc is done by people who are directly or indirectly paid to do so?

    SCdF

    October 8, 2008 at 20:00

  4. I’m not talking about the relationship between developers and their employers (if any), but between them and other participants in the ecosystem.

    *Someone* might pay a particular developer to work on free software, but *I* (as a user of that software) do not.

    As far as statistics go, the Linux Foundation published a report on the kernel. It estimates that individual contributors account for a larger total contribution than any one corporation, but less than all of the corporates together.

    mdz

    October 8, 2008 at 20:20

  5. […] The free software ecosystem and its denizens […]

  6. Some of us free software activists support the development of free software for political reasons and not just for altruism.

    A major problem is the rest of the world (people that are not free software activists) is seduced into using proprietary software. We support the development of free software in order to reduce the attractiveness of proprietary software. Another problem is that users have no idea about our plight, our endeavor to escape from proprietary. We write useful and convenient free software and attach the message of freedom to it so that all the interested people will know.

    bob

    October 12, 2008 at 12:42

  7. Some of us free software activists support the development of free software for political reasons and not just for altruism.

    A major problem is the rest of the world (people that are not free software activists) is seduced into using proprietary software. We support the development of free software in order to reduce the attractiveness of proprietary software. Another problem is that users have no idea about our plight, our endeavor to escape from proprietary. We write useful and convenient free software and attach the message of freedom to it so that all the interested people will know.

    bob

    October 12, 2008 at 12:44

  8. While it’s not the primary topic of the article, Rick Spencer has provided what I think is a useful analogy for the role of packagers in the free software ecosystem at http://theravingrick.blogspot.com/2009/07/dat-sbd-cdead.html

    “I suppose these folks were similar to packagers, in that they took the raw material, and made it available in a format that was usable by folks who were not hard core audio files.”

    mdz

    July 20, 2009 at 11:45


Comments are closed.

%d bloggers like this: