Vorwort
Warum ich dieses Buch schreibe?
Wenn ich auf einer Party davon erzähle, dass ich freie Software
schreibe, wird mir heutzutage nicht mehr mit leerem Blick begegnet;
vielmehr ist die Reaktion "Ach ja, Open Source – wie Linux?".
Und ich nicke eifrig zustimmend: "Ja, genau! Das mache ich.".
Es ist angenehm, nicht mehr so ganz am Rand zu stehen. In der
Vergangenheit war die nächste Frage leicht vorhersehbar:
"Wie verdient man denn dabei Geld?". Als Antwort fasste ich die
wirtschaftlichen Hintergründe von Open Source kurz zusammen: Es gibt
Organisationen, die daran interessiert sind, dass eine bestimmte
Software existiert, ohne sie verkaufen zu müssen, sie wollen schlicht
sicher gehen, dass sie verfügbar ist und gepflegt wird: als Werkzeug,
und nicht als Ware.
In letzer Zeit jedoch dreht sich die nächste Frage nicht immer
um Geld. Die Wirtschaftlichkeit von Open-Source-Software
Im Prinzip sind die Begriffe "Open Source" und "Frei" in diesem Kontext
Synonyme. Sie werden in
im Kapitel
ausführlicher behandelt. ist nicht
mehr so rätselhaft, und viele Nicht-Programmierer verstehen
mittlerweile – oder sind zumindest nicht überrascht darüber – ,
dass manche damit ihr Geld verdienen. Stattdessen ist die Frage, die
ich immer häufiger höre, "Ach ja, wie funktioniert das
eigentlich?".
Dafür hatte ich keine gute Antwort parat, und je mehr ich
versuchte eine zu finden, desto bewusster wurde mir, was für ein
komplexes Thema es wirklich ist. Ein Open-Source-Projekt zu leiten,
ist nicht unbedingt wie die Leitung einer Firma (stellen Sie sich
vor, ständig mit einer Gruppe von Freiwilligen über die Natur Ihres
Produkts diskutieren zu müssen, von denen Sie den meisten noch nicht
einmal begegnet sind!). Es ist auch nicht wie die Leitung einer
gewöhnlichen, gemeinnützigen Organisation oder eines Staates. Es gibt
Ähnlichkeiten zu all dem, aber ich bin langsam zu dem Schluss gekommen,
dass freie Software in dieser Hinsicht einzigartig ist. Es gibt vieles
womit man sie sinnvoll vergleichen kann, aber nichts womit man sie
gleichsetzen kann. Tatsächlich geht die Annahme etwas weit, dass man
ein Open-Source-Projekt überhaupt "führen" könne. Ein
Open-Source-Projekt kann begonnen und durch
interessierte Beteiligte beeinflusst werden, oft sogar relativ stark.
Aber niemand kann es sich aneignen, und solange es irgendwo Beteiligte
gibt, die es fortführen wollen, kann es niemals von einer Partei
stillgelegt werden. Jeder hat unendliche Macht; jeder hat keine
Macht. Daraus ergibt sich eine interessante Dynamik.
Das ist der Grund für dieses Buch. Freie Software-Projekte haben
eine ausgeprägte Kultur entwickelt, mit einer Gesinnung, in der die
Freiheit, Software zu entwickeln, die alles tut was man will, der
zentrale Grundsatz ist. Das Ergebnis dieser Freiheit ist jedoch nicht
eine Zerstreuung der einzelnen Beteiligten, so dass jeder seinen eigenen
Weg mit seinem Code geht, sondern eine enthusiastische Zusammenarbeit.
Tatsächlich ist die Kompetenz zur Zusammenarbeit eine der am meisten
geschätzten Fähigkeiten in Open-Source-Software. Diese Projekte zu
verwalten, ist wie das Angehen einer Art hypertrophisierten Kooperation,
in der sowohl die eigen Fähigkeit mit anderen zusammenzuarbeiten,
als auch neue Wege für diese Zusammenarbeit zu finden, konkrete
Vorteile für die Software bringen kann. Dieses Buch versucht Techniken
hierzu zu beschreiben. Es ist keineswegs vollständig, aber
immerhin ein Anfang.
Gute freie Software ist an und für sich schon ein würdiges Ziel,
und ich hoffe, dass Leser die hierin nach neuen Wegen suchen, mit
dem zufrieden sein werden, was sie hier finden. Darüber hinaus hoffe ich
etwas von der Freude an der Arbeit mit einem motivierten Team von
Open-Source-Entwicklern und der wundervoll direkten Art mit Benutzern zu
interagieren, zu der Open Source ermutigt, vermitteln zu können. An einem
erfolgreichen Open-Source-Projekt teilzunehmen, macht
Spaß, und letztlich ist es das, was das ganze
System am Laufen hält.
Wer sollte dieses Buch lesen?
Dieses Buch richtet sich an Softwareentwickler und Führungskräfte,
die mit dem Gedanken spielen, ein Open-Source-Projekt zu starten, oder
bereits eines begonnen haben, und sich nun fragen wie es weitergeht.
Es sollte auch für alle hilfreich sein, die sich zum ersten Mal an einem
Open-Source-Projekt beteiligen wollen.
Der Leser braucht kein Programmierer zu sein, sollte jedoch
grundsätzliche Konzepte der Softwareentwicklung wie Quellcode,
Compiler und Patches kennen.
Erfahrung mit Open-Source-Software, ob nun als Anwender oder
als Entwickler, ist nicht nötig. Wer sich bereits an Open-Source-Projekten
beteiligt hat, wird vielleicht manchen Abschnitt
als überflüssig empfinden, und ggf. überspringen wollen. Aufgrund der
potenziell breit gefächerten Erfahrung des Publikums habe ich versucht,
Abschnitte klar zu kennzeichnen und darauf hinzuweisen, wann bereits
mit der Materie vertraute Leser beruhigt weiterblättern können.
Quellen
Ein Großteil des Materials für dieses Buch stammt aus fünf
Jahren Arbeit am Subversion-Projekt
(). Subversion ist ein
Open-Source-System zur Versionsverwaltungengl. Version
Control, das von Grund auf neu geschrieben wurde,
und als Ablösung für CVS konzipiert ist, dem Quasi-Standard für
Versionsverwaltung in der Open-Source-Gemeinschaft. Das Projekt
wurde von meinem Arbeitgeber, CollabNet
(), im
Frühjahr 2000 begonnen, und zum Glück verstand CollabNet, es gleich von
Beginn an als echtes gemeinschaftliches, verteiltes Unterfangen zu
betreiben. Von Anfang an bekamen wir großen Zulauf an Freiwilligen.
Heute sind um die 50 Entwickler am Projekt beteiligt, von
denen nur wenige bei CollabNet angestellt sind.
Subversion ist in vielerlei Hinsicht ein klassisches Beispiel
für ein Open-Source-Projekt, und ich griff darauf mehr zurück, als
ich ursprünglich erwartet hatte. Zum Teil einfach aus Bequemlichkeit:
Wenn ich nach einem Beispiel für ein bestimmtes Phänomen suchte, konnte
ich mich meist spontan an einem Fall aus Subversion erinnern. Obwohl ich
an anderen Open-Source-Projekten in unterschiedlichem Maß beteiligt bin,
und mit Freunden und Bekannten rede, die ebenfalls an vielen weiteren
beteiligt sind, wurde mir beim Schreiben schnell klar, dass ich meine Behauptungen
durch Fakten stützen sollte. Allein auf der Grundlage dessen, was ich
aus den öffentlichen Archiven ihrer Mailinglisten entnehmen konnte,
mochte ich keine Äußerungen
über Ereignisse in anderen Projekten machen. Würde jemand dasselbe
mit Subversion versuchen, da bin ich sicher, läge er nur in der
Hälfte der Fälle richtig. Wenn ich also Inspiration oder
Beispiele aus Projekten nahm, mit denen ich keine direkte Erfahrung
hatte, versuchte ich zuerst, mit einem Beteiligten aus dem Projekt zu
reden, mit jemandem der wusste, was sich tatsächlich abgespielt hatte.
Ich arbeite seit 5 Jahren an Subversion, habe aber schon seit 12
Jahren mit freier Software zu tun. Unter anderem haben folgende
Projekte dieses Buch beeinflusst:
Das GNU Emacs Text-Editor-Projekt der GNU Software
Foundation, bei der ich ein paar kleine Pakete pflege.
Concurrent Versions System (CVS), an dem ich intensiv
mit Jim Blandy von 1994 bis 1995 arbeitete, seitdem aber nur
sporadisch beteiligt bin.
Die Open-Source-Projekte unter dem gemeinschaftlichen
Namen Apache Software Foundation, insbesondere die Apache
Portable Runtime (APR) und der Apache HTTP Server.
OpenOffice.org, die Berkeley-Datenbank von Sleepycat,
und die MySQL-Datenbank, an denen ich zwar nicht persönlich
beteiligt war, die ich aber beobachtet und zu denen ich
Kontakt gepflegt habe.
GNU Debugger (GDB) (ebenso).
Das Debian-Projekt (ebenso).
Die Liste ist natürlich unvollständig. Wie die meisten
Open-Source-Programmierer halte ich beiläufig Kontakt zu vielen
verschiedenen Projekten, nur um ein allgemeines Gefühl für
ihren Zustand zu behalten. Ich werde sie hier nicht alle beim Namen
nennen, aber sie werden im Text an entsprechender Stelle erwähnt.
Danksagung
Es hat vier mal länger gedauert dieses Buch zu schreiben, als
ich ursprünglich geplant hatte, und die meiste Zeit davon fühlte ich mich,
als würde beständig ein Konzertflügel über meinem Kopf schweben.
Erst die Hilfe vieler Menschen hat es mir ermöglicht, dieses Buch
fertigzustellen, ohne dabei den Verstand zu verlieren.
Mein Redakteur, Andy Oram bei O'Reilly, war der Traum eines jeden
Schriftstellers. Er kennt nicht nur das Thema (viele Vorschläge kamen
von ihm), sondern hat auch die seltene Gabe zu verstehen, was man
meint und kann einem helfen, es in die richtigen Worte zu fassen. Es war
eine Ehre, mit ihm zu arbeiten. Danke auch an Chuck Toprek,
der den Vorschlag zu diesem Buch direkt an Andy geleitet
hatte.
Brian Fitzpatrik hat das ganze Material durchgesehen, während
ich es schrieb, was nicht nur dazu führte, dass das Buch besser wurde,
sondern mich auch dann am Schreiben hielt, wenn ich lieber an jedem anderen
Ort auf der Welt gewesen wäre, als vor dem Bildschirm. Auch Ben Collins-Sussman
und Mike Pilato prüften meinen Fortschritt und waren stets erfreut,
mit mir – manchmal sehr ausführlich – zu
diskutieren, egal welches Thema ich in der Woche zu behandeln versuchte.
Sie bemerkten auch, wenn ich erlahmte und munterten
mich durch kleine Nörgeleien auf. Danke Jungs!
Biella Coleman schrieb zur selben Zeit an ihrer Doktorarbeit,
wie ich an diesem Buch. Sie weiß was es heißt, sich jeden Tag
hinzusetzen und zu schreiben. Sie war ein inspirierendes Beispiel und
bot mir ein mitfühlendes Ohr. Sie hat auch einen faszinierenden
Anthropologen-Blickwinkel
auf die Bewegung der freien Software und lieferte Ideen
und Referenzen, die ich im Buch verwenden konnte. Alex Golub – auch
ein Anthropologe mit einem Fuß in die Welt der freien Software, der
ebenfalls zu der Zeit an seiner Doktorarbeit schrieb – bot am Anfang
eine außerordentliche Unterstützung, was eine große Hilfe war.
Micah Anderson schien irgendwie nie besonders bedrückt
durch seine eigene Schreibarbeit, was auf eine krankhafte, Neid erzeugende
Art inspirierend war. Er war aber immer mit Freundschaft,
Gesprächsbereitschaft und (mindestens einmal) mit technischer
Unterstützung zur Stelle. Danke Micah!
Jon Trowbridge und Sander Striker gaben sowohl Aufmunterung als
auch konkrete Hilfe – ihre breite Erfahrung hinsichtlich freier
Software lieferte Material, an das ich sonst nie
herangekommen wäre.
Danke an Greg Stein, nicht nur für seine Freundschaft und
zeitige Ermunterung, sondern dafür, dass er dem Subversion-Projekt
gezeigt hat, wie wichtig der regelmäßige Code-Review für den Aufbau
einer Entwickler-Gemeinschaft ist. Danke auch an Brian Behlendorf,
der taktvoll in unsere Köpfen hämmerte, wie wichtig es ist, Diskussionen
öffentlich zu führen; Ich hoffe, dass dieses Prinzip sich durchweg im
Buch wiederspiegelt.
Danke an Benjamin "Mako" Hill und Seth Schoen für verschiedene
Gespräche über freie Software und ihre Politik; an Zack Urlocker und
Louis Suarez-Potts dafür, dass sie sich Zeit für Gespräche aus ihren
Terminkalendern nahmen; an Shane auf der Slashcode-Liste für die
Erlaubnis, seinen Beitrag zitieren zu dürfen; und an Hagen So für seine
enorm hilfreichen Vergleiche verschiedener Anbieter von
Hosting-Paketen.
Danke an Alla Dekhtyar, Polina und Sonya für ihre unermüdliche
und geduldige Ermutigung. Ich bin sehr froh, unsere Abende nicht mehr
vorzeitig beenden zu müssen (bzw. dies ohne Erfolg zu versuchen), um
"das Buch" weiter zu schreiben.
Danke an Jack Tepenning für seine Freundschaft, Unterhaltung,
und seine sture Weigerung, eine einfache und falsche Analyse jemals einer
schwierigeren aber richtigen vorzuziehen. Ich hoffe, dass ein Teil
seiner langjährigen Erfahrung sowohl in der Softwareentwicklung als
auch in der Softwareindustrie auf dieses Buch abgefärbt hat.
CollabNet war besonders großzügig darin, mir eine flexible
Zeitplanung zu erlauben, und beschwerte sich nicht, als ich viel länger
brauchte als ursprünglich geplant. Ich kenne die komplexen Wege nicht,
auf denen eine Betriebsleitung zu solchen Entscheidungen gelangt, aber ich
vermute es hatte etwas mit Sandyha Klute, und später mit Mahesh Murthy,
zu tun – meinen Dank ihnen beiden.
Das gesamte Subversion-Team ist in den letzten fünf Jahren eine
Inspiration gewesen, und vieles in diesem Buch habe ich durch die
Zusammenarbeit in ihm gelernt. Ich werde hier nicht jeden beim Namen
nennen, es sind einfach zu viele, aber ich beschwöre jeden Leser, dem
ein Mitwirkender von Subversion über den Weg läuft, diesem ein Getränk
seiner Wahl zu spendieren – ich jedenfalls habe das vor.
Oftmals wetterte ich gegenüber Rachel Scollen über den Zustand des
Buches; stets war sie bereit mir zuzuhören und irgendwie schaffte sie es
immer, die Probleme kleiner zu machen als vor dem Gespräch. Das war
eine ungeheurere Hilfe – Danke.
Danke (nochmals) an Noel Taylor, der sich sicherlich fragte,
warum ich noch ein Buch schreiben wollte, wenn man bedenkt wie oft ich
mich beim letzten Mal beschwert hatte, dessen Freundschaft und Führung bei
Golosá mir half, Musik und Kameradschaft in meinem Leben zu halten, selbst
zu den betriebsamsten Zeiten. Danke auch an Matthew Dean und Dorothea
Samtleben, Freunde und lange musikalische Leidensgenossen, die sehr
verständnisvoll waren, als meine Ausreden für Proben sich stapelten.
Megan Jennings blieb durchweg unterstützend und ehrlich interessiert an
dem Thema, obwohl es ihr fremd war – eine großartige Stärkung für
einen unsicheren Schriftsteller. Danke!
Ich hatte vier sachkundige und gewissenhafte Kritiker für dieses
Buch: Yoav Shapira, Andrew Stellman, Davanum Srinivas und Ben Hyde.
Das Buch wäre sicherlich besser, wenn ich all ihre ausgezeichneten
Vorschläge hätte aufnehmen können. Zeitmangel zwang mich leider, mich
aufs Herauspicken zu beschränken, aber die Verbesserungen waren dennoch
erheblich. Alle übrig gebliebenen Fehler sind voll und ganz mir
zuzuschreiben.
Meine Eltern, Frances und Henry waren wunderbare Unterstützer wie
immer, und da dieses Buch weniger technisch ist als das letzte,
hoffe ich, sie werden es etwas leserlicher finden.
Schließlich möchte ich Karen Underhill und Jim Blandy danken,
denen dieses Buch gewidmet ist.
Die Freundschaft und das Verständnis von Karen haben mir alles bedeutet,
nicht nur während ich an diesem Buch schrieb, sondern auch die letzten
sieben Jahre hindurch. Ohne ihre Hilfe hätte ich es sicher nicht geschafft.
Dasselbe gilt für Jim, einen echten Freund und Hacker von einem Hacker,
der mir beibrachte was freie Software ist, ähnlich wie ein
Vogel, der ein Flugzeug fliegen lehrt.
Haftungsausschluss
Die Gedanken und Meinungen in diesem Buch sind meine eigenen.
Sie stellen nicht unbedingt die Sicht von CollabNet dar oder die
des Subversion-Projekts dar.
Anmerkungen der Übersetzer
Manuel Barkhau, März 2008
Diese Buch wurde mit großzügiger Unterstützung der
mg.softech GmbH ins Deutsche
übersetzt, der ich an dieser Stelle danken möchte. Es ist ein gutes
Beispiel für die gemeinsamen Interessen von Open-Source-Gemeinschaft
und Wirtschaft, die sogar über die tatsächliche Produktion von
offenem Quellcode hinausgeht. Als abgeschlossen möchte ich diese
Übersetzung jedoch nicht betrachten, und ich lade Sie als Leser
herzlich ein, sich an der Fertigstellung zu beteiligen. Ich bin mir
sicher, Sie werden über manches in dem Buch stolpern und wir freuen
uns natürlich über jeden Beitrag.
Wolf Peuker, September 2012
Als ich mich vor einigen Jahren mit einer Projektmanagement-Frage
an Google wandte, ahnte ich nichts davon, in welcher Ausführlichkeit ich
sie beantwortet bekommen würde: ich fand mich mitten in einem Kapitel
dieses großartigen Buches und im festen Griff einer spannenden
Lektüre.
Producing Open Source Software ist nicht nur
selbst ein vorbildliches Beispiel eines Open-Source-Projekts, es stellt
auch den Autor und seine vielen Übersetzer vor die besondere
Herausforderung, mit einem atemberaubenden Fortschritt der
Open-Source-Bewegung mitzuhalten.
Die Alltagssprache der (deutschen) Softwareentwickler ist voll von
englischem Fachjargon. Ich versuche von diesem so viel wie möglich zu
übersetzen, um das Thema einem möglichst großen Kreis von Lesern
(oftmals Open-Source-Anwender) zugänglich zu machen.