Management und Entwicklung von quelloffener Software
Transcription
Management und Entwicklung von quelloffener Software
Masterarbeit im Studiengang Medienmanagement der Fakultät Medien an der HTWK Leipzig Hochschule für Technik, Wirtschaft und Kultur (FH) Thema: M a n a g e m e n t u n d E n t w ick lu n g v o n q u e l l o f f e n e r S o f t w a r e Eingereicht von: P h ilip p Z in s Zur Erlangung des akademischen Grades: Master of Engineering Erstprüfer/in: Prof. Dr.-Ing. Jörg Bleymehl Zweitprüfer/in: Dipl.-Math. Uwe Birkemeyer Eingereicht: Leipzig, 16.09.2013 Bibliografische Beschreibung: Zins, Philipp: Management und Entwicklung von quelloffener Software, 2013, Inhalt: 109 Seiten, Leipzig, Hochschule für Technik, Wirtschaft und Kultur, Fakultät Medien, Masterarbeit Lizenz: CC BY 3.0 DE (creativecommons.org/licenses/by/3.0/de/) Referat: Ziel dieser Arbeit ist es, die Entwicklung und das Management von quelloffener Software vorzustellen. Neben einer Einführung in die Geschichte und Kultur der open-source Community werden theoretische Modelle des Managements vorgestellt. In Fallstudien und in Experteninterviews werden diese Modelle in die Praxis übertragen und zeigen somit das Management von realen Projekten. Ein wichtiger Bestandteil dieser Arbeit ist die Widerlegung des Mythos, dass quelloffene Software unentgeltlich ist. So ist ein vollständiges Kapitel den Monetarisierungsmöglichkeiten für quelloffene Software gewidmet. Abschließend werden Vor- und Nachteile der Entwicklung quelloffener Software aus Unternehmenssicht gegenübergestellt. Inhaltsverzeichnis I INHALTSVERZEICHNIS I n h a l t s v e r z e i c h n i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I A b b i l d u n g s v e r z e i c h n i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V D e f i n i t i o n s v e r z e i c h n i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V I F a l l s t u d i e n v e r z e i c h n i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V I I T a b e l l e n v e r z e i c h n i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V I I I A b k ü r z u n g s v e r z e i c h n i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I X D a n k s a g u n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X I 1 E i n l e i t u n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 H i n w e i s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 H i n t e r g r ü n d e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1 Geschichtliche Entwicklung .......................................................................... 3 3.2 Freiheit oder Freibier? ................................................................................. 4 3.3 OSS im Web ............................................................................................... 6 4 K o n z e p t i o n u n d P l a n u n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1 Rollen ...................................................................................................... 7 4.1.1 Contributor ............................................................................................. 7 4.1.2 Committer .............................................................................................. 8 4.1.3 Reviewer ................................................................................................ 8 4.1.4 Project Lead ............................................................................................ 9 4.1.5 User ...................................................................................................... 9 4.2 Ziele ........................................................................................................ 9 4.3 Konkurrenzanalyse ................................................................................... 13 4.4 Zielgruppenanalyse .................................................................................. 21 4.5 Lizenz .................................................................................................... 25 4.5.1 General Public License ............................................................................. 27 4.5.2 Lesser General Public License .................................................................... 27 4.5.3 Affero General Public License .................................................................... 27 Inhaltsverzeichnis II 4.5.4 Massachusetts Institute of Technology License ............................................. 28 4.5.5 Berkeley Software Distribution License ....................................................... 29 4.5.6 Apache License ...................................................................................... 29 4.5.7 Creative Commons .................................................................................. 29 4.6 Zusammenfassung .................................................................................... 30 5 E n t w i c k l u n g u n d O r g a n i s a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 5.1 Hierarchie- und Organisationsmodelle .......................................................... 31 5.1.1 Organisationsmodelle nach Stürmer ........................................................... 32 5.1.1.1 „Single vendor open source projects“ ....................................................... 32 5.1.1.2 „Developer communities“ ....................................................................... 33 5.1.1.3 „User communities“ .............................................................................. 33 5.1.1.4 „Open source competence centers“ .......................................................... 34 5.1.2 Organisationsmodelle nach Prokop ............................................................ 35 5.1.2.1 „Wohlwollender Diktator“ ...................................................................... 35 5.1.2.2 „Gewählte Regierung“ ........................................................................... 36 5.1.2.3 Meritokratie ........................................................................................ 36 5.2 Funktionen und Rollen des Managements ...................................................... 37 5.2.1 Managementfunktionen nach Koontz/O’Donnell............................................ 37 5.2.2 Managementrollen nach Mintzberg ............................................................ 39 5.2.3 Managementkompetenzen nach Katz .......................................................... 42 5.3 Motivation .............................................................................................. 42 5.3.1 Erwartungs-Valenz-Theorie nach Vroom ...................................................... 44 5.3.2 Bedürfnishierarchie nach Maslow ............................................................... 45 5.3.3 Zwei-Faktoren-Theorie nach Herzberg ......................................................... 47 5.3.4 Job-Characteristics nach Hackman/ Oldham ................................................. 49 5.4 Entwicklungsmodelle ................................................................................ 51 5.4.1 Wasserfallmodell .................................................................................... 52 5.4.2 Spiralmodell nach Boehm ......................................................................... 52 5.4.3 Agile Softwareentwicklung ....................................................................... 53 5.4.4 Extreme Programming ............................................................................. 54 Inhaltsverzeichnis 5.4.5 5.5 III Scrum .................................................................................................. 56 Technische Infrastruktur ............................................................................ 58 5.5.1 Versionsverwaltung ................................................................................ 59 5.5.2 Hosting-Dienste für Softwareprojekte ......................................................... 60 5.5.3 Issue-Tracking-System ............................................................................ 63 5.5.4 Management-Software ............................................................................ 65 5.5.5 Notizen und Dokumente ........................................................................... 67 5.5.6 Content Management Systeme ................................................................... 68 5.5.7 Webseiten und Blogs ............................................................................... 68 5.5.8 Build Systeme ........................................................................................ 69 5.5.9 Continuous Integration ........................................................................... 70 5.6 Zusammenfassung .................................................................................... 70 6 K o m m u n i k a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 6.1 Webseiten und Blogs ................................................................................. 72 6.2 Mailinglisten und Foren ............................................................................. 74 6.3 Internet Relay Chats und Instant Messenger ................................................... 75 6.4 Roadmap ................................................................................................ 75 6.5 Zeitschriften und Onlinemagazine ................................................................ 76 6.6 Dokumentation ........................................................................................ 77 6.7 Soziale Netzwerke .................................................................................... 79 6.8 Veranstaltungen ...................................................................................... 81 6.9 Community Management ............................................................................ 84 6.10 Zusammenfassung .................................................................................... 90 7 M o n e t a r i s i e r u n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 7.1 Software ................................................................................................ 91 7.2 Services ................................................................................................. 92 7.3 Synergien ............................................................................................... 92 7.4 Hosting .................................................................................................. 94 7.5 Support .................................................................................................. 94 Inhaltsverzeichnis IV 7.6 Dual Licensing ......................................................................................... 94 7.7 Premium Content ..................................................................................... 95 7.8 Bounties ................................................................................................ 95 7.9 Donations ............................................................................................... 96 7.10 Funding ................................................................................................. 96 7.10.1 Crowdfunding ........................................................................................ 97 7.10.2 Venture Capital ...................................................................................... 98 7.10.3 Fördermittel .......................................................................................... 99 7.11 Sponsoring ............................................................................................ 100 7.12 Consulting ............................................................................................. 100 7.13 Werbung ............................................................................................... 101 7.14 Merchandising ........................................................................................ 101 7.15 Marketing .............................................................................................. 102 7.16 Zusammenfassung ................................................................................... 102 8 B e w e r t u n g f ü r U n t e r n e h m e n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 4 9 A u s b l i c k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 7 A n h a n g u n d N o t i z e n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 0 Gesprächsnotizen, Eric Teubert, Podlove ................................................................. 110 Gesprächsnotizen, Alexander Groß, MSpec, .NET User Group, Developer Open Space ......... 112 E-Mail-Auszug, Astro, node-xmpp ......................................................................... 114 Gesprächsnotizen, Marcus Krejpowicz und Tony Findeisen, rAppid.js ............................. 118 L i t e r a t u r v e r z e i c h n i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 0 S e l b s t s t ä n d i g k e i t s e r k l ä r u n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 1 Abbildungsverzeichnis V ABBILDUNGSVERZEICHNIS Abbildung 1 - Logo der FSF ..................................................................................... 4 Abbildung 2 - Logo der OSI ..................................................................................... 5 Abbildung 3 - Logo der Creative Commons ................................................................ 29 Abbildung 4 – Managementfunktionen nach Koontz/O’Donnel ...................................... 38 Abbildung 5 – Bedürfnishierarchie nach Maslow ........................................................ 46 Abbildung 6 – Zwei-Faktoren-Theorie nach Herzberg .................................................. 48 Abbildung 7 – Popularität der Hosting-Dienste bei Google Trends .................................. 63 Abbildung 8 – Jira: Erstellung eines Tickets .............................................................. 64 Abbildung 9 – Trello: Projektansicht von Brackets mit Panning Boards ............................ 66 Abbildung 10 – Microsoft Project: Projektansicht mit Gantt Charts ................................. 66 Abbildung 11 – Android: Unveränderter Startbildschirm mit Google-Diensten .................. 93 Definitionsverzeichnis VI DEFINITIONSVERZEICHNIS Definition 1 – Quelloffene Software (OSS) .................................................................. 6 Definition 2 – Management ................................................................................... 37 Definition 3 – Motivation ...................................................................................... 43 Definition 4 – Community ..................................................................................... 84 Fallstudienverzeichnis VII FALLSTUDIENVERZEICHNIS Fallstudie 1 – The Document Foundation .................................................................. 12 Fallstudie 2 – Derby ............................................................................................ 14 Fallstudie 3 – Meteor ........................................................................................... 27 Fallstudie 4 – node-xmpp ..................................................................................... 29 Fallstudie 5 – Grunt ............................................................................................. 39 Fallstudie 6 – Joost de Valk ................................................................................... 51 Fallstudie 7 – Brackets ......................................................................................... 58 Fallstudie 8 – rAppid.js ........................................................................................ 79 Fallstudie 9 – .NET User Group und Developer Open Space ............................................ 84 Fallstudie 10 – Podlove ........................................................................................ 90 Fallstudie 11 – Ghost ........................................................................................... 98 Fallstudie 12 – MSpec ......................................................................................... 101 Fallstudie 13 – LiveCode ...................................................................................... 105 Tabellenverzeichnis VIII TABELLENVERZEICHNIS Tabelle 1 – Steckbrief: Grunt ................................................................................. 16 Tabelle 2 - Steckbrief: Bootstrap ............................................................................ 17 Tabelle 3 - Steckbrief: Node.js ............................................................................... 18 Tabelle 4 - Steckbrief: AngularJS ............................................................................ 19 Tabelle 5 - Steckbrief: JavaScript Entwickler als Contributoren...................................... 22 Tabelle 6 - Steckbrief: JavaScript Entwickler als User .................................................. 23 Tabelle 7 – Managementrollen nach Mintzberg .......................................................... 41 Tabelle 8 – Übersicht von Hosting-Diensten für Softwareentwicklung ............................. 62 Tabelle 9 –Hosting-Diensten nach Kosten und Features ............................................... 62 Abkürzungsverzeichnis ABKÜRZUNGSVERZEICHNIS API Application Programming Interface ASF Apache Software Foundation CI Continuous Integration CLA Contributor License Agreement CMS Content Management System CVS Concurrent Versions System DRY Don’t repeat yourself FAQ Frequently Asked Questions FOSS Free open-source Software FSF Free Software Foundation GNU GNU’s not Unix 1 IM Instant Messaging IRC Internet Relay Chat KISS Keep it stupid simple KPI Key Performance Indicator OASIS Organization for the Advancement of Structured Information Standards ODF OpenDocument Format OSI Open Source Initiative OSS Open-source Software PMC Project Management Committee POSS Professional open-source Software SaaS Software as a Service SVN Subversion TDD Test Driven Development 1 GNU ist ein rekursives Akronym. Das G steht wieder für GNU und hat keine weitere Bedeutung. IX Abkürzungsverzeichnis TDF The Document Foundation USP Unique Selling Proposition VCS Version Control System X Danksagung DANKSAGUNG Ich möchte meiner Familie und meinen Freunden danken, die mich in allen Lebenslagen unterstützen und mir dieses Studium ermöglicht haben. Ohne sie wäre diese Arbeit nicht entstanden. Ein weiterer Dank gilt Mercateo, welche mir alle benötigten Mittel zur Realisierung dieser Arbeit zur Verfügung gestellt haben. Dabei möchte ich mich besonders bei meinem Betreuer Uwe Birkemeyer für seine ausführliche Hilfe und Unterstützung bedanken. Als letztes bedanke ich mich bei meinem Arbeitskollegen Thomas Gatz für sein umfassendes Feedback. XI 1 Einleitung 1 EINLEITUNG Die Entwicklung quelloffener Software (im Folgenden als opensource software mit OSS abgekürzt) bietet aus Managementsicht einige Besonderheiten gegenüber der Entwicklung proprietärer Software. Diese Arbeit soll dazu dienen, die Unterschiede zwischen der Entwicklung von OSS und proprietärer Software herauszubilden sowie besondere Chancen, aber auch Risiken aufzudecken. Auf diese Weise sollen Projektmanager, Entwickler und andere Stakeholder2 bei der Realisierung von OSS bestmöglich unterstützt werden. Da OSS nicht gleichbedeutend mit kostenloser Software ist und sehr erfolgreich monetarisiert werden kann, wird sie nicht zuletzt für Unternehmen von immer größerer Bedeutung. Ob Software quelloffen oder geschlossen veröffentlicht werden sollte, muss individuell entschieden werden. Die Pflege und Veröffentlichung von OSS ist mit viel Arbeit verbunden und nicht jedes Projekt profitiert an anderen Stellen von diesem Mehraufwand. Dennoch lohnt es sich diese Zeit zu investieren, sei es um Erfahrung zu sammeln, Kontakte zu knüpfen oder gar Arbeitskraft auszulagern. So fungiert diese Arbeit als nützliche Entscheidungshilfe für oder gegen OSS. 2 stakeholder (englisch „Teilhaber“) 1 2 Hinweise 2 2 HINWEISE Wie in technischen Themengebieten üblich werden innerhalb der OSS-Kultur viele englische Fachbegriffe verwendet. Da die Mitarbeit an OSS häufig sehr global stattfindet, sind Übersetzungen der Fachbegriffe eher selten. Um Missverständnissen in der Praxis vorzubeugen, werden im Rahmen dieser Arbeit englische Fachbegriffe gegenüber ihren deutschen Übersetzungen bevorzugt. Natürlich werden trotzdem alle Fachbegriffe bei ihrer Einführung ausführlich erklärt. Während der Entstehung dieser Arbeit wurden mehrere Experteninterviews mit Entwicklern von OSS durchgeführt. Die Inhalte dieser Gespräche finden sich in den Kapiteln 4 KONZEPTION UND PLANUNG bis 7 M ONETARISIERUNG verteilt an thematisch passenden Stellen wieder. Die vollständigen und zusammenhängenden Gesprächsnotizen befinden sich im Anhang. Die Gesprächspartner der Interviews sind: • • • • Eric Teubert, der Entwickler des Podcast Publishing Systems Podlove3 Astro4, der ursprüngliche Autor der XMPP Bibliothek node-xmpp für Node.js5 Alexander Groß, der aktuelle projektverantwortliche Entwickler des Context/Specification Frameworks Machine.Specifications (kurz MSpec) sowie Mitorganisator der .NET User Group Leipzig und des Developer Open Space 6,7,8 Marcus Krejpowicz und Tony Findeisen, die Entwickler des deklarativen JavaScript Web-Frameworks rAppid.js 9 Mit der Ausnahme des per E-Mail geführten Interviews mit Astro wurden alle Interviews als persönliches Gespräch geführt. 3 vgl. http://podlove.org/, Stand: 01.07.2013 Astro möchte innerhalb dieser Arbeit nur unter seinem Pseudonym genannt werden. Dies ist ein in der OSS-Kultur nicht unübliches Vorgehen und ich respektiere seinen Wunsch. 5 vgl. https://github.com/astro/node-xmpp, Stand: 22.08.2013 6 vgl. http://dotnet-leipzig.de/, Stand: 22.08.2013 7 vgl. http://devopenspace.de/, Stand: 22.08.2013 8 vgl. https://github.com/machine/machine.specifications, Stand: 22.08.2013 9 vgl. http://www.rappidjs.com/, Stand: 22.08.2013 4 3 Hintergründe 3 HINTERGRÜNDE Die Erwartungshaltung von OSS kann sehr unterschiedlich ausfallen und damit Projektentscheidungen beeinflussen. Aus diesem Grund ist es wichtig die Hintergründe von OSS zu kennen, um ein Verständnis für die unterschiedlichen Definitionen zu erhalten und angemessen mit ihnen umgehen zu können. 3.1 GESCHICHTLICHE ENTWICKLUNG Mit dem beginnenden Erfolg der Heimcomputer Ende der 1970er Jahre veränderte sich das Verständnis der Beziehung zwischen Hardund Software. Zuvor wurden Computer in kleineren Stückzahlen vertrieben und ihre Architektur unterschied sich stark, sodass Software häufig nur auf einer bestimmten Hardware lief und mit dieser zusammen ausgeliefert wurde. Hard- und Softwarehersteller waren häufig ein und dieselbe Firma. Geschäftsmodelle basierten hauptsächlich auf der Produktion und dem Vertrieb von Hardware, nicht aber von Software, da diese kaum ohne entsprechende Hardware erworben werden konnte.10,11 Computerhersteller wurden in den folgenden Jahren mit mehreren Problemen konfrontiert. Die Verbreitung von Heimcomputern verringerte die Anzahl an Hardwarearchitekturen und der zunehmende Wechsel von Assemblersprachen zu universelleren populären höheren Programmiersprachen wie C und C++ ermöglichten es Software zu schreiben, welche auf unterschiedlichen Hardwaresystemen ausgeführt werden konnte. Neben Computern wurden auch Datenträger für Privatanwender kostengünstiger, sodass Software leichter von Endanwender zu Endanwender weitergereicht werden konnte. Computerhersteller waren nicht mehr die einzige Bezugsquelle für Software. Durch neue Softwarelizenzen und der Ausgabe von Software in Form von Binäranstatt Quellcode versuchten sie die Verbreitung von Software und den Einsatz auf Fremdhardware zu unterbinden und so Einbrüchen in den Einkünften vorzubeugen.12,13 Bevor Computer den privaten Haushalt erreichten, wurden sie fast ausschließlich in der Wirtschaft, dem Militär und der Forschung eingesetzt. Besonders der Bereich der Forschung entwickelte die mitgelieferte quelloffene Software den eigenen Anforderungen ent- 10 u.a. durch die Vorstellung des Apple ][ und Commodore PER 2001 im Jahr 1977 vgl. Fogel, Producing Open Source Software, 2005, S. 5 12 z.B. mit Einführung der klassischen 3,5 inch HD Diskette 1987 13 vgl. Fogel, Producing Open Source Software, 2005, S. 6 11 3 3 Hintergründe 4 sprechend weiter, um diese verbesserte Software wiederum mit anderen Forschungseinrichtungen zu teilen. Durch das Aufkommen von Softwarelizenzen fürchteten sie weniger wirtschaftliche Probleme als viel mehr Behinderungen in der Forschung, der Bildung und der sozialen Entwicklung, da das Bearbeiten und das Verteilen von Fremdsoftware unterbunden und kriminalisiert wurde.14 Als Gegenbewegung gründete Richard Stallmann – ebenfalls aus der Forschung stammend – 1983 das GNU Project zur Entwicklung eines offenen unixähnlichen Betriebssystems sowie 1985 die Free Software Foundation (FSF) zur Unterstützung der Entwicklung freier Software im Allgemeinen. Das primäre Ziel von GNU ist die Schaffung eines Betriebssystems, welches ausschließlich aus freier Software besteht. Stallmann gilt damit als Begründer der Freie-SoftwareBewegung. 15,16 A b b i l d u n g 1 - L o g o d e r F S F 17 3.2 FREIHEIT ODER FREIBIER? Durch eine unglückliche Doppeldeutigkeit des Wortes frei entwickelten sich zwei unterschiedliche Auffassungen zum Begriff freie Software. Diese werden von der FSF mit der häufig zitierten Phrase „free speech, not [...] free beer“ (dt. „Meinungsfreiheit, nicht Freibier“) beschrieben. Die FSF sieht Software demnach als ein allgemeines Gut und Teil des sozialen Lebens, welches ähnlich schützenswert ist wie die Meinungsfreiheit und genauso frei, d.h. quelloffen, sein sollte. Frei im Sinne von Freiheit. Diese Auffassung ist häufig sehr restriktiv und begrenzt die Kombination freier und geschlossener Software.18 Auf der andere Seite steht die Auffassung frei im Sinne von gratis zu verstehen – wie Freibier. Diese Auffassung ist weniger restriktiv und macht keine weiteren Annahmen über die Kombination von freier und geschlossener Software. Freie Software zwingend als gratis Software zu verstehen ist jedoch eine falsche Annahme. Im Umkehrschluss ist geschlossene Software auch nicht zwangsläufig kosten14 vgl. http://www.gnu.org/events/rms-nyu-2001-transcript.txt, Stand: 13.08.2013 vgl. Fogel, Producing Open Source Software, 2005, S. 7 16 vgl. http://www.gnu.org/gnu/about-gnu, Stand: 02.09.2013 17 vgl. http://www.gnu.org/graphics/fsf-logo.html, Stand: 04.07.2013 18 vgl. http://www.gnu.org/philosophy/free-sw.en.html, Stand: 12.06.2013 15 3 Hintergründe pflichtig. Die FSF ermutigt Entwickler sogar dazu für freie Software „so viel Geld zu verlangen wie sie wollen bzw. können“. 19 1998 gründete sich die Open Source Initiative (OSI) u.a. zur Lösung dieser Problematik. Sie wollte die moralisierende Bedeutung von freier Software nach der FSF von der eigentlichen Veröffentlichungsform der Software lösen und eine politisch bereinigte und marketingtaugliche Alternative erschaffen. Es entstand der Begriff opensource bzw. quelloffen. 20 A b b i l d u n g 2 - L o g o d e r O S I 21 Die OSI definiert den Begriff open-source in zehn Punkten:22 1. Die Software soll frei und ohne Hindernisse beliebig weitergegeben werden können. 2. Der Quellcode soll der Software beiliegen und jedem zugänglich sein. 3. Die Modifizierung des Quellcodes ist erlaubt. 4. Modifizierungen zum originalen Quellcode müssen dokumentiert werden. 5. Es dürfen keine Personen oder Gruppen von der Nutzung der Software ausgeschlossen werden. 6. Die Lizenz darf keinen Einsatzzweck ausschließen. 7. Die Lizenz der Software muss ohne Hindernisse zugänglich sein. 8. Eine Lizenz darf sich nicht ausschließlich auf ein Produkt beziehen. 9. Die Lizenz darf die Nutzung einer anderen Software nicht ausschließen. 10. Die Lizenz muss technologieneutral sein und sich nicht auf eine bestimmte Technologie beziehen oder eine andere ausschließen. 19 vgl. http://www.gnu.org/philosophy/selling.html, Stand: 02.09.2013 vgl. http://opensource.org/history, Stand: 17.05.2013 21 vgl. http://opensource.org/node/442, Stand: 04.07.2013 22 vgl. http://opensource.org/osd, Stand: 13.08.2013 20 5 3 Hintergründe 6 Innerhalb dieser Arbeit wird der Begriff quelloffene Software bzw. OSS in einer vereinfachten Version nach OSI verwendet, um die Doppeldeutigkeit von freier Software zu vermeiden: Software, deren Quelltext für Menschen jederzeit verfügbar, lesbar und verständlich ist und die ungehindert beliebig kopiert, genutzt, verändert und weitergegeben werden kann, ist quelloffen. Definition 1 – Quelloffene Software (OSS) Sollte im Folgenden dennoch der Begriff freie Software verwendet werden, wird er seinem ursprünglichen Sinn der FSF nach verstanden. In keinem Fall wird davon ausgegangen, dass die jeweilige Software zwangsläufig gratis sein muss. Anzumerken sei zum Schluss die Existenz der Formulierung free, libre and open-source software, kurz FOSS bzw. FLOSS, welche die beiden Lager der FSF und der OSI zu vereinen versucht. 23 3.3 OSS IM WEB „The web [is] open-source by design.“24 Clientseitige Codekomponenten wie HTML, CSS oder JavaScript sind im Web technisch bedingt für jeden Benutzer quelloffen. Es gibt Werkzeuge um Code unleserlich zu gestalten, aber ebenso welche um dies rückgängig zu machen. Da keiner dieser Komponenten als Binärcode ausgeliefert wird, ist er aber für Menschen immer – mehr oder weniger – lesbar.25,26 Da zusätzlich zu diesen technischen Hintergründen die meisten Inhalte im Internet wie auch die Werkzeuge zur Erstellung dieser gratis sind (ein einfacher Texteditor genügt) und das Internet durch seine Anonymität ein Tummelplatz der freien Meinungsäußerung ist, kann man sagen, dass OSS im Web durchaus eine spezielle Position hat. Hier bündeln sich all die unterschiedlichen Ansichten zu OSS – sei es Freiheit, Freibier oder einfach nur quelloffen. Dies führt zu einer gewissen Erwartungshaltung von OSS-Projekten im Web, welche u.a. Lizenzentscheidungen stark beeinflussen können. Ein Beispiel für eine durch den Druck von Webentwicklern durchgeführte Lizenzänderung befindet sich im Kapitel 4.5 LIZENZ. 23 vgl. https://fsfe.org/freesoftware/basics/comparison, Stand: 12.06.2013 vgl. Leutwyler, http://www.youtube.com/watch?v=bStff9X0oYI&t=5m22s, Stand: 17.05.2013 25 vgl. http://lisperator.net/uglifyjs/, Stand: 17.05.2013 26 vgl. https://github.com/einars/js-beautify, Stand: 17.05.2013 24 4 Konzeption und Planung 4 KONZEPTION UND 7 PLANUNG Vor der Veröffentlichung einer OSS müssen einige Vorentscheidungen getroffen werden. Zu diesen zählt auch die Festlegung auf eine Lizenz. Da diese im Nachhinein nur abgeändert aber nicht wieder zurück genommen werden kann, sollte die Wahl der Lizenz wohlüberlegt sein. Das folgende Kapitel beschäftigt sich deswegen mit Entscheidungen und Überlegungen, die vor Projektbeginn durchgeführt werden sollten. 4.1 ROLLEN Personen, welche aktiv an OSS-Projekten mitarbeiten oder diese verwenden, können verschiedenen Rollen zugewiesen werden. Eine der wichtigsten Rollen, welche in der Form nicht bei geschlossener Softwareentwicklung vorkommt, sind die Contributoren, welche umgangssprachlich am ehesten als ehrenamtliche Mitarbeiter umschrieben werden könnten. Die im Folgenden vorgestellten Rollen wurden aus unterschiedlichen Quellen zusammengefasst und variieren leicht in ihrer Bedeutung und Bezeichnung. Sie lassen sich aber auf die meisten OSS-Projekte übertragen. 27,28,29,30,31 4.1.1 CONTRIBUTOR Ein Contributor32 ist eine Person, die etwas zu einem OSS-Projekt beiträgt. Eine häufige Annahme ist, dass dieser Beitrag zwangsweise in Form von Quellcode stattfinden muss, aber dies stimmt nicht. Alles was dem Projekt hilft kann als Beitrag angesehen werden. Dazu zählen: • • • • • • 27 die Verbesserung der Dokumentation das Einreichen von Logos oder Grafiken Supportleistungen das Melden von Bugs die Vergrößerung des Software-Ökosystems durch Plugins Marketing in Form von Blogartikeln vgl. http://source.android.com/source/roles.html, Stand: 26.06.2013 vgl. http://www.apache.org/foundation/how-it-works.html, Stand: 26.06.2013 29 vgl. http://www.eclipse.org/legal/committerguidelines.php, Stand: 26.06.2013 30 vgl. http://coding.smashingmagazine.com/2013/01/03/starting-open-source-project/, Stand: 26.06.2013 31 vgl. https://github.com/yui/yui3/wiki/Contributor-Model, Stand: 26.06.2013 32 contributor (englisch „Beitragende“) 28 4 Konzeption und Planung Man nennt diese Beiträge auch Contributions. Besteht eine Contribution aus Quellcode, müssen Contributoren häufig direkt oder indirekt einer Contributor License Agreement (CLA) zustimmen. Diese Übereinstimmung regelt das Nutzungsrecht des übermittelten Codes innerhalb des Projekts. Ein Beispiel sei die Node.js CLA, welche elektronisch oder schriftlich unterzeichnet werden kann und als Selbstständigkeitserklärung und zur Rechteübertragung dient.33 Prinzipiell kann jeder Contributor eines OSS-Projekts werden, allerdings haben sie keinen direkten Schreibzugriff auf die originalen Projektdateien. Damit keine kritischen Fehler in die OSS eingeschleust werden können, müssen die Veränderungen eines Contributors durch einen Committer geprüft und genehmigt werden. 4.1.2 COMMITTER Committer34 oder auch Verifier sind speziell autorisierte Contributoren. Sie erhalten einen direkten Schreibzugriff auf den Projektordner einer OSS. Während Contributoren Änderungen an der Software einreichen und auf die Freigabe durch einen Committer warten müssen, können Committer selbstständig und sofort Änderungen im Quellcode der Software durchführen. In der Regel sind Committer ehemalige Contributoren, welche sich über einen längeren Zeitraum aktiv und erfolgreich in einem Projekt bewiesen haben und vom Reviewer zum Committer autorisiert wurden. 4.1.3 REVIEWER Reviewer 35 oder auch Approver sind erfahrene Committer, welche Contributoren zu Committern ernennen oder ihnen diese Rang aberkennen können. Sie treffen strategisch wichtige Entscheidungen für das OSS-Projekt und entscheiden welcher Quellcode zur OSS hinzugefügt oder entfernt wird. Reviewer werden vom Project Lead ernannt. 33 vgl. http://nodejs.org/cla.html, Stand: 13.08.2013 committer (englisch „Übertragende“) 35 reviewer (englisch „Prüfer“, „Gutachter“) 34 8 4 Konzeption und Planung 4.1.4 PROJECT LEAD Project Leads 36 oder auch Tech Leads, Lead Developers, Project Owner, Maintainer oder Chairs sind die Originalautoren des jeweiligen Quellcodes, welche ihre Rolle aber auch weiterreichen können – vor allem wenn sie das Projekt verlassen. Sie besitzen die höchste Entscheidungsgewalt in technischen und strategischen Fragen, helfen bei der Qualitätssicherung, lösen Konflikte zwischen anderen Projektmitgliedern, kommunizieren den Projektfortschritt nach außen und lösen administrative Aufgaben innerhalb des Projekts. In kleinen Projekten übernimmt der Project Lead häufig die Aufgaben des Committers und Reviewers, sodass es praktisch lediglich Contributoren und Project Leads gibt. Die Entwickler einer OSS lassen sich somit in Gruppen mit und ohne Schreibrecht einteilen. 4.1.5 USER User 37 sind die Endanwender der OSS. Je nachdem was die OSS darstellt – ein Framework, eine Anwendung, etc. – sind User entweder andere Entwickler oder aber allgemeine Personen. Neben den genannten Rollen kann es beliebig viele andere geben mit eigenen projektspezifischen Namen und Aufgaben. Dies hängt von der Projektgröße, der Hierarchie und der Organisation ab. In manchen Fällen können auch Firmen eine der oben genannten Rollen annehmen. Sie können als Sponsoren fungieren und die nötige Infrastruktur, technische Unterstützung oder Rechtsbeistand leisten (s. 7.11 SPONSORING). Dies macht sie zu einer Art Contributor. Sie können aber auch Initiatoren einer OSS sein und die Rolle der Project Leads besetzen, um strategische Entscheidungen zu treffen (s. 5.1.1.1 „SINGLE VENDOR OPEN SOURCE PROJECTS“). Dies ist bspw. bei Googles Android der Fall. 4.2 ZIELE Wie beim klassischen Management ist es wichtig sich Zielstellungen für die Entwicklung von OSS zu formulieren. Diese Ziele können jedoch weitaus persönlicher und ihr Ausgang offener sein als bei geschlossener kommerzieller Software. Während bei geschlossener kommerzieller Software die Rentabilität und Gewinnoptimierung wichtige Zielstellungen sind, fallen diese bei OSS häufig – aber nicht zwangsläufig – weg, besonders wenn 36 37 project lead (englisch „Projektleiter“, „Projektverantwortlicher“) user (englisch „Nutzer“) 9 4 Konzeption und Planung OSS-Projekte lediglich als Hobby betrieben werden oder sich ausschließlich aus Spenden finanzieren (s. 7 M ONETARISIERUNG). Ein OSS-Projekt kann auch ausschließlich altruistisch motiviert sein. Aber welche Folgen ergeben sich daraus? Angenommen die primäre Zielstellung eines Entwicklers ist es „Problem X zu lösen“. Bisher existiert keine vorhandene Lösung dieses Problems. Beginnt der Entwickler nun mit seiner Arbeit, so kann es innerhalb dieses Zeitraums passieren, dass ein anderer Entwickler einen Lösungsvorschlag zu Problem X veröffentlicht. Im Konkurrenzkampf bei der Entwicklung proprietärer Software hieße das, dass man als Gegenmaßnahme eine bessere, andere oder günstigere Lösung veröffentlichen müsste. Dies entspricht den drei generischen Wettbewerbsstrategien nach Michael Porter:38 • • • Differenzierungsstrategie Nischenstrategie Kostenführerschaft (Preis-Mengen-Strategie) Die Entwicklung quelloffener Software bietet jedoch noch mehr Handlungsmöglichkeiten. Da das primäre Ziel „Problem X zu lösen“ erreicht wurde – wenn auch durch einen anderen Entwickler –, könnte das Projekt als erfolgreich gelten und so abgeschlossen werden. Zumindest wenn kein weiteres Ziel, wie das Erlangen eines Gewinns, formuliert wurde. Der Entwickler könnte aber auch die bestehende Lösung übernehmen und auf dessen Basis eine bessere Lösung entwickeln oder seine Energie in die Pflege der bestehenden Lösung stecken und sein eigenes Projekt schließen. Diese beiden Handlungswege sind ein integraler Bestandteil der OSS-Kultur. Der Prozess, ein bestehendes Projekt zu nehmen und mit eigenen Entwicklungen zu erweitern, wird als forken39 bezeichnet. Die Bezeichnung des neu entstandenen Projekts lautet analog Fork. Eine eigene flexible Zielstellung ist nicht nur wichtig um ein erfolgreiches Projekt zu starten. Es ist genauso wichtig im Kopf zu behalten, dass andere Entwickler ebenso vorgehen. Sich im Vorfeld Gedanken darüber zu machen, wie man sein eigenes Projekt in ein anderes migriert oder die Migration eines Fremdprojekts in das eigene zulässt und ob man dies überhaupt möchte, kann später viel Zeit sparen. Außerdem muss man im Kopf behalten, dass das Forken des eigenen Projektes nicht als Ideenklau oder Kritik („Ich mache dein Projekt besser!“) zu verstehen ist, sondern eher als Bestätigung. 38 39 vgl. Schuh, Produktkomplexität managen: Strategien - Methoden - Tools, 2005, S. 56 ff. to fork (englisch „abzweigen“, „abspalten“) 10 4 Konzeption und Planung Aus der erwähnten Eigendynamik von OSS-Projekten ist bereits herauszulesen, dass ein erfolgreiches Projekt viel Arbeit bedeutet. Das Erstellen von Migrationsplänen, die Kontaktaufnahme zu unbekannten Entwicklern und andere administrative Maßnahmen stellen zeitaufwendige Arbeitsschritte dar, die nicht unmittelbar ein besseres Produkt hervorbringen. Software kann relativ leicht quelloffen veröffentlicht werden, aber ein Entwickler muss sich fragen, was er damit erreichen möchte. Soll die Software von anderen genutzt werden? Sollen andere die Software verbessern? In beiden Fällen ist eine Dokumentation und Kommunikationsinfrastruktur vorteilhaft, um anderen Entwicklern die Nutzung zu erleichtern. Dieser Aufwand muss – wie auch bei geschlossener Software – mit dem Nutzen in einem guten Verhältnis stehen und von jedem selbst entschieden werden. Weitere Ziele von OSS können sein:40 • • • • • • • • 40 „Kontrolle und Flexibilität“: Bewahrung von Unabhängigkeit durch offene Datenformate „Von der Avantgarde zum Mainstream“: Sichern von Nischenmärkten, welche Wachstumsmärkte werden können „Sozialpsychologische Aspekte“: Aufbau der eigenen Reputation, soziale Anerkennung und Selbstverwirklichung „Synergieeffekte“: Mehr Kreativität durch Kooperation und durch Experimente mit begrenzten Risiken „Stabilität und Sicherheit“: Dies sind keine allgemeingültigen Eigenschaften von OSS, aber durch ihre Zugänglichkeit können Sicherheitslücken tendenziell einfacher aufgedeckt werden. „Abbruch und Neustart“: OSS sichert die mögliche Weiterentwicklung über den Tod des Autors hinaus. Lernen und Weiterbildung Erwirtschaftung von Geld (s. 7 M ONETARISIERUNG) vgl. Prokop, Open Source Projektmanagement, 2010, S. 19 ff. 11 4 Konzeption und Planung FALLSTUDIE Die Stiftung The Document Foundation (TDF) betreut mit dem Ziel der „Kontrolle und Flexibilität“ die quelloffene Office-Suite LibreOffice sowie in Zusammenarbeit mit der Organization for the Advancement of Structured Information Standards (OASIS) das quelloffene Dateiformat OpenDocument (ODF). 41,42 Ihren Ursprung fand sie als Sun Microsystems, welche zuvor über mehrere Jahre hinweg die quelloffene Office-Suite OpenOffice.org betreuten, von Oracle übernommen wurde. Oracle ließ daraufhin alle Contributoren darüber im Unklaren, wie die Betreuung der OSS in Zukunft aussehen würde. Durch diesen Unmut entstand LibreOffice als Fork von OpenOffice.org. Auf diesem Weg sollte vor allem ein Vendor-Lock-In-Effekt vermieden werden, also eine bindende und hinderliche Abhängigkeit zu einem Unternehmen. Keine Firma, sondern die Community sollte die volle Kontrolle über die Software besitzen. Als Stiftung ist sie vor weiteren Übernahmen durch fremde Unternehmen geschützt und kann so – im Gegensatz zu einer proprietären Software – die Weiterentwicklung sehr viel zukunftssicherer gestalten. Dies wirkt sich wiederum förderlich auf ODF aus, welches das primäre Dateiformat von LibreOffice ist. 43 ODF findet besonders in öffentlichen Einrichtungen immer mehr Verbreitung. Sein Einsatz ist stabil, sicher, plattformunabhängig, kostengünstig und bietet seinem Nutzer somit mehr Freiheiten bei der Auswahl der benötigten Software als bei geschlossenen Formaten, da es sowohl von vielen kostenpflichtigen als auch unentgeltlichen Programmen einfacher interpretiert werden kann.44 Fallstudie 1 – The Document Foundation Diese teilweise ungenau formulierten Ziele können durch key performance indicators45 (KPIs) konkretisiert und parametrisiert werden. Diese dienen dazu den Fortschritt und die Erreichung eines Zieles zu messen. So könnte das Ziel „die eigene Reputation zu fördern“ daran geknüpft sein, dass das OSS-Projekt bei GitHub (s. 5.5.2 H OSTINGDIENSTE FÜR SOFTWAREPROJEKTE) mehrfach favorisiert wird oder das Ziel „Geld zu verdienen“ daran geknüpft sein, dass man pro Monat 50 € über Spenden verdient. Startet man nun bspw. eine Marketing- 41 vgl. http://www.documentfoundation.org/, Stand: 13.08.2013 vgl. http://www.heise.de/open/meldung/The-Document-Foundation-tritt-OASIS-bei-1698800.html, Stand: 13.08.2013 43 vgl. http://listarchives.documentfoundation.org/www/announce/msg00000.html, Stand: 13.08.2013 44 vgl. http://www.bmi.bund.de/cln_156/SharedDocs/Pressemitteilungen/DE/2008/12/odf.html, Stand: 13.08.2013 45 key performance indicator (englisch „Leistungskennzahl“) 42 12 4 Konzeption und Planung 13 kampagne, so kann man messen, ob man sich den KPIs nähert oder sich von ihnen entfernt. Dementsprechend können Aktionen bewertet und bei Misserfolg zukünftig vermieden werden. Man beachte, dass die zuvor genannten Beispiele lediglich der Illustration dienen. Als betriebswirtschaftliche Kennzahl treten konkret formulierte KPIs fast ausschließlich in gewinnorientierten OSSProjekten auf (s. 7 M ONETARISIERUNG) 4.3 KONKURRENZANALYSE Der Begriff Konkurrent ist in der OSS-Kultur weit schwieriger zu fassen als in der freien Wirtschaft. Prinzipiell kann jeder Konkurrent auch ein Kooperationspartner sein. In den seltensten Fällen sehen sich zwei verschiedene OSS-Projekte als echte Kontrahenten, welche einander zu übertrumpfen versuchen. In den meisten Fällen verfolgen sie gemeinsame Ziele, die sie zusammen besser erreichen können. Wenn zwei sich sehr ähnelnde OSS-Projekte jedoch nicht zu einem größeren zusammengefasst werden können, hat dies möglicherweise historische oder politische Gründe. Im zuvor genannten Fallbeispiel von The Document Foundation entstand LibreOffice als Fork von OpenOffice.org durch die Übernahme von Sun Microsystems durch Oracle. Selbst nach dieser Trennung wuchs der Unmut über Oracles Einfluss auf OpenOffice.org, sodass sich der Konzern gezwungen sah das Projekt an die ehrenamtliche Apache Software Foundaton (ASF) abzugeben, wodurch eine erneute Annäherung der beiden Projekte auf Codebasis wieder möglich wurde. Solche Entwicklungen sind bei proprietärer Software zwar nicht ausgeschlossen, treten mitunter aber durch das einfache Forken von Projekten bei OSS häufiger auf.46,47 Konkurrenz kann somit aus unterschiedlichen Perspektiven definiert werden. Die offensichtlichste Betrachtungsweise ist der Vergleich von thematisch ähnlichen Projekten, weil sie die gleiche Problemstellung lösen wollen. Dies könnte z.B. der Vergleich mehrerer Content Management Systeme (CMS, s. 5.5.6) wie WordPress, Drupal oder Typo3 sein. In diesem Fall wäre es wichtig herauszufinden, welche Unterschiede man zu den anderen Projekten aufweist. Stellt man fest, dass man zu einem bestimmten Projekt kaum Unterschiede besitzt, könnte man sich überlegen seine Arbeitszeit in das bestehende Projekt zu stecken, anstatt ein neues zu erstellen. Sowohl der Projektinitiator als auch andere Entwickler profitieren von einer deutlichen Abgrenzung zu einem vermeintlich ähnlichen 46 vgl. http://www.netzwelt.de/news/84723-interview-thomas-krumbein-libreoffice-arbeit-oracle.html, Stand: 12.06.2013 47 vgl. http://www.golem.de/1106/83918.html, Stand: 12.06.2013 4 Konzeption und Planung Konkurrenzprojekt. So können wichtige unique selling propositions48 (USPs) herausgebildet werden, die die Orientierung bei der Wahl einer geeigneten Software verbessern. FALLSTUDIE Das Aufstellen von USPs dient nicht nur der eigenen Identifikation, sondern auch Marketingzwecken. Als das ambitionierte Meteor, ein Framework für Echtzeitapplikationen, bei der Veröffentlichung vielfach in der Fachpresse erwähnt wurde, nutzte dass sich ähnelnde Projekt Derby die Gelegenheit um detailliert darzustellen, in welchen Punkten sie sich unterscheiden. Das große öffentliche Interesse an Meteor half Derby seine eigene Bekanntheit zu vergrößern. 49,50 Das besondere an diesem Artikel ist, dass sich die beiden Parteien nicht als Feinde gegenüberstehen, sondern schlicht als zwei Projekte, die das gleiche Ziel auf unterschiedlichen Wegen erreichen wollen. Der Blogartikel diente nicht der Bloßstellung des anderen Projekts, sondern der Vorstellung der unterschiedlichen Philosophien. So stehen beide Teams in Verbindung miteinander, um Erfahrungen auszutauschen und voneinander zu lernen. Fallstudie 2 – Derby Eine andere Perspektive um Konkurrenz zu definieren sind Projekte, welche eine ähnliche Zielgruppe bedienen, aber thematisch eine komplett andere Software sind. In diesem Fall besteht die Konkurrenz nicht darin möglichst viele Endanwender, sondern Contributoren zu gewinnen (s. 4.1 ROLLEN). So würde man bei erfolgreichen OSS-Projekten analysieren, welche Kommunikationskanäle sie benutzen, wie die Dokumentation aufgebaut ist, wie sie sich finanzieren, etc., um erfolgreiche Konzepte zu übernehmen. In beiden Fällen ist es wichtig zu verstehen, dass der Begriff Konkurrenz innerhalb der open-source Kultur nicht synonym zu Feind zu verwenden ist. Die Suche nach der Konkurrenz dient viel mehr als Suche nach Projekten und Partnern mit ähnlichen Zielen, welche zum Austausch von Erfahrungen genutzt werden können. Im Folgenden werden die vier erfolgreiche OSS-Projekte Grunt, Bootstrap, Node.js und AngularJS aus der Web und JavaScriptCommunity kurz analysiert. Diese Beispiele sollen illustrieren, nach 48 unique selling proposition (englisch „Alleinstellungsmerkmal“) vgl. http://meteor.com/, Stand: 11.06.2013 50 vgl. http://blog.derbyjs.com/2012/04/14/our-take-on-derby-vs-meteor/, Stand: 13.06.2013 49 14 4 Konzeption und Planung welchen Aspekten ein Projekt untersucht werden kann und welche Rückschlüsse man aus der Analyse schließen könnte: 15 4 Konzeption und Planung Grunt Typ • Task runner URL • http://gruntjs.com/ Lizenz • MIT License Team • 1 Lead Developer für Grunt (Ben Alman) • 1 Lead Developer für offizielle Plugins (Tyler Kellen) • offen für Contributoren Sponsoring • Bocoup Beschreibung • Automatisiert Arbeitsschritte • viele Plugins für Webentwickler für scaffolding, building, lokale Server, etc. Statistik • GitHub: 5872 Stars, 595 Forks (Stand: 14.06.2013) • Sonstiges: 910 Plugins Historie • 23.03.2012: v0.3 - public • 18.02.2013: v0.4 - major redesign Technologie • Node.js Kommunikationskanäle • GitHub (Repository, Issue-Tracker, Docs) • Website (Docs), Blog (News) • Twitter (News, verwandte Themen) • IRC Channel (Support, Diskussion) • StackOverflow #gruntjs (Support) USPs • große Auswahl an Plugins mit Fokus auf Webentwicklung (Backend und Frontend) • sehr leicht zu konfigurieren Sonstiges • unterstützt die Entwicklung einer unabhängigen Spezifikation zur Beschreibung von Tasks51 Tabelle 1 – Steckbrief: Grunt 51 vgl. https://github.com/node-task, Stand: 25.06.2013 16 4 Konzeption und Planung Bootstrap Typ • Front-end framework URL • http://twitter.github.io/bootstrap/ • http://blog.getbootstrap.com/ Lizenz • Apache License v2.0 Team • 2 Lead Developer (Mark Otto, Jacob Thornton) • offen für Contributoren Sponsoring • Twitter Beschreibung • CSS Framework für Responsive Design, Scaffolding, Typografie und Grid System • JavaScript basierte GUI Widgets Statistik • GitHub: 52053 Stars, 16774 Forks (Stand: 25.06.2013) • populärstes GitHub Projekt Historie • 19.08.2011: v1 - Desktop only • 31.01.2012: v2 - Mobile Support • 19.08.2013: v3 - Mobile first Technologie • Less, HTML, JavaScript Kommunikationskanäle • GitHub (Repository, Issue-Tracker) • Website (Docs), Blog (News) • Twitter (News, Support) USPs • extrem populär → gesicherte Entwicklung • Mobile first Sonstiges • Ursprung: Twitters eigene Bedürfnisse 52 • nicht nur Framework, sondern auch Style Guide • Credo: “Help awesome people do awesome stuff.” • Dokumentation mit Bootstrap selbst entwickelt Tabelle 2 - Steckbrief: Bootstrap 52 vgl. http://alistapart.com/article/building-twitter-bootstrap, Stand: 25.06.2013 17 4 Konzeption und Planung Node.js Typ • JavaScript Laufzeitumgebung URL • http://nodejs.org/ Lizenz • MIT License Team • 1 Lead Developer (ursprünglich Ryan Dahl, mittlerweile Isaac Z. Schlueter) • offen für Contributoren Sponsoring • Joyent Beschreibung • eventbasiertes, nicht-blockendes I/O Modell für datenintensive Netzwerkapplikationen Statistik • GitHub: 22926 Stars, 4111 Forks (Stand: 25.06.2013) • zweitpopulärstes GitHub Projekt Historie • 2009 erstmals vorgestellt 53 • kurz vor stabiler v1.0 54 Technologie • JavaScript, C++ Kommunikationskanäle • GitHub (Repository, Issue-Tracker, Diskussion) • Website (Docs), Blog (News) • 2 Mailinglisten (Diskussion, Support) • IRC Channel (Support) • Konferenz (News, Support, Diskussion) USPs • JavaScript auf dem Server • sehr leichtgewichtig und modular • sehr aktive Community Sonstiges • eigener Package Manager für Module: npm • Google V8 als JavaScript Engine55 Tabelle 3 - Steckbrief: Node.js 53 vgl. http://www.youtube.com/watch?v=ztspvPYybIY, Stand: 25.06.2013 vgl. http://blog.strongloop.com/the-road-to-node-js-v1-0/, Stand: 15.08.2013 55 vgl. https://code.google.com/p/v8/, Stand: 25.06.2013 54 18 4 Konzeption und Planung AngularJS Typ • Web App Framework URL • http://angularjs.org/ Lizenz • MIT License Team • kein konkreter Lead Developer (Miško Hevery letzter aktiver Originalautor mit Autorität) • offen für Contributoren Sponsoring • Google Beschreibung • Templating mit two-way data binding (Models aktualisieren View und umgekehrt) • Model-View-Controller-Architektur • ermöglicht Domain Specific Language (DSL) Statistik • GitHub: 11041 Stars, 2363 Forks (Stand: 25.06.2013) Historie • Beginn: 2009 (noch nicht als OSS) • 20.10.2010: v0.9 als OSS veröffentlicht • 13.06.2012: v1.0 Technologie • JavaScript Kommunikationskanäle • GitHub (Repository, Issue-Tracker, Docs) • Website (Docs), Blog (News) • Twitter, Google+ (News, verwandte Themen) • Mailingliste (Diskussion) • YouTube Channel (Support, Anleitungen) • IRC Channel (Support) USPs • Dependency Injection • Templates basieren auf HTML, nicht Strings • großer Fokus auf Tests: Integration in Karma Sonstiges • Credo: Das Web so zeigen, als wäre es für Applikationen entwickelt worden. Tabelle 4 - Steckbrief: AngularJS 19 4 Konzeption und Planung Diese vier Steckbriefe dienen nur als Beispiel, um eine mögliche Vorgehensweise für detailliertere Analysen zu demonstrieren. Sie reichen noch nicht aus, um statistisch valide Aussagen zu treffen. Hätte man allerdings hinreichend viele Projekte analysiert, könnte man erste Vermutungen anstellen: • • • • • • Stehen hinter den meisten erfolgreichen OSS-Projekten größere Firmen, welche die Entwicklung fördern? Wird bei OSS aus dem Web Bereich größtenteils die MIT License verwendet? Ist GitHub die bevorzugte Plattform für open-source Webprojekte? Ist Facebook für Entwickler ein irrelevanter Kommunikationskanal? Benötigen OSS-Projekte zwangsläufig eine eigene Webseite um erfolgreich zu sein? etc. Einige dieser Vermutungen lassen sich mit einer kurzen Recherche weiter untermauern: • • JavaScript ist mit 21% aller Projekte auf GitHub die dort am meisten verbreitete Sprache. Die JavaScript-Community ist hier demnach groß. 56 Nur eine Minderheit der Projekte auf GitHub wird unter einer echten open-source Lizenz veröffentlicht. Von diesen ist die MIT License jedoch die verbreitetste.57 Natürlich können OSS-Projekte noch auf weit mehr Charakteristiken hin untersucht werden als den oben genannten. So könnten zusätzlich der Aufbau, die Präsentation und der Umfang der Dokumentationen analysiert werden, um die eigene Dokumentation bestmöglich aufzuarbeiten. Durch die Analyse erfolgreicher OSS-Projekte kann man sehr viel über deren Management lernen. Sie lohnt sich nicht nur zur Vorbereitung auf ein eigenes OSS-Projekt, sondern kann auch während der Betreuung eines solchen durchgeführt werden z.B. wenn man feststellt, dass das eigene Community Management problematisch ist. In diesem Fall führt man speziell für diesen Punkt eine Analyse durch. Als letztes sei zu erwähnen, dass sich auch die Analyse eines gescheiterten OSS-Projekts lohnen kann, um die Gründe für dessen Misserfolg zu erfahren und so Problemen vorzubeugen. 56 57 vgl. https://github.com/languages, Stand: 25.06.2013 vgl. http://www.theregister.co.uk/2013/04/18/github_licensing_study/, Stand: 26.06.2013 20 4 Konzeption und Planung 4.4 ZIELGRUPPENANALYSE Bei Zielgruppenanalysen stehen alle Personen, die mit einem OSSProjekt agieren, im Fokus der Analyse – nicht jedoch das Projekt selbst. Eine Zielgruppenanalyse soll die Kommunikation zu dieser verbessern und ihre Bedürfnisse aufdecken. Bevor die Zielgruppen analysiert werden können, müssen sie definiert werden. In vielen Punkten sind die Zielgruppen die gleichen Personen wie die Rollen innerhalb eines OSS-Projektes (s. 4.1 ROLLEN): • • • • Contributoren, sowie Committer und Reviewer können zu einer Zielgruppe zusammengefasst werden. Zur Vereinheitlichung werden sie im Folgenden nur noch Contributoren genannt. Sie bezeichnen Personen, welche zu Beginn außerhalb des Projekts stehen, durch ihre Beiträge das Projekt verbessern und auf lange Sicht ins Projekt integriert werden. User sind diejenigen, die die OSS verwenden sollen. Da OSS in vielen Fällen ein Problem lösen soll, welches die Contributoren selbst haben, gehören sie in diesem Moment ebenfalls zu den Usern. Sie können unter dieser Bedingung beiden Zielgruppen zugeordnet werden. Project Leads sind diejenigen, die die Zielgruppenanalyse durchführen und daher keine eigene Zielgruppe. Die Presse kann ebenfalls als eine eigene Zielgruppe bezeichnet werden. Ihr würde man bspw. einen schnellen Zugriff auf Logos und Pressematerial des Projekts gewähren wollen. Für die meisten OSS-Projekte sollten dies die wichtigsten Zielgruppen sein. Je nach Projekt können diese Gruppen zusätzlich aus unterschiedlichen Interessengruppen zusammengesetzt sein: so können sich Contributoren bspw. in Programmierer und Grafiker unterteilen von denen jeder unterschiedliche Informationen benötigt. Die Bedürfnisse der jeweiligen (Unter-)Gruppe zu erkennen ist eine wichtige Voraussetzung um die Kommunikation mit ihr zu verbessern. Analog zur Konkurrenzanalyse kann eine beispielhafte Zielgruppenanalyse folgendermaßen ablaufen: Gegeben sei ein JavaScript basiertes Web-Framework. Dieses soll JavaScript Entwicklern bei der Erstellung von Webapplikationen helfen. JavaScript Entwickler zählen demnach sowohl zur gewünschten Gruppe der Contributoren wie auch der User. Welche Bedürfnisse müssen befriedigt werden, damit das Projekt erfolgreich ist? 21 4 Konzeption und Planung 22 JavaScript Entwickler als Contributoren Ziele • lernen, Reputation aufbauen • Projekt nach eigenen Willen lenken und verbessern Vorlieben • MIT License für JavaScript Projekte • lockerer Umgangston • Node.js für Command Line Tools • Grunt als Build Tool • JSHint als Quality Tool • GitHub als Hosting Platform Abneigungen • Browserinkompatibilitäten lösen → Hilfestellungen anbieten! Oder: Nur auf moderne Browser konzentrieren Probleme • viele Alternative Sprachen zu JavaScript: CoffeeScript, TypeScript, Dart, etc. 58 • kein etabliertes clientseitiges Package Management59 • Microframeworks ↔ große Frameworks 60 • sehr unterschiedliche Konventionen: objektorientiert/funktional/prozedural, imperativ/deklarativ, Code Style → strikte Projektkonvention erforderlich! Sonstiges • Konferenzen: Google IO , JSConf, JSConf.eu • vielfach durch Mitarbeiter/Entwicklungen von Google und Mozilla → News verfolgen! Google+ ist relevanter Kommunikationskanal • Prominenz: Paul Irish, Addy Osmani, Yehuda Katz, John Resig, Douglas Crockford, Brendan Eich, etc. → Für Marketing gewinnen? Tabelle 5 - Steckbrief: JavaScript Entwickler als Contributoren 58 vgl. http://smthngsmwhr.wordpress.com/2013/02/25/javascript-and-friends-coffeescript-dart-and-typescript/, Stand: 28.06.2013 59 vgl. http://wibblycode.wordpress.com/2013/01/01/the-state-of-javascript-package-management/, Stand: 28.06.2013 60 vgl. http://addyosmani.com/blog/prosconsmicroframeworks/, Stand: 28.06.2013 4 Konzeption und Planung JavaScript Entwickler als User Ziele • Möchte schnell wissen, warum dieses Framework besser als andere ist. → Vergleichbarkeit erhöhen durch Teilnahme an TodoMVC 61 • Möchte schnell lernen wie man dieses Framework verwendet. → übersichtliche und verständliche Dokumentation, Beispiele, Cookbook Vorlieben • Performance • Wartbarkeit • Verständlichkeit • Workflowoptimierung • guter Support, starke Community, schneller Kontakt → einfachen Zugang zu Twitter und Co. ermöglichen Abneigungen • Fehler, Bugs • inkonsistente API • schwierige Migration zu neuen Versionen • Browserinkompatibilitäten Probleme • nutzt lieber, was er gewohnt ist: jQuery → Können populäre Frameworks wiederverwendet bzw. integriert werden? • verwirrt von zu vielen ähnlichen Frameworks → genaue Abgrenzung zu anderen Frameworks verdeutlichen Sonstiges • kümmert sich nicht um interne Funktionsweise Tabelle 6 - Steckbrief: JavaScript Entwickler als User 61 vgl. http://todomvc.com/, Stand: 28.06.2013 23 4 Konzeption und Planung Vorausgesetzt die oben stehenden Mutmaßungen wurden durch genügend Daten validiert, so können nun strategische Entscheidungen für das eigentliche Projekt getroffen werden: JavaScript Entwickler als Contributoren: o Verwende Grunt als Build Tool, nicht Ant! o Wenn Command Line Tools erforderlich sind, dann am besten Node.js basierte verwenden. o Verwende GitHub als Hosting Plattform. o Verwende die MIT License als Lizenz. o Stelle verbindliche Code Styles und Konventionen durch Quality Tools wie JSHint sicher. • JavaScript Entwickler als User: o Vergleiche dein Framework mit anderen Frameworks und grenze es ab. o Stelle eine umfangreiche Dokumentation bereit: Beispiele, Erklärungen, Referenzen, etc. o Biete Support auf beliebten Kommunikationskanälen an. o Erfinde das Rad nicht neu! Wenn möglich, verwende populäre Frameworks. • Verschiedene Methoden helfen beim Zusammentragen der benötigten Daten, um solche Schlussfolgerungen zu treffen. Dies können Umfragen und direkte Interviews mit den entsprechenden Zielpersonen sein. Der Kontakt zur Zielgruppe kann leicht über einschlägige Foren, Communities oder einem direkten Anschreiben in einem sozialen Netzwerk aufgenommen werden. Die sogenannten Personae stellen ein Hilfsmittel dar, um die eigene Perspektive zu wechseln und so ein Problem aus Sicht der Zielgruppe zu betrachten. Zu diesem Zweck erstellt man möglichst detaillierte Steckbriefe zu erfundenen Personen, welche Teil einer Zielgruppe sind. Die Steckbriefe helfen dabei, sich besser in eine andere imaginäre Person hineinzuversetzen. So können die Bedürfnisse der Zielgruppe besser verstanden werden.62 Alternativ können einzelne Personen einer Zielgruppe auch fester Bestandteil des OSS-Projekts werden. Initiator von Podlove ist Tim Pritlove, einer der bekanntesten deutschen Podcaster. Er gehört zur Zielgruppe von Podlove selbst, sammelt und stellt eigene Anforderungen an das Projekt und gibt diese den Entwicklern weiter. Dadurch fungiert er als Visionär und Mentor innerhalb des Projekts. Außerdem dient er selbst als Marketingkanal in dem er anderen Podcastern vom Projekt erzählt und sein aufgebautes Netzwerk an Hörern für Crowdfunding nutzt (s. 7.10.1 CROWDFUNDING).63 62 63 vgl. Adlin, Pruitt, The Essential Persona Lifecycle, 2010, S. 1 vgl. http://metaebene.me/blog/2013/02/27/podlove-crowdfunding-gestartet/, Stand: 15.08.2013 24 4 Konzeption und Planung 4.5 LIZENZ Die Wahl der richtigen Lizenz stellt für viele Entwickler, die ihre Software quelloffen veröffentlichen wollen, eine große Hürde da. Sie sind teilweise sehr komplex, ihre Formulierungen richten sich an Juristen und es ist teilweise schwer, ihre Unterschiede herauszufinden. Umso schlimmer ist dieses Problem, da die Wahl der Lizenz eines der wichtigsten Schritte auf dem Weg zu OSS ist. Wie Jeff Atwood feststellt, ist Quellcode, welcher ohne Lizenz veröffentlicht wird, automatisch urheberrechtlich geschützt. Die Nutzung des Codes ist damit nicht erlaubt bzw. die Erlaubnis der Nutzung müsste von jeder Person individuell beim Autor erfragt werden.64 Der Code wäre erst rechtlich legal nutzbar, wenn er gemeinfrei werden würde. Dies passiert, wenn das Urheberrecht erlischt, was nach deutschem Recht 70 Jahre nach dem Tod des Autors der Fall wäre.65 Damit OSS frei genutzt und modifiziert werden kann, muss eine Lizenz für die Veröffentlichung gewählt werden. Analog zum unterschiedlichen Verständnis von freier Software lassen sich Lizenzen für OSS in zwei große Gruppe einteilen: • • freizügige permissive Lizenzen strenge Lizenzen Freizügige Lizenzen enthalten nur sehr wenige Beschränkungen. Programmierer können den unter einer freizügigen Lizenz stehenden Quellcode in der Regel nach eigenem Ermessen modifizieren und einsetzen. Dies ist jedoch nicht mit Gemeinfreiheit gleichzusetzen, da die freizügigen Lizenzen einzelne kleine Regeln zur Nutzung, Verbreitung und Änderung der Software vorsehen. Zu ihnen kann bspw. die zwingende Nennung des Originalautors gehören. Ein wichtiger Vertreter der freizügigen Lizenz ist die MIT License. Strenge Lizenzen werden hauptsächlich bei freier Software eingesetzt, welche frei im Sinne von Freiheit verstehen. Sie sollen häufig sicherstellen, dass die Verwendung offenen Quellcodes seinerseits wieder offenen Quellcode hervorbringen muss. Anders formuliert: Verändert man Quellcode unter einer strengen Lizenz, dann muss der neue Code ebenfalls unter derselben Lizenz veröffentlicht werden. Man nennt diesen Vorgang Copyleft und spricht von einem viralen Effekt, da die Lizenz vererbt wird. Damit soll sichergestellt werden, dass Änderungen und Verbesserungen freier 64 65 vgl. http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html, Stand: 02.09.2013 s. § 64 UrhG 25 4 Konzeption und Planung Software nicht in geschlossener Software untergehen und der Allgemeinheit vorenthalten werden. Freizügige Lizenzen stellen solche Bedingungen nicht. Ein wichtiger Vertreter einer strengen Lizenz ist die GPL License.66 Strenge Lizenzen klingen zunächst sehr attraktiv – OSS erstellt wieder OSS. Aber viele Entwickler sind zunächst davon abgeschreckt, da sie nicht einschätzen können, inwiefern sie Quellcode unter einer strengen Lizenz in kommerziellen Projekten und geschlossener Software einsetzen dürfen. Außerdem sind strenge Lizenzen tendenziell komplizierter als freizügige Lizenzen. Sie bestehen aus mehr Klauseln, welche striktere Bedingungen beschreiben. FALLSTUDIE Wie unter 3.3 OSS IM W EB beschrieben, stellt das Web einen besonderen Technologiebereich dar. Entwickler aus dem Web Umfeld reagieren teilweise allergisch auf restriktive und strenge Lizenzen, die sie in ihrer Freiheit einschränken. Man erkennt an dieser Stelle wie problematisch die Definition von Freiheit ist. Obwohl strenge Lizenzen die Freiheit schützen sollen, in dem jeglicher Code quelloffen ist, so fühlen sich Entwickler in ihrer Freiheit beschnitten, da sie mitunter keine geschlossene Software erstellen dürfen. Projektmanager von OSS sollten diese Problematik kennen, um negativen Reaktionen entgegenzuwirken. Ein Projekt, das dies schmerzhaft feststellen musste, ist Meteor. Bei seiner Einführung war die Begeisterung von Endanwendern über die technische Leistung des Frameworks zunächst groß, aber Webentwickler waren von der Entscheidung das Projekt unter GPL zu veröffentlichen zu verunsichert und machten ihrem Unmut in Blogs und sozialen Netzwerken Luft. Reaktionen wie „as exciting as Meteor is (VERY!), their approach to licensing kills it for me“ oder „now that it's GPL I will not be touching it with a ten foot pole“ zweier Nutzer auf Hacker News zeigen die Enttäuschung bei der Wahl der Lizenz. Der Blogger Olov Lassus stellt fest: „the web developer community seems to prefer permissive licenses“.67,68 66 vgl. Prokop, Open Source Projektmanagement, 2010, S. 26 vgl. https://news.ycombinator.com/item?id=3836212, Stand: 11.06.2013 68 vgl. http://blog.lassus.se/2012/04/meteor-meets-nogpl.html, Stand: 22.08.2013 67 26 4 Konzeption und Planung 27 Letzten Endes musste Meteor durch den Druck der Entwicklergemeinde ihre Lizenz von GPL auf MIT umstellen. So ist das Framework nun „free to use Meteor without restriction for both open-source and closed-source applications“.69,70 Fallstudie 3 – Meteor Anzumerken sei, dass Projekte mehrere Lizenzen besitzen können. Dies kann dazu dienen die Lizenzkompatibilität zu fremder Software zu erhöhen oder aber um eine Software für unterschiedliche Einsatzzwecke – z.B. kommerziell und nicht kommerziell – mit anderen Restriktionen auszustatten (s. 7.6 DUAL LICENSING).71 Nichtjuristen finden unter ChooseALicense und tl;drLegal verständliche Erklärungen zu den Klauseln der gängigsten OSS-Lizenzen.72,73 Im Folgenden seien die wichtigsten Lizenzen aufgelistet: 4.5.1 GENERAL PUBLIC LICENSE Die General Public License (GPL) entstammt dem GNU Projekt bzw. der FSF und ist eine strenge Lizenz. Veränderte GPL-Werke müssen ebenfalls wieder unter GPL veröffentlicht werden. Sie ist die erste ihrer Art.74 4.5.2 LESSER GENERAL PUBLIC LICENSE Die Lesser General Public License (LGPL) ist ähnlich der GPL und entstammt ebenfalls dem GNU Projekt. Sie erlaubt die Verwendung von LGPL-Software innerhalb von proprietärer Software, wenn der offene Zugang zur LGPL-Software noch möglich ist. Diese Bedingung kann u.a. mit dynamischen Programmbibliotheken erfüllt werden. Sie wurde von der FSF als Alternative zu freizügigen Lizenzen geschaffen. 75 4.5.3 AFFERO GENERAL PUBLIC LICENSE Die Affero General Public License (AGPL) ist eine weitere Ableitung der GPL und fügt dieser eine weitere Bedingung hinzu: „[W]ird ein Programm auf einem Server ausgeführt und kommuniziert dort mit 69 vgl. https://news.ycombinator.com/item?id=3870700, Stand: 11.06.2013 vgl. http://www.meteor.com/blog/2012/04/20/mit-license-http-request-package-made-with-meteor, Stand: 22.08.2013 71 vgl. Prokop, Open Source Projektmanagement, 2010, S. 32 72 vgl. http://choosealicense.com/, Stand: 16.07.2013 73 vgl. http://www.tldrlegal.com/, Stand: 16.07.2013 74 vgl. http://www.gnu.org/licenses/gpl.html, Stand: 11.06.2013 75 vgl. http://www.gnu.org/licenses/lgpl-3.0.en.html, Stand: 26.06.2013 70 4 Konzeption und Planung 28 anderen Nutzern, muss der Server auch den entsprechenden Quellcode des ausgeführten Programms zum Herunterladen bereitstellen. Wird eine modifizierte Programmversion ausgeführt, muss der Server Nutzern Zugriff auf den modifizierten Quellcode geben.“ Normalerweise greift die GPL nur wenn Kopien des Quellcodes in Umlauf gebracht werden. Dies ist bei einer serverseitigen Anwendung selten der Fall. Modifiziert jemand eine GPL-lizensierte Software und führt diese lediglich auf seinem eigenen Server aus, würden seine Änderungen nicht öffentlich sichtbar und ebenfalls GPL-lizensiert sein. Dieser Umstand wird mit der AGPL geregelt. 76 4.5.4 MASSACHUSETTS INSTITUTE OF TECHNOLOGY LICENSE Die Massachusetts Institute of Technology License (MIT License) ist eine freizügige und sehr kurze Lizenz. Sie zählt zu den liberalsten Lizenzen. Ihre einzige Bedingung ist, dass diese Lizenz nicht vom Code getrennt werden darf. Ansonsten erlaubt sie jegliche Freiheiten zur weiteren Verwendung. Sie ist auch unter den Namen X11 License und Expat License bekannt. 77 FALLSTUDIE Im Idealfall decken sich die Vorstellungen und Anforderungen der Entwickler und der User über die bevorzugte Lizenz. Häufig gilt es jedoch Kompromisse einzugehen. Die Wahl der Lizenz für das Projekt node-xmpp von Astro fiel zunächst auf die GPL. Er identifiziert sich mit den Vorstellungen der FSF und möchte die größtmögliche Offenlegung des Quellcodes und Freiheiten für die User wahren. Da Technologien sehr schnell veralten und ständig neu erfunden werden, sieht er keine große Notwendigkeit darin, Quellcode vor anderen zu verstecken. Er begründet dies auch mit der von Harold Abelson und Gerald Sussman getroffenen Aussage: „Programs must be written for people to read, and only incidentally for machines to execute.“ 78 Problematisch bei GPL ist jedoch, dass Contributions aus dem kommerziellen Bereich durch ihre Firmenrichtlinien behindert werden. Er hat sich deswegen für den Kompromiss entschieden, Contributions höher zu gewichten als Freiheiten, wenn sein opensource Projekt eine Bibliothek für andere Entwickler ist. Deswegen hat er node-xmpp auf die MIT License umgestellt. 76 vgl. http://www.gnu.org/licenses/why-affero-gpl.html, Stand: 28.08.2013 vgl. http://opensource.org/licenses/MIT, Stand: 11.06.2013 78 vgl. http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html, Stand: 23.08.2013 77 4 Konzeption und Planung Sollte es sich bei seinem OSS-Projekt jedoch um eine fertige Anwendung für Endanwender handeln, so greift er bevorzugt auf die GPL oder AGPL zurück. Fallstudie 4 – node-xmpp 4.5.5 BERKELEY SOFTWARE DISTRIBUTION LICENSE Die Berkeley Software Distribution License (BSD License) ähnelt der MIT License. Sie verbietet aber zusätzlich die Verwendung der Namen der Originalautoren als Werbemittel.79 4.5.6 APACHE LICENSE Die Apache License ist der BSD License sehr ähnlich und führt als weitere Bedingung ein, dass Änderungen in den Originaldateien gekennzeichnet sein müssen.80 4.5.7 CREATIVE COMMONS Da OSS nicht nur aus Quellcode, sondern auch aus Grafiken, Logos, Sounds und Dokumentationen bestehen kann, werden für diese Bereiche eigene Lizenzen verwendet. Die wichtigste Lizenz für Grafiken, Texte, etc. ist die Creative Commons (CC), welche wiederum aus verschiedenen Modulen besteht. Die freizügigste Variante der CC ist die CC BY. Sie erlaubt jegliche Verwendung, Bearbeitung und Weitergabe einer Grafik, eines Textes, etc., so lange der ursprüngliche Autor weiter genannt wird.81 Diese Arbeit steht unter der Lizenz der CC BY. A b b i l d u n g 3 - L o g o d e r C r e a t i v e C o m m o n s 82 79 vgl. http://opensource.org/licenses/bsd-license.php, Stand: 26.06.2013 vgl. http://opensource.org/licenses/Apache-2.0, Stand: 11.06.2013 81 vgl. http://creativecommons.org/licenses/, Stand: 12.09.2013 82 vgl. http://creativecommons.org/about/downloads, Stand: 04.07.2013 80 29 4 Konzeption und Planung 4.6 ZUSAMMENFASSUNG In diesem Kapitel wurde Folgendes dargelegt: • • • • • • • • Ein OSS-Projekt wird neben den ursprünglichen Autoren von Contributoren entwickelt. Contributoren können z.B. zum Commiter aufsteigen, um Schreibrechte für das Projekt zu erhalten. Contributions können jegliche Beiträge zu einem Projekt sein – nicht nur Quellcode. Forken bezeichnet das Abspalten eines OSS-Projekts. Die Ziele der OSS-Entwickler sind sehr verschieden. Sie können ideologischer, wirtschaftlicher oder persönlicher Natur sein. Konkurrenten sind Projekte, die das gleiche Ziel auf unterschiedlichen Wegen erreichen wollen. Sie sind nicht im umgangssprachlichen Sinn gegeneinander agierende Kontrahenten. Zur Zielgruppe eines OSS-Projekts zählen die User bzw. Endanwender ebenso wie die Contributoren. Die Wahl einer entsprechenden Lizenz ist Voraussetzung zur Veröffentlichung und Verwendung einer OSS. Lizenzen für OSS teilen sich in zwei Kategorien: freizügig und streng. 30 5 Entwicklung und Organisation 5 ENTWICKLUNG UND ORGANISATION Der Aufwand des Managements einer laufenden Entwicklung kann durch verschiedene Hilfestellungen gering gehalten werden. Zu diesen zählen Management- und Entwicklungsmodelle, welche Vorgaben zur Arbeitsweise festlegen, aber auch eine stabile Infrastruktur zur Erleichterung der alltäglichen Aufgaben. Im folgenden Kapitel werden einige dieser Hilfen vorgestellt. 5.1 HIERARCHIE- UND ORGANISATIONSMODELLE Das Projektmanagement bei der Entwicklung geschlossener kommerzieller Software wird klassischerweise über mehr oder weniger steile Hierarchien gelöst. Aufgaben werden zur unteren Ebene der Entwicklern herunter gereicht und Verantwortlichkeiten wandern zur oberen Ebene des Managements. Ein Blick auf die beteiligten Rollen innerhalb eines OSS-Projekts (s. 4.1 ROLLEN) lässt zunächst Ähnliches für die Entwicklung von OSS annehmen: unten stehen die Contributoren, darüber die Committers und Reviewers und ganz oben die Projects Leads. Ist dem wirklich so? Gibt es bei OSS-Projekten nur starre und steile Hierarchien? Lassen sich Softwareprojekte nicht ohne Hierarchien lösen? David Nalley, Mitglied bei Apache, beantwortet die Frage, von wem ein OSS-Projekt überhaupt geleitet wird, eindeutig: „Largely by the people doing the work.“83 Diejenigen, die die meiste Arbeit leisten, haben auch die größte Entscheidungsgewalt. Für ihn existieren keine direkten Hierarchien innerhalb von OSS, da die Autoritäten dynamisch vergeben werden. Für Nalley ist dies ein wünschenswerter Zustand, da er innovative Arbeit hervorbringe. Er unterscheidet hier aber klar zwischen Innovation und Fortschritt und räumt ein, dass Hierarchien möglicherweise mehr Fortschritt zur Folge hätten. Die Vergabe der Autorität nach Arbeitsaufwand mache für Contributoren einen großen Teil der Motivation aus (s. 5.3 M OTIVATION), da sie die Richtung eines Projekts aktiv ändern könnten. Management bzw. Führerschaft heißt für ihn die Arbeit der Contributoren so leicht wie möglich zu gestalten – nicht selbst Designentscheidungen zu treffen und Richtungen vorzugeben. Dass diese Annahme nicht auf alle OSS-Projekte übertragbar sein kann, zeigt bereits die klare Hierarchie in den zuvor erwähnten 83 vgl. http://opensource.com/business/11/2/leadership-open-source-communities, Stand: 01.07.2013 31 5 Entwicklung und Organisation 32 Rollen. Zudem kann Fortschritt in vielen Fällen ein wünschenswerteres Ziel sein als Innovation. Möglicherweise ist dies ein Zeichen dafür, dass man in diesem Fall keine allgemeingültige Aussage zur Beschreibung für die eine Hierarchie und Organisation für OSS-Projekte treffen kann. 5.1.1 ORGANISATIONSMODELLE NACH STÜRMER Matthias Stürmer, Vorstandsmitglied der /ch/open, unterteilt OSSProjekte aus den zuvor genannten Gründen noch einmal in vier Gruppen, wobei er das Zusammenspiel zwischen Firmen, Organisationen und Einzelpersonen als Contributoren als Kriterium nimmt:84 5.1.1.1 „SINGLE VENDOR OPEN SOURCE PROJECTS“ Wenn hinter der OSS eine einzelne Firma steht, spricht man von „Single vendor85 open source projects“. Diese Firma behält das volle Urheberrecht der Software und Contributoren übertragen ihr Urheberrecht an ihren Quellcodeänderungen über entsprechende CLAs an die Firma. Auf diese Weise kann die ursprüngliche Firma ihre Software sowohl unter open-source als auch unter kommerziellen Lizenzen verbreiten und weiter Einnahmen durch Lizenzverkäufe generieren. Die entsprechende open-source Lizenz könnte bspw. die Nutzung der Software auf andere OSS beschränken und erst der Kauf einer kommerziellen Lizenz erlaubt den Einsatz mit proprietärer Software. Diese Art von OSS-Projekten steht durchaus in der Kritik, da die Entscheidungsgewalt der Firma größer ist als die der Community und es schwerer ist Contributoren zu finden, welche ihr Urheberrecht abtreten würden. Dennoch können solche Projekte sehr erfolgreich werden – ein Beispiel hierfür wäre MySQL. „Single vendor open source projects“ können aber weiterhin geforkt werden. So ist MariaDB ein Fork von MySQL. In diesem Fall darf nur die GPL-lizensierte Version von MySQL geforkt und weiterentwickelt werden und ist dadurch an GPL gebunden. Die Verwendung einer kommerziellen Lizenz bleibt MySQL vorbehalten.86 Da die Entwicklung der OSS größtenteils innerhalb einer einzelnen Firma stattfindet, kann man die reguläre Firmenhierarchie im Projekt wiederfinden. 84 vgl. http://opensource.com/business/13/6/four-types-organizational-structures-within-open-sourcecommunities, Stand: 01.07.2013 85 vendor (englisch „Anbieter“, „Lieferant“, hier: „Firma“) 86 vgl. http://www.admin-magazine.com/Articles/MariaDB-vs.-MySQL, Stand: 02.07.2013 5 Entwicklung und Organisation 5.1.1.2 „DEVELOPER COMMUNITIES“ OSS von „Developer communities“ werden von beliebig vielen Contributoren entwickelt und in der Regel von einer gemeinnützigen Organisation verwaltet, seltener von einzelnen Personen. Jeder Contributor verfolgt unterschiedliche Ziele mit der Partizipation an dem Projekt, arbeitet an ihm aber freiwillig mit. Administrative Aufgaben werden von der jeweiligen Organisation übernommen. So betreut The Document Foundation die Software LibreOffice oder Mozilla den Browser Firefox.87,88 Grundlegende Projektentscheidungen wie bspw. die Wahl der Lizenz werden zwischen der Organisation und den Hauptcontributoren getroffen. Das Urheberrecht liegt bei der Organisation, die zum Teil aus den Hauptcontributoren besteht. Alle anderen Contributoren unterzeichnen bei „Developer communities“ deswegen meistens ebenfalls eine CLA. Die Hierarchie in diesen Projekten ist sehr unterschiedlich und hängt von der Infrastruktur und den Bedingungen der verwaltenden Organisation ab. Auch wenn ein Teil der Entscheidungsgewalt der Contributoren abgegeben wird, erhalten sie dafür ebenbürtige Gegenleistungen wie Rechtsbeistand. Außerdem verfolgen die verwaltenden Organisationen größtenteils gemeinnützige Ziele, sodass ihnen die Qualität und der Fortbestand der OSS sehr wichtig ist – ganz im Sinne der Contributoren. Als Beispiel sei wieder Mozilla genannt, die diesen Anspruch in einem Manifest wiedergeben.89 5.1.1.3 „USER COMMUNITIES“ „User communities“ ähneln „Developer communities“ jedoch liegt das Urheberrecht an einer OSS direkt bei den Contributoren und nicht bei einer verwaltenden Organisation. Die Contributoren sind dabei gleichzeitig die User der OSS. Sie verwalten sich selbst und entscheiden gemeinsam über die weitere Entwicklung. Hier findet sich am ehesten die von Nalley beschriebene hierarchielose Teamzusammensetzung. „User communities“ können dennoch von anderen Firmen oder Organisationen unterstützt werden z.B. wenn mehrere Firmen auf ein größeres Ziel hin zusammenarbeiten ohne einer einzelnen Firma oder Organisation ein größeres Stimmrecht als einer anderen zuzugestehen. 87 vgl. http://www.documentfoundation.org/, Stand: 02.07.2013 vgl. https://www.mozilla.org/de/contribute/, Stand: 02.07.2013 89 vlg. http://www.mozilla.org/de/about/manifesto/, Stand: 05.08.2013 88 33 5 Entwicklung und Organisation Ein Beispiel hierfür wäre WHATWG, eine Arbeitsgruppe zur Entwicklung des HTML Standards zusammengesetzt aus verschiedenen Webentwicklern, welche u.a. von Apple, Opera und Mozilla unterstützt werden.90 Ebenfalls zu einer „User community“ zählt die GENIVI Alliance, eine Allianz mehrerer Autohersteller, deren Ziel die Entwicklung eines offenen In-Vehicle Infotainment-Systems ist.91 Wichtig für Initiatoren eines „User communitiy“-Projekts ist die Offenheit und die Bereitschaft, andere Meinungen von Contributoren zu tolerieren und anzunehmen, um erfolgreich zu sein. Sie benötigen die Eigenschaft das Wohl des Projekts über persönliche Vorlieben zu stellen. Andernfalls forken Contributoren das Projekt und entwickeln komplett an den Interessen des Initiators vorbei. 5.1.1.4 „OPEN SOURCE COMPETENCE CENTERS“ „Open source competence centers“ betreuen selbst keine OSSProjekte, sondern dienen als Schnittstelle zwischen allen Stakeholdern von OSS. Sie können unterschiedliche Rollen einnehmen: • • • • • Aggregatoren: Sammeln und Verbreiten von Neuigkeiten von OSS Katalysatoren: Zusammenbringen und fördern von Interessengemeinschaften Mediatoren: Vermitteln zwischen Firmen und Contributoren Marketing: Bewerben von OSS Consulting: Beratung von Firmen und Contributoren in der Nutzung und Entwicklung von OSS Diese Liste stellt nur einen Auszug von möglichen Aufgabenfeldern dar. Beispiele für „Open source competence centers“ wären die Open Source Business Alliance oder OSS Watch. Beide bieten Beratung für den Einsatz von OSS an und versuchen ihre Verbreitung zu erhöhen. Ihre Beratung richtet sich auch an Entwickler von OSS bezüglich der Wahl der richtigen Lizenz oder eines Geschäftsmodells.92,93 90 vgl. http://wiki.whatwg.org/wiki/FAQ#What_is_the_WHATWG.3F, Stand: 02.07.2013 vgl. http://www.genivi.org/, Stand: 15.08.2013 92 vgl. http://www.osb-alliance.de/, Stand: 03.07.2013 93 vgl. http://www.oss-watch.ac.uk/, Stand: 03.07.2013 91 34 5 Entwicklung und Organisation 35 Die Größe, der Aufbau, die Finanzierung und die Aktivitäten von „Open source competence centers“ fallen sehr unterschiedlich aus und können nicht verallgemeinert werden. 5.1.2 ORGANISATIONSMODELLE NACH PROKOP Michael Prokop, Entwickler des Linux-Live-Systems Grml, geht einen anderen Weg und betrachtet drei mögliche Hierarchien für OSSProjekte, welche keine Unterscheidung zwischen Firmen oder Contributoren als OSS-Projektmitglieder machen: 94,95 5.1.2.1 „WOHLWOLLENDER DIKTATOR“ Der „wohlwollende Diktator“ ist eine einzelne Person innerhalb des OSS-Projekts, welche die Richtung der weiteren Entwicklung vorgibt. Er trifft Entscheidungen auf Basis der Meinung von Experten, etablierten Projektmitgliedern. Einwände gegen seine Entscheidungen können vorgetragen werden, jedoch haben Contributoren nicht das Recht sie zu verhindern. Die Motivation dieser Hierarchie ist nicht die Entmündigung der Contributoren, sondern die Begrenzung von unproduktiven Diskussionen. Ihr liegt die Vorstellung zugrunde, dass es manchmal sinnvoller ist überhaupt eine Entscheidung zu treffen, als endlos über die beste Entscheidung zu diskutieren. Ein prominentes Beispiel für diesen Hierarchietyp ist Linus Torvald, welcher als „wohlwollender Diktator“ für den Linux-Kernel fungiert. Contributoren können Änderungen an Submodulen des Kernels bei der zuständigen Person, dem Maintainer des Submoduls, beantragen. Diese machen eine Vorabprüfung, ob die Quellcodeänderungen übernommen werden können und sollten und geben erst danach den Antrag an Linus Torvald weiter, welcher letztendlich die Entscheidung trifft. Der ganze Prozess findet öffentlich statt und kann jederzeit kommentiert werden, um Torvalds Entscheidung zu beeinflussen. Auch Astro sieht sich als „wohlwollender Diktator“ in seinen OSSProjekten: „Jedem steht es frei zu forken.“ Wer mit einer Entscheidung unzufrieden ist, kann das Projekt problemlos selbstständig weiterführen. 94 95 vgl. http://grml.org/, Stand: 03.09.2013 vgl. Prokop, Open Source Projektmanagement, 2010, S. 49 ff. 5 Entwicklung und Organisation 5.1.2.2 „GEWÄHLTE REGIERUNG“ Komplexere Hierarchien als beim „wohlwollenden Diktator“ findet man bei der „gewählten Regierung“, welche bei Teams bzw. Organisationen auftritt, die mehr als eine OSS betreuen. Häufig wird die Regierung durch ein gewähltes Komitee abgebildet. Ein Beispiel für diesen Typ wäre die bereits erwähnte ASF. Pro betreutes Projekt gibt es ein Project management committee (PMC)96 bestehend aus gewählten Contributoren, welche sich noch einmal in PMC Member 97 und PMC Chair98 unterteilen, wobei ein PCM Chair eine höhere Entscheidungsgewalt besitzt als ein PCM Member. Zusammen bilden sie die Entscheidungshierarchie innerhalb eines ASF Projekts ab. Zusätzlich werden jährlich neun Mitglieder in die Boards of Directors gewählt, welche projektübergreifende Interessen der ASF betreuen. 5.1.2.3 MERITOKRATIE Der letzte Hierarchietyp nach Prokop ist die Meritokratie: die „Herrschaft der Verdienstvollen“. Sie deckt sich mit der eingangs vorgestellten Hierarchie nach Nalley. Alle OSS-Projekte, die sich aus sich selbst heraus organisieren, können der Meritokratie zugeordnet werden. Sie ist sehr dynamisch und vergibt Projektmitgliedern umso mehr Stimmrecht, je mehr sie sich am Projekt beteiligen. Ein Beispiel für eine Meritokratie ist die GNOME Foundation, welche die Entwicklung der Desktop-Umgebung GNOME betreuen. Aber auch die ASF spricht von sich selbst als Meritokratie – trotz gewähltem PMC. Daran wird deutlich, dass der Übergang zwischen den einzelnen Organisationsformen fließend ist.99,100 Letztendlich ist festzuhalten, dass die korrekte Wahl einer Hierarchie stark vom eigentlichen Projekt abhängt: • • • 96 Habe ich ein sehr großes Team? Dann ist die „gewählte Regierung“ wohlmöglich der Meritokratie vorzuziehen. Fehlt es mir an Visionen? Dann benötige ich eventuell einen „wohlwollenden Diktator“. Entsteht meine OSS aus kommerziellen Gründen innerhalb einer Firma? Dann bleibt möglicherweise nur ein „Single vendor open source project“ als einzige Auswahlmöglichkeit. ähnlich einem Project Lead innerhalb der Apache Organisation member (englisch „Mitglied“) 98 chair (englisch „Vorsitzender“) 99 vgl. https://wiki.gnome.org/Foundation/Charter, Stand: 15.08.2013 100 vgl. http://www.apache.org/foundation/how-it-works.html#meritocracy, Stand: 15.08.2013 97 36 5 Entwicklung und Organisation • 37 Benötige ich eventuell Rechtsbeistand oder eine komplizierte Infrastruktur? Dann wäre eine „Developer community“ ratsam. 5.2 FUNKTIONEN UND ROLLEN DES MANAGEMENTS Das Management eines OSS-Projekts im umgangssprachlichen Sinne ist in den meisten Fällen mit den Project Leads gleichzusetzen. Dieses im deutschen Sprachgebrauch übliche Verständnis steht die im angelsächsischen Raum verbreitete funktionale Perspektive gegenüber, welche Management unabhängig von der ausführenden Personen und dessen hierarchische Position anhand seiner Funktionen definiert: „Management ist ein Komplex von Steuerungsaufgaben“, welche betriebliche Funktionen wie bspw. Einkauf, Produktion und Verkauf sichern und kontrollieren. Sie sind „auf jeder Hierarchiestufe zu erfüllen, wenn auch unterschiedlich nach Art und Umfang“.101 Definition 2 – Management Im Folgenden seien wichtige Modelle zur Definition dieser Steuerungsaufgaben vorgestellt. Ziel dieser Modelle ist es die Mechanismen hinter komplexen Prozessen aufzudecken. Auf diese Weise können Fehler und Probleme in Projekten besser erkannt und gelöst werden. 5.2.1 MANAGEMENTFUNKTIONEN NACH K O O N T Z / O’D O N N E L L Der klassische „Fünferkanon von Managementfunktionen“ der Professoren Harold Koontz und Cyril O’Donnell beschreibt fünf Funktionen, die in einem linear ablaufenden Prozess die iterative Arbeit des Managements beschreiben. Dieses idealisierte Modell wird basierend auf den Anfangsbuchstaben der Funktionen mit POSDC abgekürzt: 102 1. Planung (planning): Die Planung ist der Ausgangspunkt des Managementprozesses und beinhaltet die Untersuchung was und wie etwas erreicht werden soll. Sie definiert das Ziel. 2. Organisation (organizing): Die Organisation stellt das Handlungsgefüge her, welches zur Umsetzung des Ziels benötigten wird. Wichtiger Bestandteil dieser Funktion ist die Definition von Aufgabeneinheiten und 101 102 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 8 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 9 ff. 5 Entwicklung und Organisation 38 Errichtung eines Kommunikationskanals zwischen allen Beteiligten. 3. Personaleinsatz (staffing): Der Personaleinsatz beinhaltet die detaillierte Zuweisung von Aufgabeneinheiten an entsprechende Personen, sowie die Beurteilung, den Erhalt und die Weiterbildung des Personals. 4. Führung (directing): Die Führung konzentriert sich auf die Sicherstellung und Feinsteuerung der erfolgreichen Umsetzung durch das Verbessern der Motivation sowie der Kommunikation und das Lösen von Konflikten zwischen allen Beteiligten. 5. Kontrolle (controlling): Innerhalb der Kontrolle werden die Ergebnisse gesammelt und mit der ursprünglichen Zielsetzung verglichen. Negative Abweichungen müssen auf Korrekturmöglichkeiten hin untersucht werden. Die Daten, die durch die Kontrolle entstehen, sind Grundlage für den nächsten Managementprozess, der wieder bei der Planung beginnt. 1. Planung 5. Kontrolle 4. Führung 2. Organisation 3. Personaleinsatz A b b i l d u n g 4 – M a n a g e m e n t f u n k t i o n e n n a c h K o o n t z / O ’ D o n n e l 103 Abstrakte Modelle wie das der Managementfunktionen von Koontz und O’Donnel lassen sich in der Regel nur teilweise auf die reale Welt übertragen. Wie dies aussehen könnte soll das folgende Beispiel von Grunt zeigen. 103 in Anlehnung an Managementfunktionen nach Koontz/O’Donnell 5 Entwicklung und Organisation 39 FALLSTUDIE Grunt ist ein JavaScript-basiertes Automationstool, welches sich primär auf Arbeitsschritte in der Webentwicklung konzentriert. Es wurde ursprünglich von Ben Alman entwickelt.104 Bis Version 0.3 enthielt Grunt selbst interne Funktionen zur Automatisierung, welche bspw. einen Webserver starten konnten. Eines der Ziele für Version 0.4 war eine bessere Skalierbarkeit. Diese sollte durch eine erhöhte Modularisierung erreicht werden, indem jede interne Automatisierungsfunktion als eigenständiges offizielles Plugin veröffentlicht wird (Planung). Aus diesem Grund wurden neue Repositories (s. 5.5.1 VERSIONSVERWALTUNG) angelegt: ein allgemeines für alle offiziellen Plugins von Grunt und ein weiteres für jedes Plugin selbst. So konnten alle Plugins unabhängig voneinander verwaltet werden (Organisation). Ben Alman entwickelte die Grunt API weiter und übergab das Management und die Aufsicht aller offiziellen Plugins an den Grunt Contributor Tyler Kellen weiter, welcher die eigentliche Entwicklung eines Plugins wiederum anderen Contributoren überließ (Personaleinsatz). Alman und Kellen kommunizierten das Konzept an alle Contributoren und verwiesen Supportanfragen zu ehemals internen Funktionen an die Contributoren der neuen Plugins weiter (Führung). Mittels Ticketsystem und Checklisten wurde die Entwicklung der Plugins, aber auch die Umstellung der Dokumentation gemessen und verglichen (Kontrolle). 105,106,107,108,109 Anschließend konnte Grunt als Version 0.4 veröffentlicht werden. Mit der Aufstellung einer Roadmap für Version 0.5 begann eine neue Planungsphase, sodass sich der Zyklus der Managementfunktionen wiederholt.110 Fallstudie 5 – Grunt 5.2.2 MANAGEMENTROLLEN NACH MINTZBERG Koontz und O’Donnells Modell ist zwar weit verbreitet, jedoch durch seine starke Vereinfachung kaum praxistauglich. Henry Mintzberg, Professor für Betriebswirtschaftslehre und Management, hat in empirischen Studien untersucht, inwiefern sich dieses Modell von 104 vgl. http://weblog.bocoup.com/introducing-grunt/, Stand: 16.08.2013 vgl. https://github.com/gruntjs/grunt-contrib/tree/18f375bc59fbbef25f8f32fe572cbfb7fad93002, Stand: 16.08.2013 106 vgl. http://weblog.bocoup.com/tearing-grunt-apart/, Stand: 16.08.2013 107 vgl. https://github.com/gruntjs/grunt/issues/549, Stand: 16.08.2013 108 vgl. https://github.com/gruntjs/grunt/issues/480, Stand: 16.08.2013 109 vgl. https://github.com/gruntjs/grunt/issues/663, Stand: 16.08.2013 110 vgl. https://github.com/gruntjs/grunt/wiki/Roadmap, Stand: 16.08.2013 105 5 Entwicklung und Organisation der Realität unterscheidet. So sei der oben beschriebene Zyklus keinesfalls geschlossen und hätte keinen fest definierten Anfang bzw. kein fest definiertes Ende. Der reale Arbeitsalltag sei zu zerstückelt von Ad-hoc-Aufgaben für einen einzelnen stringenten Prozess. Einer der Hauptaufgaben sei die Kommunikation, welche zuhören genauso einschließt wie zu befehligen und häufig müsse man Entscheidungen treffen, ohne alle benötigten Informationen zu besitzen.111 Aus diesen Untersuchungen heraus hat Mintzberg das flexiblere Modell der zehn Managementrollen entwickelt, welche in drei Gruppen gegliedert werden können:112 • • • „interpersonelle Rollen“ zur Pflege von Beziehungen „Informationsrollen“ zum Aufnehmen und Abgeben von Daten „Entscheidungsrollen“ zum Steuern von Prozessen Jede dieser Rollen besitzt andere Funktionen. Ein Manager kann eine oder mehrere dieser Rollen zu unterschiedlichen Zeitpunkten annehmen und so situationsbedingt folgende Funktionen erfüllen: 111 112 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 13 f. vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 16 ff. 40 5 Entwicklung und Organisation 41 Kategorie Rolle Funktion Interpersonelle Rollen Galionsfigur (figurehead) Symbolfigur nach außen und innen Vorgesetzter (leader) Mitarbeiter auswählen, leiten, motivieren und trainieren Vernetzer (liasion) Kontakte nach außen und innen aufbauen und pflegen Radarschirm (monitor) Informationen von innen und außen suchen und sammeln Sender (disseminator) Informationen innerhalb des Teams verteilen Sprecher (spokesperson) Informationen außerhalb des Teams verteilen Innovator (entrepreneur) Ideen für Verbesserungen initiieren und umsetzen Problemlöser (disturbance handler) Konflikte schlichten und Probleme lösen Ressourcenzuteiler (ressource allocator) Ressourcen wie Zeit, Geld oder Mannkraft an Aufgabenpakete verteilen Verhandlungsführer (negotiator) Verhandlungen bezüglich des Projekts besuchen, leiten und beeinflussen Informationsrollen Entscheidungsrollen T a b e l l e 7 – M a n a g e m e n t r o l l e n n a c h M i n t z b e r g 113 113 in Anlehnung an Managementrollen nach Mintzberg 5 Entwicklung und Organisation 5.2.3 MANAGEMENTKOMPETENZEN 42 NACH KATZ Nachdem nun ein Funktionskatalog für Manager erstellt wurde, lohnt es sich zu betrachten, welche Voraussetzungen ein Manager besitzen muss, um diese Funktionen erfüllen zu können. Nach Robert Katz benötigen Manager dafür drei Schlüsselkompetenzen, so genannte skills:114 • • • „Technische Kompetenz“: Sie beschreibt das ausführliche Wissen über Techniken und Methoden der Managementlehre und die Fähigkeiten, dieses Wissen in der Praxis erfolgreich anzuwenden. „Soziale Kompetenz“: Sie beschreibt die Fähigkeit möglichst effektiv mit anderen Menschen zusammenzuarbeiten, ihre Handlungsmotivation zu kennen, kulturelle Unterschiede zu tolerieren bzw. zu würdigen und sich in sie hineinzuversetzen. „Konzeptionelle Kompetenz“: Sie beschreibt die Fähigkeit komplexe Probleme zu strukturieren und effektiv und effizient zu lösen. Bestandteile dieser Kompetenz sind eine hohe Lernfähigkeit, die Problembetrachtung aus verschiedenen Perspektiven, flexibles und schnell anpassbares Planen sowie das Denken außerhalb der Box. Alle drei Kompetenzen wirken unterschiedlich stark gewichtet zusammen und tragen so zum Gelingen einer Managementfunktion bei. 5.3 MOTIVATION Die Motivation hinter OSS stellt eine ihrer größten Stärken dar. In den meisten Fällen arbeiten Contributoren freiwillig, unentgeltlich und in ihrer Freizeit am OSS. Ihre Motivation muss dementsprechend hoch sein, um so viel Arbeit in ein Projekt zu stecken. Erste Begründungen für die hohe Motivation wurden bereits unter 4.2 ZIELE genannt. Es lohnt sich jedoch ein detaillierter Blick in gängige Motivationstheorien, damit die Motivation aller Projektmitglieder während der Entwicklung gefördert und einem Abflachen entgegengewirkt wird. 114 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 24 f. 5 Entwicklung und Organisation Die Motivation beschreibt einen Beweggrund, die Befriedigung eines Bedürfnisses, aus dem der Mensch heraus handelt. Dabei ist das so genannte Anstrengungsniveau, also die Richtung, die Stärke und die Dauer der Anstrengungen, die jemand auf sich nimmt um ein Ziel zu erreichen, umso größer je höher die Motivation ist.115,116 Definition 3 – Motivation Das heißt, dass Projektmitglieder umso produktiver arbeiten, je höher ihre Motivation ist. Das Verbessern und Aufrechterhalten der Motivation im Team ist damit ein wichtiges Ziel des Managements. Man unterscheidet zwischen zwei Formen der Motivation: • • intrinsische Motivation: Sie ist die Motivation, die von innen kommt. Dabei werden innere Bedürfnisse wie die Neugier oder der Wille etwas zu lernen befriedigt. extrinsische Motivation: Sie ist die Motivation, die von außen kommt. In der Regel entsteht sie durch externe Belohnungen wie das Gehalt, das man vom Arbeitgeber bekommt. Bei dieser Unterteilung ist wichtig zu beachten, dass intrinsische Motivation im Allgemeinen ein größeres Anstrengungsniveau erreicht als extrinsische Motivation, letztere jedoch einfacher zu beeinflussen ist, da sie per Definition von außen kommt. So kann man bspw. einfacher das Gehalt von einem Mitarbeiter erhöhen als die Lust am Lernen. Da Contributoren von OSS nur selten für ihre Arbeit entlohnt werden und sie sich hauptsächlich aus persönlichen Gründen einem OSSProjekt widmen, ist ihre intrinsische Motivation tendenziell sehr hoch. Warum müssen Project Leads eines OSS dennoch so viel Fokus auf die Motivation der Contributoren legen, wenn sie doch automatisch hoch motiviert sind? Um die besten Contributoren in der OSSCommunity wird ebenso stark geworben wie um besten Mitarbeiter in der freien Wirtschaft. Hat man schließlich gute Contributoren gewonnen, möchte man sie auch so lange wie möglich an das Projekt binden. Aus diesem Grund werden im Folgenden Modelle vorgestellt, welche dabei helfen sollen, die Motivation der Contributoren zu bewahren und zu erhöhen. 115 116 vgl. Kulbe, Grundwissen Psychologie, Soziologie und Pädagogik, 2009, S. 64 f. vgl. Jost, Organisation und Motivation, 2008, S. 98 43 5 Entwicklung und Organisation 5.3.1 ERWARTUNGS-VALENZ-THEORIE 44 NACH VROOM Die Erwartungs-Valenz-Theorie oder auch Valenz-InstrumentalitätsErwartungs-Theorie (VIE-Theorie) des Wirtschaftspsychologen Victor Harold Vroom betrachtet die Verknüpfung zwischen individuellen Wünschen der Mitarbeitermotivation (Individualziele) und den betrieblichen Zielen (Organisationsziele).117 Seine Idee ist, dass Mitarbeiter aufbauend auf den Organisationszielen auf mindestens zwei Handlungswegen ihre Individualziele erreichen wollen, welche aber von den Organisationszielen abweichen können. Mitarbeiter wählen einen Handlungsweg nach seiner Attraktivität (Valenz) und der geschätzten Wahrscheinlichkeit, ob sie ihr Ziel darüber erreichen können (Erwartung bzw. subjektive Wahrscheinlichkeit). Ob ein Organisationsziel dem Individualziel hinderlich oder förderlich ist wird als Instrumentalität bezeichnet. Das folgende Beispiel soll dies verdeutlichen: Ein Organisationsziel eines Unternehmens sei die überdurchschnittliche Produktivität der Mitarbeiter. Je produktiver ein Mitarbeiter ist, desto mehr Lohn erhält er. Eines der Individualziele von Mitarbeiter A ist es mehr Lohn zu erhalten. Die Instrumentalität ist hoch, da das Organisationsziel zum Individualziel führt. Allerdings bedeutet dies Überstunden und Mitarbeiter A glaubt nicht, dass er noch produktiver arbeiten kann. Die Valenz dieses Handlungsweges und die Erwartung an sein Gelingen sind gering. Mitarbeiter B glaubt, noch produktiver arbeiten zu können und da er seine Arbeit liebt, machen ihm Überstunden Freude. Die Erwartung und Valenz sind hoch. Allerdings ist sein größtes Individualziel die Akzeptanz seiner Kollegen. Er möchte nicht der produktivste Mitarbeiter sein und als Streber gelten. Die Instrumentalität ist deswegen gering. Mitarbeiter C wiederum möchte mehr Lohn und glaubt produktiver arbeiten zu können. Er möchte sich dafür aber nicht anstrengen. Die Instrumentalität und Erwartung sind bei ihm hoch, die Valenz jedoch klein. Am Beispiel wird deutlich, wie die Motivation der Mitarbeiter nach der VIE-Theorie verbessert werden kann. Je genauer ich die Individualwünsche meiner Mitarbeiter bzw. Contributoren kenne, umso besser kann ich meine Organisationsziele mit ihnen abgleichen und erhöhe somit ihre Motivation. Ein Lösungsvorschlag für dieses Beispiel könnte sein, dass Mitarbeiter A mehr Lohn erhält, in dem er eine Aufgabe mit mehr 117 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 189 ff. 5 Entwicklung und Organisation 45 Verantwortung und Risiko übernimmt, welche aber nicht unbedingt schwierigere Arbeit und Überstunden beinhaltet. Mitarbeiter B könnte andere produktive Teamkollegen bekommen, damit er sich nicht als Streber fühlt und dadurch produktiver arbeitet. Für Mitarbeiter C könnte man versuchen die Valenz durch mehr Urlaub zu erhöhen. Bei OSS könnten Contributoren, die ihre Popularität steigern möchten, vermehrt Marketingmaßnahmen wie das Verfassen von Blogartikeln zugewiesen werden und anderen Contributoren, die vor allem viel lernen möchten, die Implementierung experimenteller neuer Funktionen. In OSS-Teams, welche keine starke Hierarchie besitzen (s. 5.1.2.3 M ERITOKRATIE), ergeben sich diese Zuweisungen häufig automatisch. Die meisten Contributoren übernehmen einfach die Aufgaben, die ihren Individualzielen entsprechen. So lässt sich mit der VIE-Theorie die hohe Motivation von Contributoren erklären. Aufgabe des Managements ist in diesem Fall weniger die Verbesserung der Instrumentalität, sondern der Valenz und der Erwartung in dem bspw. die Dokumentation für einen reibungslosen Projekteinstieg verbessert wird. 5.3.2 BEDÜRFNISHIERARCHIE NACH MASLOW Die Bedürfnishierarchie bzw. –pyramide des Psychologen Abraham Maslow ordnet die Motivationsstärke dem sukzessiven Erreichen von hierarchisch geordneten Bedürfnisklassen zu. 118 118 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 195 ff. 5 Entwicklung und Organisation Wachstumsbedürfnisse 4. Wertschätzungsbedürfnisse 3. Soziale Bedürfnisse Defizitbedürfnisse Motivationsstärke 5. Selbstverwirklichung 46 2. Sicherheitsbedürfnisse 1. Physiologische Bedürfnisse A b b i l d u n g 5 – B e d ü r f n i s h i e r a r c h i e n a c h M a s l o w 119 Die Bedürfnishierarchie besagt, dass Menschen danach streben Bedürfnisse zu befriedigen (Defizitprinzip) und dass Bedürfnisse aus hierarchisch niedrigen Bedürfnisklassen vor höheren befriedigt werden müssen (Progressionsprinzip). Die Motivationsstärke nimmt bei der Befriedigung hierarchisch höherer Bedürfnisse zu. Bedürfnisse lassen sich den folgenden fünf Bedürfnisklassen zuordnen: 1. Physiologische Bedürfnisse: Sie ergeben sich aus überlebenswichtigen Grundvoraussetzungen für Menschen. Zu ihnen zählen Essen, Trinken, Kleidung, Wohnung, etc. 2. Sicherheitsbedürfnis: Es drückt das Verlangen nach Schutz gegenüber Unfällen, Raub, Kriminalität, Krankheiten, etc. aus. 3. Soziale Bedürfnisse: Zu ihnen zählt der Wunsch nach gemeinschaftlichem Leben, Zusammengehörigkeit und sozialen Beziehungen. 4. Wertschätzungsbedürfnisse: Sie stehen für den Wunsch nach Anerkennung, Achtung und Vertrauen von anderen Personen, aber auch für Selbstachtung. 5. Selbstverwirklichung: Sie ist die höchste Bedürfnisklasse und beinhaltet die Unabhängigkeit und die Entfaltung der eigenen Persönlichkeit. Die Selbstverwirklichung und teilweise die Wertschätzungsbedürfnisse gruppiert Maslow zu den Wachstumsbedürfnissen, welche nie abschließend befriedigt werden können. Deswegen gibt es auch keine sechste Bedürfnisklasse. Die restlichen Bedürfnisklassen zählt er zu den vollständig befriedigbaren Defizitbedürfnissen. 119 in Anlehnung an Bedürfnishierarchie nach Maslow 5 Entwicklung und Organisation 47 Nach Maslows Modell ist es für das Management wichtig, möglichst viele hierarchisch niedrige Bedürfnisklassen möglichst gut zu befriedigen, um hoch motivierte Mitarbeiter bzw. Contributoren zu erhalten. Gerade bei OSS-Projekten ist es jedoch schwer, die unteren zwei Bedürfnisklassen zu beeinflussen. Die dritte Klasse der sozialen Bedürfnisse lässt sich hingegen aktiv gestalten. So können Manager Konferenzen einberufen, damit sich aus den virtuellen Kontakten eines OSS-Projekts auch reale Freundschaften entwickeln können. Maslows Bedürfnispyramide ist nicht frei von Kritik. Hierarchisch niedrige Bedürfnisklassen können und müssen nicht immer zu 100% befriedigt werden. So besteht immer eine Gefahr durch Krankheiten, welche das Sicherheitsbedürfnis beeinflusst. Der Grad, um wie viel Prozent eine Bedürfnisklasse befriedigt sein muss, um zur nächsten zu gelangen, ist von Person zu Person unterschiedlich. Die Hierarchie und Gewichtung der einzelnen Klassen können ebenfalls unterschiedlich sein. So sind für manche Menschen soziale Bedürfnisse wichtiger als die eigene Sicherheit. Neben der Motivation dient die Maslowsche Bedürfnispyramide auch zur Bindung von Mitarbeitern bzw. Contributoren an das Unternehmen bzw. das OSS-Projekt: Je mehr Bedürfnisklassen innerhalb des Unternehmens bzw. des OSS-Projekts befriedigt werden, umso größer ist die Bindung. So können soziale Bedürfnisse ausschließlich im privaten Umfeld befriedigt werden und die Bindung bleibt gering oder sie können zusätzlich innerhalb der Arbeit befriedigt werden und so eine hohe Bindung erzeugen. Die hohe Motivation von Contributoren in OSS-Projekten lässt sich so auch mit der Maslowschen Bedürfnishierarchie erklären. Die Teilnahme an OSS fördert nicht nur die Wertschätzung durch andere Menschen, sondern auch die Selbstverwirklichung. Schließlich steht es jedem Contributor frei ein fremdes Projekt nach eigenen Vorstellungen zu gestalten – durch Mitarbeit oder als Fork. 5.3.3 ZWEI-FAKTOREN-THEORIE NACH HERZBERG Die Zwei-Faktoren-Theorie des Psychologen Frederick Herzberg basiert auf der Annahme, dass Zufriedenheit (satisfiers) und Unzufriedenheit (dissatisfiers) nicht die zwei Enden einer Skala sind, sondern zwei verschiedenen Dimensionen entsprechen. 120 Nach Herzberg führt das lösen von Unzufriedenheit nicht automatisch zu Zufriedenheit, sondern zu Nicht-Unzufriedenheit. Das Gleiche trifft umgekehrt auf Zufriedenheit zu. 120 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 199 ff. 5 Entwicklung und Organisation • • 48 Zufriedenheit: Sie wird beeinflusst durch Motivatoren, welche sich auf die Arbeit selbst beziehen. Zu ihnen zählen Erfolgserlebnisse, Anerkennung, die Arbeit an sich, Verantwortung, Karriere und die Persönlichkeitsentfaltung. Motivatoren beziehen sich immer auf den Arbeitsinhalt und die Selbstverwirklichung. Unzufriedenheit: Sie wird durch arbeitsinterne und -externe Hygienefaktoren beeinflusst. Zu ihnen zählen die Personalpolitik, der eigene Status, die Kompetenz der Vorgesetzten, das Arbeitsklima, die Arbeitssicherheit, etc. Daraus ergibt sich, dass eine hohe Motivationsstärke erst bei NichtUnzufriedenheit und Zufriedenheit entsteht: Hygienefaktoren Nicht-Unzufriedenheit Zufriedenheit Motivatoren Nicht-Zufriedenheit Unzufriedenheit Motivationsstärke A b b i l d u n g 6 – Z w e i - F a k t o r e n - T h e o r i e n a c h H e r z b e r g 121 Für Manager bedeutet dies, dass sie unabhängig von der Anzahl und Qualität der Motivatoren (mehr Geld, mehr Urlaub, etc.) niemanden motivieren können, wenn im Gegenzug keine Hygienefaktoren erfüllt werden. Sie müssen sich somit der Verbesserung der Motivation im gleichen Maß wie der Beseitigung der Unzufriedenheit widmen. 121 in Anlehnung an Zwei-Faktoren-Theorie nach Herzberg 5 Entwicklung und Organisation 49 Herzbergs Modell steht insofern in der Kritik, dass sie empirisch in der Arbeitswelt nicht konsequent anwendbar ist. Der Grund dafür ist, dass Motivatoren zu Hygienefaktoren werden können, wenn sie über einen langen Zeitraum bedient wurden. Umgekehrt können Hygienefaktoren ebenfalls zu Motivatoren werden. Ein Beispiel aus der OSS-Entwicklung ist, dass Anerkennung motivierend wirkt. Hat sich ein Entwickler jedoch an sie gewöhnt, so wird er unzufrieden, wenn sie ausbleibt. In diesem Fall ist aus der Anerkennung als Motivator ein Hygienefaktor geworden. 5.3.4 JOB-CHARACTERISTICS NACH HACKMAN/ OLDHAM Nach Greg Oldham und Richard Hackman bestehen Arbeitsaufgaben aus fünf Dimensionen, welche zusammen die intrinsische Motivation von Mitarbeitern bzw. Contributoren beeinflussen. Sie sind im JobCharacteristics-Model beschrieben:122,123 • • • • • Aufgabenvielfalt (skill variety): Wie viele unterschiedliche Fertigkeiten und Fähigkeiten werden bei der Arbeit eingesetzt? Ganzheitscharakter (task identity): Kann man einen eigenständigen und individuellen Beitrag durch die Arbeit am Endprodukt erkennen? Bedeutungsgehalt (task significance): Ist die Arbeit für andere Personen innerhalb oder außerhalb des Projekts von Bedeutung? Autonomie (autonomy): Kann die Arbeit unabhängig von anderen Personen, zeitlichen und sachlichen Begrenzungen durchgeführt werden? Rückkoppelung (feedback): Wie viele Ergebnisse und Auswirkungen der Arbeit werden dem Verantwortlichen zurückgegeben? Anhand dieser fünf Dimensionen lässt sich erneut die hohe intrinsische Motivation von Contributoren erklären: Der eigene Beitrag am Projekt ist in der Versionsverwaltung für jeden sichtbar (hoher Ganzheitscharakter) und das Projekt kann maßgeblich beeinflusst werden (hoher Bedeutungsinhalt). Die Arbeit erfolgt sehr autonom ohne größere Restriktionen und Vorgaben. In Bug-Trackern und sozialen Netz–werken erhalten Contributoren viel Rückkoppelung. Die Aufgabenvielfalt kann nach eigenem Ermessen gewählt werden. Wer nicht programmieren möchte, pflegt die Dokumentation oder hilft im Support aus. 122 123 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 205 f. vgl. Ridder, Personalwirtschaftslehre, 2009, S. 224 f. 5 Entwicklung und Organisation Aufgabe des Managements ist es alle fünf Dimensionen zu fördern, um hochmotivierte Contributoren zu erhalten. FALLSTUDIE In einem Blogartikel beschreibt Joost de Valk, Contributor von WebKit und Autor diverser quelloffener WordPress Plugins, was ihn bei der Entwicklung von OSS motiviert und wie sich diese Motivation im Laufe der Jahre verändert hat. Er wurde erstmalig als OSS-Entwickler aktiv, als er automatisierte Tests für WebKit schrieb. Warum? „Because it was fun!“ Er wollte den eigentlichen WebKit-Entwicklern die Arbeit am Projekt erleichtern, damit diese schneller neue Funktionen implementieren konnten. Seine damalige Motivation bestand aus einer Mischung aus Spaß an seiner Arbeit und Eigennutz. Die Contributions führte er in seiner Freizeit durch. Im gleichen Zeitraum erstellte er mit dem CMS WordPress die Seite CSS3.info. Für diese entwickelte er SEO Plugins, welche er anschließend als open-source veröffentlichte. Die Arbeit an der Seite und den Plugins vergrößerten seine Bekanntheit und Reputation, sodass er erstmalig Einnahmen durch seine OSS-Tätigkeit erzielen konnte und als Sprecher für Konferenzen eingeladen wurde. Daraus entstand eine gewisse Eigendynamik, da seine Auftritte auf Konferenzen ebenfalls wieder seine Bekanntheit vergrößerten. Ab einem gewissen Punkt erwirtschaftete er mit seiner Arbeit an OSS mehr Geld als durch seine reguläre Anstellung und beendete deswegen sein Angestelltenverhältnis. Nun entwickelt er für seinen Lebensunterhalt und aus purer Freude an OSS-Projekten. In eigenen Worten: "I’m living a dream, seriously, and I wouldn’t have been here without open source development.“ 124 Vergleicht man diese zeitliche Entwicklung bspw. mit der Maslow’schen Bedürfnishierarchie, so sieht man, dass die Motivation bei seiner Arbeit mit OSS auf einem Top-Down-Weg von der Selbstverwirklichung zunehmend auch die unteren Ebenen der Defizitbedürfnisse ausfüllte. Für deren Erfüllung war zunächst seine reguläre Anstellung nötig, welche zunehmend unwichtiger wurde. 124 vgl. http://yoast.com/open-source-motivations-business/, Stand: 19.08.2013 50 5 Entwicklung und Organisation 51 Dieses Beispiel zeigt, dass die Entwicklung von OSS ein wichtiger Lebensinhalt und Teil der Selbstverwirklichung eines Menschen sein kann und damit als Sache an sich motivierend wirkt. Fallstudie 6 – Joost de Valk 5.4 ENTWICKLUNGSMODELLE Die Entwicklung von Software ist organisatorisch sehr komplex und wird durch unbekannte und weltweit agierende Teammitglieder nicht einfacher zu handhaben. Aus diesem Grund haben sich beispielhafte Vorgehensweisen herausgebildet, um der Softwareentwicklung einen einheitlichen Ablauf zu geben. Diese Vorgehensweisen nennt man Entwicklungsmodelle. Sie sind je nach Größe und Zusammensetzung des Teams unterschiedlich gut für ein Projekt geeignet. Die gängigsten Entwicklungsmodelle seien im Folgenden kurz vorgestellt. Sie sollten als Muster betrachtet werden, die in der Praxis nur begrenzt angewandt werden können. In der Realität wird man immer Abwandlungen oder Mischformen finden, da sich diese Modelle hauptsächlich an Programmierer richten, obwohl in der Entwicklung noch mehr Personen wie Designer und Projektleiter involviert sind. In den Worten des Entwicklers James McCaffrey:125 „Ultimately [these methodologies] are all just labels. In reality most software projects use certain aspects of all these methodologies [...] and the most important part of success [...] [is] not a particular methodology, but clear communication, hard work, and common sense.“ 125 vgl. http://jamesmccaffrey.wordpress.com/2006/04/11/agile-programming-vs-extreme-programming/, Stand: 10.07.2013 5 Entwicklung und Organisation 5.4.1 52 WASSERFALLMODELL Das Wasserfallmodell beschreibt ein lineares und sequentielles TopDown-Vorgehen bei der Entwicklung von Software. Sie durchläuft die folgenden Phasen:126 1. 2. 3. 4. 5. 6. 7. 8. Systemanforderungen Softwareanforderung Analyse Programmentwurf Implementierung Testen Auslieferung Wartung Erst wenn eine Phase abgeschlossen ist, kann die nächste begonnen werden. Die Vorteile dieses Modells sind die klare Strukturierung und zeitliche Planbarkeit der einzelnen Phasen, da die Phasentrennung eindeutig und das Vorgehen linear ist. Die Nachteile überwiegen jedoch die Vorteile. Die Vorgehensweise ist zu starr und unflexibel. In den seltensten Fällen können alle Anforderungen vor der Implementierung erfasst werden. Eine spätere Korrektur der Anforderungen ist im Wasserfallmodell nicht vorgesehen. Da Anforderungen meist direkt von den Usern kommen und die Contributoren während einer laufenden Phase das Projekt problemlos beitreten oder verlassen können, ist dieses Modell für die dynamische Natur von OSS ungeeignet. 5.4.2 SPIRALMODELL NACH BOEHM Das Spiralmodell nach Barry Boehm ist eine Weiterentwicklung des Wasserfallmodells. Es besteht aus mehreren Phasen, die nacheinander und wiederholt abgeschritten werden:127 1. 2. 3. 4. Planung Risikoanalyse Realisierung Evaluierung Beim Spiralmodell handelt es sich um einen iterativen Prozess. Alle Phasen werden zyklisch erfasst und mit jedem Entwicklungsschritt entfernt man sich von der ursprünglichen Planung. 126 127 vgl. Prokop, Open Source Projektmanagement, 2010, S. 43 vgl. Prokop, Open Source Projektmanagement, 2010, S. 44 5 Entwicklung und Organisation Dass sich die endgültige Software von der ursprünglichen Planung entfernt, wird als ein Vorteil angesehen, da die ursprüngliche Planung häufig unvollständig ist und sich Projektziele während der Entwicklung ändern können. Im Laufe des Spiralmodells entstehen mehrere Prototypen, die wiederum Grundlage zur Planung der nächsten Entwicklungsschritte sind. 5.4.3 AGILE SOFTWAREENTWICKLUNG Die agile Softwareentwicklung ähnelt in vielen Punkten dem Spiralmodell.128 Bei der agilen Softwareentwicklung handelt es sich mehr um eine Philosophie als um ein eigenständiges Entwicklungsverfahren. Nachfolgend werden jedoch noch konkrete Verfahren genannt, die auf dieser Philosophie aufbauen. Im Unterschied zum Spiralmodell stellt die agile Softwareentwicklung Vorgaben an die Dauer und die Priorität der einzelnen Phasen. So sollen die Phasendurchgänge möglichst häufig und kurz und somit sehr iterativ sein. Der Fokus der Entwicklung soll auf Kundenzufriedenheit und funktionsfähige Software liegen, welche in kleinen Schritten um neue Funktionen erweitert wird. Diese Philosophie ist im weit verbreiteten „Manifest für Agile Softwareentwicklung“zusammengefasst:129 „[Wir schätzen:] Individuen und Interaktionen mehr als Prozesse und Werkzeuge Funktionierende Software mehr als umfassende Dokumentation Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung Reagieren auf Veränderung mehr als das Befolgen eines Plans Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.“ Die agile Softwareentwicklung verfolgt 12 konkrete Prinzipien: 130 • • • • • 128 Fokus auf Kundenzufriedenheit Nutzen von Anforderungsänderungen zum Kundenvorteil regelmäßige Auslieferung von Software Zusammenarbeit zwischen Betriebswirtschaftlern und Entwicklern hohe Motivation aller Beteiligten vgl. Prokop, Open Source Projektmanagement, 2010, S. 44 f. vgl. http://agilemanifesto.org/iso/de/, Stand: 09.07.2013 130 vgl. http://agilemanifesto.org/iso/de/principles.html, Stand: 09.07.2013 129 53 5 Entwicklung und Organisation 54 Bevorzugung von persönlichen Gesprächen zum Informationsaustausch funktionierende Software als Maßstab für Fortschritt schonende nachhaltige Arbeitsweise der Entwickler Aufmerksamkeit auf Qualität und gutes Design Einfachheit (unnötige Arbeit vermeiden) Selbstorganisation von Teams regelmäßige Überprüfung und Verbesserung dieser Prinzipien • • • • • • • Durch die Flexibilität, dem Streben nach Einfachheit, der Selbstorganisation und der iterativen Entwicklung ist die agile Softwareentwicklung für OSS gut geeignet. Fehlende persönliche Gespräche müssen ggf. durch technische Hilfsmittel wie Videochats bestmöglich ersetzt werden. 5.4.4 EXTREME PROGRAMMING Extreme Programming ist eine sehr konkrete Auslegung der agilen Softwareentwicklung. Sie basiert auf drei Bestandteilen:131,132 vier Werten (values) 15 Prinzipien (principles) 12 Techniken (practices) • • • Da die Werte und Prinzipien des Extreme Programming dem Manifest und den Prinzipien der agilen Softwareentwicklung ähneln werden sie an dieser Stelle nicht näher vorgestellt. Die 12 Techniken stellen jedoch eine praktische Umsetzung der Philosophie der agilen Softwareentwicklung dar, deren Betrachtung sich durch ihre Praxisnähe lohnt: Planning Game: Während des Planning Games werden neue Anforderungen aufgenommen und abgeschätzt. Teammitglieder und User sind gleichermaßen Teil des Planning Games. Pair Programming: Zwei Programmierer arbeiten gleichzeitig an einem Computer. Einer programmiert und der andere fungiert als Beobachter und hält zusätzlich störende Einflüsse von außen (Telefon, Postbote, etc.) fern. Sie beraten sich gegenseitig. Continuous Integration (CI): Neuer Quellcode im Versionsystem durchläuft automatisch mehrere Tests. Sind diese Tests erfolgreich, wird der Code automa- • • • 131 vgl. Prokop, Open Source Projektmanagement, 2010, S. 45 ff. vgl. http://www.scrum-kompakt.de/grundlagen-des-projektmanagements/extreme-programming-xp/, Stand: 09.07.2013 132 5 Entwicklung und Organisation • • • • • • • • • tisch in die Software eingepflegt, welche daraufhin neu erstellt wird. Design Improvement/Refactoring: Ein Teil der Entwicklungszeit wird dafür verwendet bestehenden Quellcode wartbarer, verständlicher, lesbarer und erweiterbarer zu machen, anstatt neue Funktionen einzubauen. Redundanz im Code sollte vermieden werden. Dieses Prinzip wird als don’t repeat yourself (DRY) bezeichnet. Small Releases/Iterations: Die Software sollte in kurzen Abständen mit nur kleinen Funktionsänderungen neu veröffentlicht werden. Endanwender erhalten schnell Updates und die Änderungen sind leichter zu testen. Dies entspricht der release early, release often Maxime. Simple Design: Überflüssige Komplexität sollte vermieden werden. Dieser Leitspruch ist auch als keep it simple stupid (KISS) bekannt. Metaphor: Da Software häufig zu komplex für alle Beteiligten ist, sollte die Funktionsweise der Software durch entsprechende Metaphern für alle einheitlich vereinfacht werden. Zu den Beteiligten zählt auch der Endanwender! Test Driven Development (TDD): Tests werden geschrieben bevor, die erste Funktion implementiert wird. Im Folgenden soll TDD hohe Qualität und eine möglichst fehlerfreie Software garantieren. Collective Code Ownership: Quellcode und Dokumentation gehört allen Entwicklern gleichermaßen und darf von jedem Entwickler verändert werden. Sustainable Pace: Lange Arbeitszeiten bedeuten keine höhere Produktivität. Die Wochenarbeitszeit sollte nicht mehr als 40 Stunden betragen. Coding Standards: Namenskonventionen, Einrückungsvarianten und andere Regeln gelten projektweit für alle Entwickler. Whole Team : Es gibt keine externen Ressourcen bzw. Kompetenzen. Das Wissen über die Implementierung der Software befindet sich komplett im Team. Hinweis: Der letzte Punkt ist der einzige, dessen Bedeutung sich zwischen den Quellen gängiger Literatur unterscheidet. Die obige Beschreibung entstammt Prokops Definition. Andere Quellen beschreiben das Prinzip des Whole Team unter der Annahme, dass der Endanwender und der Kontakt zu ihm Bestandteil des Teams ist. Teilweise sprechen diese Quellen deswegen nicht vom Whole Team 55 5 Entwicklung und Organisation 56 sondern vom On-site customer, einer durchaus realen Einzelperson aus allen Endanwendern, die das Entwicklerteam berät.133,134 Extreme Programming ist für die Entwicklung von OSS sehr gut geeignet. Qualitätskontrollen wie TDD, CI, Coding Standards, etc. erleichtern einen schnellen dynamischen Wechsel der Projektmitglieder sowie die Integration von Contributions. Designprinzipien wie KISS, schnelle Iterationen und ein Fokus auf Refactoring verbessern die Übersicht und Wartbarkeit des Quellcodes. Dies sind Prinzipien, welche mit jedem zusätzlichen Entwickler an Bedeutung gewinnen und von jedem größeren OSS-Projekt beachtet werden sollten, um dessen Verwaltungsaufwand zu verringern. Lediglich die fehlende regionale Nähe erschwert manche Praktiken. Während Planning Games noch relativ gut virtuell in Videochats abgehalten werden können, ist echtes Pair Programming bei OSS kaum möglich. In diesem Fall kann das Pair Programming aber durch ähnliche Praktiken wie Code Reviews ersetzt werden. 5.4.5 SCRUM Eine weitere Auslegung der agilen Softwareentwicklung ist Scrum. Zusätzlich zum bestehenden Projektteam gibt es bei Scrum zwei weiteren Rollen: den Scrum Master und den Product Owner. Alle drei Parteien zusammen ergeben das Scrum Team .135,136 Der Beginn eines Scrum-Projekts liegt in der Vision der späteren Software, welche vom Product Manager zusammen mit dem Kunden entworfen wird. Die Vision überführt der Product Manager in Anforderungen, die innerhalb eines initialen Product Backlogs priorisiert werden. Die Anforderungen werden typischerweise als sogenannte User Stories formuliert. User Stories sind unscharfe Anforderungen aus der Sicht des Kunden. Ihre Unschärfe hat den Vorteil, dass sie sich noch während des Projekts ändern können.137 Die Planung zur Umsetzung der hoch priorisierten User Stories beginnt im Sprint Planning Meeting, in welchem der Product Owner den aktuellen Product Backlog dem Projektteam vorstellt. Das Projektteam schätzt, welche User Stories es im nächsten Sprint abarbeiten kann und überträgt diese in eine Selected Backlog, in welchem die User Stories für den nächsten Sprint fix sind. Die restlichen User Stories im Product Backlog können sich jedoch 133 vgl. http://www.oobeyagroup.com/images/ExtremeProgrammingAgileSoftwareDevelopmentLindstromJeffries.pdf, Stand: 09.07.2013 134 vgl. http://martinfowler.com/bliki/OnsiteCustomer.html, Stand: 09.07.2013 135 vgl. Wirdeman, Scrum mit User Stories, 2011, S. 28 ff. 136 vgl. Gloger, Scrum, 2013, S. 11 ff. 137 vgl. Wirdeman, Scrum mit User Stories, 2011, S. 51 5 Entwicklung und Organisation währenddessen ändern. Anschließend werden die User Stories des Selected Backlog in einzelne Aufgabenpakete zerteilt. Es entsteht das Sprint Backlog, welches die detaillierten Aufgaben des nächsten Sprints beinhaltet. Mit diesem kann der aktuelle Sprintfortschritt gemessen werden. Das ganze Meeting wird vom Scrum Master moderiert, welcher u.a. darauf achtet, dass nicht zu viele User Stories im Selected Backlog enthalten sind. Nach dem Sprint Planning Meeting schließt sich der eigentliche Sprint an. Dieser ist der iterative Prozess innerhalb von Scrum. Sprints sind Entwicklungsphasen mit einer fest definierten Länge (1-4 Wochen) an deren Ende eine verwendbare Software entsteht. Innerhalb dieser Phase arbeitet das Projektteam komplett autark. Der Scrum Master achtet darauf, dass das Team nicht von außen behindert wird. Eine besondere Form des Sprints ist der ReleaseSprint, an dessen Ende nicht nur eine verwendbare Software entsteht, sondern eine, die auch an den Endanwender ausgeliefert wird. In diesem Fall sind noch mehr Personen im Sprint involviert (Marketing, Administratoren, Support, etc.). Am Ablauf oder an der Qualität der Software ändert sich jedoch nichts. Innerhalb des Sprints existiert ein weiterer iterativer Prozess: die Daily Scrums. Sie dienen dazu, dass sich das Projektteam täglich zu einer festen Zeit trifft, um sich gegenseitig zu synchronisieren und den aktuellen Fortschritt zu messen. Sprints und Daily Scrums wiederholen sich so lange das Projekt aktiv entwickelt wird. Nach einem abgeschlossen Sprint finden zwei Meetings statt. Zuerst beginnt das Sprint-Review , welches eine öffentliche Präsentation der neuen verwendbaren Software darstellt. Zu diesem treffen sich der Product Owner, der Scrum Master und das Projektteam, welche um Stakeholder wie die Geschäftsführung oder Endanwender ergänzt werden können. Sie begutachten die umgesetzten User Stories und diskutieren Probleme bei der Umsetzung. Das Meeting sollte nicht aufwendig vorbereitet werden – es wird nur die Software präsentiert. Der Sprint wird endgültig mit der Sprint-Retrospektive geschlossen. Das Ziel dieses Meetings ist die ständige Verbesserung des Entwicklungsprozesses und der Produktivität des Projektteams. Ein wichtiger Bestandteil dessen ist die reibungslose Zusammenarbeit innerhalb des Teams. 57 5 Entwicklung und Organisation FALLSTUDIE Das Scrum Prinzip wird erfolgreich von der open-source IDE Brackets eingesetzt, einem OSS Projekt der Firma Adobe (s. 5.1.1.1 „SINGLE VENDOR OPEN SOURCE PROJECTS“).138 Teil des Entwicklungsprozesses von Brackets ist die tägliche Kontrolle von Contributions als Teil des Daily Scrums. Dabei erhalten externe Contributions eine höhere Priorität als die vom Adobe Kernteam selbst. Die Länge der Sprints im Brackets Team beträgt 12 Entwicklungstage. Zur Visualisierung der Backlogs verwenden die Entwickler das Onlinetool Trello, welches die Überführung von User Stories aus dem Product Backlog in ein Sprint Backlog ermöglicht (s. 5.5.4 M ANAGEMENT-SOFTWARE). Zusätzlich gibt es unterschiedliche Backlogs für Adobe interne und externe Teammitglieder.139,140,141 Am Ende eines Sprints trifft sich das Team zur Reviewphase. Durch die teilweise überregional arbeitenden Teammitglieder wird diese teilweise über Videochats durchgeführt.142 Vorteile dieses agilen und öffentlichen Entwicklungsprozesses sind das zeitnahe Feedback der User und eine schnellere Reaktionsfähigkeit auf dieses Feedback. Adam Lehman, der Project Lead von Brackets, führt als Beispiel an, dass Brackets zunächst ausschließlich im Browser verwendet werden sollte. Viele Nutzer stimmten dagegen und führten an, dass sie lieber mit nativen IDEs arbeiten würden. Daraufhin konnte das Brackets Team sehr schnell die Prioritäten ändern und entwickeln Brackets nun innerhalb einer nativen Shell. 143,144 Fallstudie 7 – Brackets 5.5 TECHNISCHE INFRASTRUKTUR Eine gut funktionierende technische Infrastruktur ist essentiell für einen reibungslosen Entwicklungsprozess – egal ob bei OSS oder geschlossener Software. Sie hängt jedoch stark von den Projektbedingungen ab und kann kaum verallgemeinert werden. So spielen die Teamgröße, Art der Software, Vorkenntnisse der Contributoren und Vorlieben der Zielgruppen eine entscheidende Rolle bei der 138 vgl. http://brackets.io/, Stand: 21.08.2013 vgl. http://blog.petermolgaard.com/2012/05/03/adobe-brackets-team-using-trello/, Stand: 10.07.2013 140 vgl. http://dev.brackets.io/preso/contribute/#/16, Stand: 10.07.2013 141 vgl. https://trello.com/b/LCDud1Nd/brackets, Stand: 21.08.2013 142 vgl. https://plus.google.com/113743469825932014075/posts/cSVyhkcrp8L, Stand: 21.08.2013 143 vgl. http://creativejs.com/2012/05/brackets-review/#comment-1901, Stand: 21.08.2013 144 vgl. https://github.com/adobe/brackets-shell/, Stand: 21.08.2013 139 58 5 Entwicklung und Organisation Notwendigkeit und der Wahl der richtigen Werkzeuge. Innerhalb dieses Kapitels ist es deswegen nicht möglich, alle Werkzeuge im Detail vorzustellen. Dieses Kapitel dient viel mehr als Grundlage zum Brainstorming: Welche Werkzeuge benötigt eigentlich mein Projekt? 5.5.1 VERSIONSVERWALTUNG Die Versionsverwaltung ist eines der wichtigsten – vielleicht das wichtigste – Werkzeug bei der Softwareentwicklung. Das Versionskontrollsystem (engl. Version Control System , VCS) erfasst Änderungen an Dateien und Dokumenten und speichert diese in einem Archiv ab.145 Anhand der Änderung kann nicht nur abgelesen werden, was geändert wurde, sondern auch wer diese Änderung vorgenommen hat und wann. Der Ursprung eines Fehlers lässt sich somit immer zurückverfolgen und die Software lässt sich auf einen funktionierenden alten Stand zurücksetzen. Im Wesentlichen besteht ein VCS aus den folgenden Bereichen: • • • • • • • • • 145 Repository: Das eigentliche Archiv des Projekts. Es speichert alle Daten und Änderungen des Projekts. Working Copy: Eine lokale Kopie des Repositories. An dieser Kopie führt ein Entwickler Änderungen im Quellcode durch. Checkout: Das Übertragen von Änderungen aus dem Repository in die Working Copy. Commit: Das Übertragen von Änderungen aus der Working Copy in das Repository. Revision: Ein spezieller Entwicklungsstand des Repositories. Diff: Unterschiede zwischen zwei Revisionen. Conflict: Sich überschneidende Änderungen innerhalb einer Datei. Merge: Das Auflösen eines Conflicts bzw. Vereinen verschiedener Änderungen innerhalb einer Datei. Branch: Ein isolierte Version des Repositories oder der Working Copy. vgl. Prokop, Open Source Projektmanagement, 2010, S. 113 ff. 59 5 Entwicklung und Organisation 60 Mehrere unabhängige Änderungen im Quellcode können jeweils in einem eigenen Branch stattfinden ohne sich gegenseitig zu beeinflussen. VCS werden in zwei Hauptgruppen unterteilt: zentral oder verteilt. Bei zentralen VCS liegt das Repository zentral auf einem Server. Änderungen, die jedem Entwickler des Projekts zugänglich gemacht werden sollen, werden mittels eines Commits auf das Repository und damit auf den Server übertragen, sodass jeder auf diese zugreifen kann. Bekannte Vertreter von zentralen VCS ist das veraltete Concurrent Versions System (CVS) und Subversion (SVN). Bei verteilten VCS gibt es kein zentrales Repository auf das jeder Entwickler zugreifen kann. Jeder Entwickler benutzt sein eigenes lokales Repository und kann dieses mit anderen Repositories abgleichen. Diese können wiederum auf einem Server liegen. Ein Commit überträgt Änderungen der Working Copy zwar weiterhin in das Repository, aber lediglich in das eigene. Möchte man Änderungen an andere Entwickler weiterreichen, führt man einen sogenannten Push durch. Da verteilte VCS ein lokaleres und unabhängigeres Arbeiten ermöglichen, sind sie in vielen Fällen für OSS besser geeignet. Bekannte Vertreter der verteilten VCS sind Git sowie Mercurial. Zu den Daten, die innerhalb des VCS festgehalten werden sollten, zählt vorrangig der Quellcode der Software. Des Weiteren sollten alle für die Entwicklung der Software benötigten projektspezifischen Dateien wie die Konfigurationsdateien des Build-Systems oder Testdateien im Repository liegen. Wichtige softwarebezogene Assets wie Logos, Icons oder Fonts können mitunter auch im Repository gespeichert werden. Teilweise werden auch Dokumentationen oder Webseiten in Repositories gespeichert – je nach Größe sollten sich diese aber in eigenen gesonderten Repositories befinden. 5.5.2 HOSTING-DIENSTE FÜR SOFTWAREPROJEKTE Das Aufgabenspektrum moderner Hosting-Dienste für Softwareprojekte geht mittlerweile weit über das einfache Speichern und zur Verfügung stellen von Quellcode hinaus. Sie unterscheiden sich im Wesentlichen von der verwendeten Versionsverwaltung, dem Finanzierungsmodell, der zusätzlichen zur Verfügung gestellten Werkzeuge und der Integration eines sozialen Netzwerkes. Des Weiteren ist ihre Community stark von den dort gehosteten Projekten und den Firmen, die den Hosting-Dienst betreuen, geprägt. So steht hinter dem Hosting-Dienst CodePlex die Firma Microsoft, die hier ihre eigenen OSS-Projekte wie TypeScript veröffentlicht.146 146 vgl. http://typescript.codeplex.com/, Stand: 11.07.2013 5 Entwicklung und Organisation Im Folgenden werden fünf populäre Hosting-Dienste miteinander verglichen: 61 5 Entwicklung und Organisation 62 Name VCS Firma Gründung Bitbucket 147 Git, Mercurial Atlassian 2008 CodePlex 148 SVN, TFS, Git, Mercurial Microsoft 2006 GitHub149 Git GitHub, Inc 2008 Google Code 150 SVN, Git, Mercurial Google 2006 SourceForge 151 CVS, SVN, Git, Mercurial Dice Holdings 1999 Tabelle 8 – Übersicht von Hosting-Diensten für Softwareentwicklung Name Kosten Features Bitbucket • frei: n-private Repositories mit max. 5 Benutzern • Kosten: nach Benutzerzahlen für n-private Repositories • Code Review • Bug-Tracking (Jira) • Wiki System • Team Organisation CodePlex • frei: OSS • • • • GitHub • frei: OSS • Kosten: gestaffelt nach Anzahl privater Repositories • GitHub Enterprise: spezieller Bezahldienst für eine eigene GitHub Instanz • Code Review (als Pull Requests) • Bug-Tracking • Web Hosting • Wiki System • Team Organisation Google Code • frei: OSS • Code Review • Bug-Tracking • Wiki System SourceForge • frei: OSS • • • • • • Bug-Tracking Wiki System Mailinglisten Forum Bug-Tracking Web Hosting Wiki System Mailinglisten Forum Team Organisation Tabelle 9 –Hosting-Diensten nach Kosten und Features 147 vgl. https://bitbucket.org/, Stand: 11.07.2013 vgl. https://www.codeplex.com/, Stand: 11.07.2013 149 vgl. https://github.com/, Stand: 11.07.2013 150 vgl. https://code.google.com/intl/de/, Stand: 11.07.2013 151 vgl. http://sourceforge.net/, Stand: 11.07.2013 148 5 Entwicklung und Organisation Die gegebenen Übersichten zeigen lediglich einen Ausschnitt der eigentlichen Dienste. Im Detail unterscheiden sie sich beim Support, der Benutzerfreundlichkeit, der Stabilität, den Analysetools, Onlineeditoren, etc. Da alle genannten Dienste für OSS kostenlos sind ist der Preis in der Regel kein ausschlaggebendes Kriterium bei der Wahl dieser. Git ist die sicherste Wahl als VCS, da es von allen Diensten unterstützt wird. Obwohl hinter Google Code und CodePlex zwei der bekanntesten ITFirmen stecken, findet die meiste Entwicklung wohl bei Bitbucket und GitHub statt, weil sie durch Premium-Dienste für große Firmen interessant werden – gerade GitHub, welches als einziger Dienst die Möglichkeit einer lokaler Instanz mit Support bietet. In der Tat ist GitHub der populärste der genannten Dienste und kann fast ausschließlich wegen seiner großen Community als erste Wahl in Betracht gezogen werden. Hinzu kommt das gute Tooling, welches native Client-Applikationen beinhaltet.152,153,154 A b b i l d u n g 7 – P o p u l a r i t ä t d e r H o s t i n g - D i e n s t e b e i G o o g l e T r e n d s 155 Erst in Spezialfällen lohnt sich der Blick zu anderen Diensten. So ist die C# Community unter CodePlex als Microsoft Dienst beispielsweise besonders stark vertreten.156 5.5.3 ISSUE-TRACKING-SYSTEM Issue-Tracking-Systeme, Bug-Tracker bzw. Ticket-Systeme bilden bestehende Probleme einer Software und Arbeitspakete der Entwickler 152 vgl. http://www.heise.de/developer/meldung/GitHub-populaerer-als-SourceForge-und-Google-Code1255416.html, Stand: 11.07.2013 153 vgl. http://windows.github.com/, Stand: 11.07.2013 154 vgl. http://mac.github.com/, Stand: 11.07.2013 155 vgl. http://goo.gl/26FKQ, Stand: 11.07.2013(X-Achse: Zeitraum von 2004 bis 2013, Y-Achse: absolutes Suchinteresse relativ zum höchsten Suchaufkommen) 156 vgl. http://readwrite.com/2011/06/02/github-has-passed-sourceforge, Stand: 11.07.2013 63 5 Entwicklung und Organisation ab. Die Probleme, Bugs bzw. Arbeitspakete werden in Tickets formuliert. Die Issue-Tracking-Systeme dienen dazu die Tickets zu erfassen, zu gruppieren, zu ordnen, zu priorisieren, ihren Bearbeitungsfortschritt zu messen und die Bearbeitung einer bestimmten Person zuzuweisen. Sie dienen mitunter auch für Außenstehende als zentrale Anlaufstelle um technische Fehler zu melden. Es obliegt dem Projekt zu definieren, was ein Ticket ist. So können neben offensichtlichen Fehlfunktionen der Software auch fehlende Features als Ticket erfasst werden. Obwohl es nicht ihr primärer Einsatzzweck ist, können auch zielgerichtete Diskussionen in Form eines Ticket erstellt werden und ersetzen damit einfache Mailinglisten oder Foren. Ein Beispiel dafür wäre das „Diskussionsticket“ der nächsten Bootstrap-Iteration.157 Tickets können außerdem zu einem Sprint Backlog zusammengefasst werden und so den Fortschritt eines Sprints messen (s. 5.4.5 SCRUM). Die meisten Code-Hosting-Dienste enthalten bereits mehr oder weniger komplexe Bug-Tracker. Bitbucket integriert beispielsweise die eigenständige Software Jira, welche ebenfalls von Atlassian entwickelt wird.158 A b b i l d u n g 8 – J i r a : E r s t e l l u n g e i n e s T i c k e t s 159 Andere beliebte freie Issue-Tracking-Systeme sind Bugzilla, Redmine und Mantis, welche statt der integrierten Lösung des Code-HostingDiensts genutzt werden können . 160,161,162 157 vgl. https://github.com/twitter/bootstrap/pull/6342, Stand: 12.07.2013 vgl. http://www.atlassian.com/de/software/jira, Stand: 12.07.2013 159 vom Autor aufgenommen 160 vgl. http://www.bugzilla.org/, Stand: 12.07.2013 161 vgl. http://www.redmine.org/, Stand: 12.07.2013 158 64 5 Entwicklung und Organisation 5.5.4 MANAGEMENT-SOFTWARE Management-Software ist ein weitgefasster allgemeiner Begriff für Software, die die Ausführung typischer Managementfunktionen vereinfacht. Ihr Funktionsumfang ist genauso breit gefächert wie die Vorstellungen davon, welche Aufgaben Teil des Managements sind (s. 5.2 FUNKTIONEN UND ROLLEN DES M ANAGEMENTS). Zu den häufigsten Managementfunktionen gehört das Sammeln, Gruppieren und Zuweisen von Arbeitspaketen. Dies kann über die bereits erwähnten Issue-Tracking-Systeme erfolgen oder über Task Manager bzw. ToDo Manager. Der Übergang zwischen einem IssueTracking-System und einem Task Manager ist fließend und sollte nicht zu streng genommen werden. Erstere sind meist etwas technischer und supportorientierter, letztere in der Visualisierung der Aufgaben häufig aufwendiger und managementorientierter. Verbreitete Task Manager sind Wunderlist, Things und OmniFocus. Für das Management von rAppid.js wird Asana verwendet.163,164,165,166 Ein Teil der Task Manager richtet sich an konkrete Entwicklungsmodelle wie Scrum (s. 5.4.5). In diesem Fall werden Arbeitspakete häufig als Planning Boards dargestellt. Eine für OSS-Projekte beliebte und freie Anwendung für Planning Boards ist Trello, genutzt u.a. vom Brackets Team. Projekte, welche nach dem Wasserfallmodell (s. 5.4.1) entwickelt werden, können durch sogenannte Gantt Charts visualisiert werden. Diese stellen zeitlich voneinander abhängige Aufgaben in einem Balkendiagramm dar. Microsoft Project legt einen großen Fokus auf Gantt Charts und ist unter Windows sowie im B2B-Bereich sehr verbreitet. 167,168,169 Durch die großen thematischen Überschneidungen lassen sich viele Funktionen von Task Managern durch Plugins in Issue-TrackingSysteme integrieren. Planning Boards können in Jira mit der offiziellen Erweiterung GreenHopper von Atlassian oder in GitHub mit dem inoffiziellen Huboard hinzugefügt werden. 170,171 162 vgl. http://www.mantisbt.org/, Stand: 12.07.2013 vgl. http://www.6wunderkinder.com/wunderlist, Stand: 15.07.2013 164 vgl. http://culturedcode.com/things/, Stand: 15.07.2013 165 vgl. http://www.omnigroup.com/products/omnifocus/, Stand: 15.07.2013 166 vgl. https://asana.com/, Stand: 26.08.2013 167 vgl. https://trello.com/, Stand: 15.07.2013 168 vgl. https://trello.com/board/brackets/4f90a6d98f77505d7940ce88, Stand: 15.07.2013 169 vgl. http://office.microsoft.com/de-de/project/, Stand: 09.09.2013 170 vgl. http://www.atlassian.com/de/software/greenhopper, Stand: 15.07.2013 171 vgl. http://huboard.com/, Stand: 15.07.2013 163 65 5 Entwicklung und Organisation 66 Abbildung 9 – Trello: Projektansicht von Brackets mit Panning B o a r d s 172 A b b i l d u n g 1 0 – M i c r o s o f t P r o j e c t : P r o j e k t a n s i c h t m i t G a n t t C h a r t s 1 73 Andere typische Aufgabengebiete von Management-Software sind das Erstellen und Verwalten von Meetings. Kernpunkt dieser Aufgabe ist eine gute Kalendersoftware, welche u.a. das Teilen von Terminen mit anderen Personen sowie das Betrachten der Zeitressourcen von Personen und Meetingräumen beinhaltet. Eine Komplettlösung für diese Aufgabe wäre Microsoft Exchange. Für einfache Zwecke genügt häufig Google Calendar. Wer lediglich einen gemeinsamen Termin finden muss, findet mit Doodle oder Moreganize eine Lösung.174,175,176,177 172 vgl. https://trello.com/b/LCDud1Nd/brackets, Stand: 26.08.2013 vgl. http://review.techworld.com/applications/3404323/microsoft-project-2013-review/, Stand: 12.09.2013 174 vgl. http://www.microsoft.com/exchange/2010/de/de/, Stand: 15.07.2013 175 vgl. https://support.google.com/calendar/answer/2465776, Stand: 15.07.2013 173 5 Entwicklung und Organisation Software als Komplettlösung wie Exchange, die das Verwalten und Kommunizieren von Personen bzw. Personengruppen für unterschiedliche Zwecke sowie bereits genannte oder folgende Werkzeuge beinhaltet, wird auch Groupware genannt. 178 5.5.5 NOTIZEN UND DOKUMENTE Ein wichtiger Bestandteil von Planungsaufgaben ist häufig das Verfassen, Sammeln und Durchsuchen von Notizen bzw. Dokumenten. Für diese Aufgaben kann auf klassische Schreibprogramme wie Microsoft Word zurückgegriffen werden. Bei kollaborativen Arbeiten empfiehlt sich die Nutzung von Cloud-Diensten wie Google Docs. 179,180 Software, welche weniger das eigenständige Verfassen als viel mehr das Sammeln und Durchsuchen von Informationen ermöglicht, wären nvAlt, Pocket oder Evernote. Sie können entweder komplett textorientiert sein oder konsumieren jegliche Dokumentformate bis hin zu Webseiten.181,182,183 Software, die sich auf das schnelle Verfassen von textbasierten Notizen konzentriert, ist in den letzten Jahren durch die distractionfree 184 Bewegung immer beliebter geworden. Sie basiert darauf, dass Software zur Eingabe von Text kaum oder keine grafische Benutzeroberfläche benötigt und Textauszeichnungen und -formatierungen nur durch Text selbst stattfindet. Zu diesem Zweck werden spezielle Auszeichnungssprachen wie Markdown angewandt.185,186 Beliebte Schreibprogramme für ablenkungsfreies Schreiben sind u.a. Byword, ZenWriter und Ommwriter.187,188,189 176 vgl. http://www.doodle.com/, Stand: 15.07.2013 vgl. http://moreganize.ch/, Stand: 16.07.2013 178 vgl. https://webmail.eva.mpg.de/ox6/help/de_DE/guide.chap.intro.html, Stand: 15.07.2013 179 vgl. http://office.microsoft.com/de-de/word/, Stand: 15.07.2013 180 vgl. https://support.google.com/drive/answer/49008, Stand: 15.07.2013 181 vgl. http://brettterpstra.com/projects/nvalt/, Stand: 15.07.2013 182 vgl. http://getpocket.com/, Stand: 15.07.2013 183 vgl. https://evernote.com/intl/de/, Stand: 15.07.2013 184 distraction-free (englisch „ablenkungsfrei“) 185 vgl. http://lifehacker.com/5687616/best-distraction+free-writing-application, Stand: 15.07.2013 186 vgl. http://daringfireball.net/projects/markdown/, Stand: 15.07.2013 187 vgl. http://bywordapp.com/, Stand: 15.07.2013 188 vgl. http://www.beenokle.com/zenwriter.html, Stand: 24.07.2013 189 vgl. http://www.ommwriter.com/, Stand: 15.07.2013 177 67 5 Entwicklung und Organisation 5.5.6 CONTENT MANAGEMENT SYSTEME Je umfangreicher die Verwaltung der Dokumente und je größer das Team, welches diese Dokumente betrachtet und editiert, desto eher stoßen die zuvor genannten Dokumentwerkzeuge an ihre Grenzen und der Bedarf an echten CMS wächst. CMS erlauben die komplexe Verwaltung von Daten jeglicher Art. Zu ihren Funktionen zählen: • • • • • • • eine Nutzerverwaltung mit Berechtigungssystem, die Möglichkeit Metadaten anzulegen, die einfache Versionierung der Dokumente (ohne manuell zu pflegendes VCS), die Nutzung von verschiedenen Endgeräten zum Betrachten der Dokumente, die kollaborative Bearbeitung von Dokumenten, Reviewfunktionen sowie die Erweiterbarkeit durch Plug-ins. Firmen verwenden CMS hauptsächlich innerhalb eines Intranets oder zumindest mit entsprechenden Accounts als Zugangsbeschränkung nach außen. Bei OSS-Projekten kann der Lesezugriff auf das CMS durchaus komplett öffentlich sein. Wiki-Software ist eine Sonderform der CMS, die sich zumeist am populären Wikipedia orientiert und eine ähnliche Benutzeroberfläche verwendet.190 Immer mehr Wiki- und Management-Software übernehmen dabei Konzepte sozialer Netzwerke wie bspw. Jive.191 Bekannte Wiki-Software sind Confluence und MediaWiki. Zu den populärsten CMS zählen WordPress, TYPO3 und Drupal.192,193,194,195,196 5.5.7 WEBSEITEN UND BLOGS Webseiten und Blogs überschneiden sich thematisch mit den zuvor genannten CMS. Sie sind im Wesentlichen die öffentliche Präsentation der Inhalte, die mittels CMS erstellt wurden. Deswegen steht 190 vgl. http://www.wikipedia.org/, Stand: 15.07.2013 vgl. http://www.jivesoftware.com/social-business/solutions/social-intranet/, Stand: 15.07.2013 192 vgl. http://www.atlassian.com/de/software/confluence/, Stand: 15.07.2013 193 vgl. http://www.mediawiki.org/, Stand: 15.07.2013 194 vgl. http://wordpress.org/, Stand: 15.07.2013 195 vgl. http://typo3.org/, Stand: 15.07.2013 196 vgl. https://drupal.org/, Stand: 15.07.2013 191 68 5 Entwicklung und Organisation in beiden Fällen häufig die gleiche Software dahinter. So ist WordPress zunächst als CMS speziell für Blogs entwickelt worden.197 Webseiten und Blogs können jedoch auch ohne CMS erstellt werden. Teilweise wird dafür wieder auf die Code-Hosting-Dienste zurückgegriffen. So bietet GitHub mit dem GitHub Pages Service die Möglichkeit statische Webseiten zu hosten. Durch OSS wie Jekyll lassen sich auf diese Weise selbst Blogs realisieren. Dieser Weg richtet sich hauptsächlich an Entwickler, welche mit GitHub, Git und Command Line Tools vertraut sind. Da die meisten Contributoren mehr oder weniger erfahrene Entwickler sind, ist dies eine durchaus preiswerte, robuste und flexible Alternative für OSS-Projekte um Webseiten zu pflegen.198,199 Projekte, welche GitHub Pages nutzen, sind bspw. Font-Awesome oder die MEAN Boilerplate.200,201 Unter 6 KOMMUNIKATION werden die inhaltlichen Unterschiede zwischen Webseiten und Blogs näher betrachtet. 5.5.8 BUILD SYSTEME Build Systeme haben das primäre Ziel aus Quellcode eine kompilierte auslieferbare Software zu erstellen. Je nach verwendeter Technologie und Einsatzzweck der Software kann dies u.a. folgende Punkte enthalten:202 • • • • • • • • Kompilieren von Quellcode Konkatenieren und Minifizieren von Skripten Kopieren oder Löschen von Dateien bzw. Ordnern Hinzufügen oder Entfernen von Metadaten Komprimieren von Assets Ersetzen von Texten Umbenennen von Dateien bzw. Ordnern Ausführen von Tests Bekannte Build Systeme sind make, Ant, Gradle und Grunt.203,204,205,206 197 vgl. http://en.support.wordpress.com/introduction/, Stand: 15.07.2013 vgl. http://pages.github.com/, Stand: 15.07.2013 199 vgl. http://jekyllrb.com/, Stand: 15.07.2013 200 vgl. http://fortawesome.github.io/Font-Awesome/, Stand: 15.07.2013 201 vgl. https://github.com/linnovate/mean, Stand: 15.07.2013 202 vgl. http://www.cs.virginia.edu/~dww4s/articles/build_systems.html, Stand: 15.07.2013 203 vgl. https://www.gnu.org/software/make/, Stand: 15.07.2013 204 vgl. http://ant.apache.org/, Stand: 15.07.2013 205 vgl. http://www.gradle.org/, Stand: 15.07.2013 206 vgl. http://gruntjs.com/, Stand: 15.07.2013 198 69 5 Entwicklung und Organisation Wichtig bei der Wahl des Build Systems ist die Beachtung des technischen Ökosystems innerhalb dessen die OSS-Entwickelt wird sowie die Zielgruppe der Contributoren. So wird Ant typischerweise in Java-basierten Projekten verwendet und Grunt bei Node.js- und Web-basierten Projekten. Dementsprechend richten sich Plugins beider Build Systeme und die Erfahrung der Contributoren an das jeweilige Ökosystem. 5.5.9 CONTINUOUS INTEGRATION Vereinfacht ausgedrückt ist eine Continuous Integration (CI) ein kontinuierlich laufendes Build System mit starker Integration in das VCS. Die CI reagiert über sogenannte Hooks207 auf zu committenden oder zu pushenden Quellcode im VCS in dem sie das Build System aufruft. Taucht während des Build-Vorgangs ein Fehler auf, so wird der Commit bzw. Push zurückgewiesen. Auf diese Weise wird das Risiko verringert, dass fehlerbehafteter Quellcode in die endgültige Software gelangt. Für OSS-Projekte ist CI eine sinnvolle Erweiterung. Quellcodeänderungen von Contributoren können zu jeder beliebigen Tageszeit durch die CI im Vorfeld kontrolliert werden. Fehler werden so frühzeitig entdeckt. Bekannte CI-Server sind Jenkins und Travis. Die Projekte rAppid.js und node-xmpp verwenden wegen der leichten Integration in GitHub Travis als CI-Server.208,209 5.6 ZUSAMMENFASSUNG In diesem Kapitel wurde Folgendes dargelegt: • • • • 207 OSS wird von Privatanwendern, Firmen und gemeinnützigen Organisationen entwickelt. Je nachdem welche Gruppe das Projekt initiiert hat, kann ihre Zielstellung, Organisation und Hierarchie sehr unterschiedlich ausfallen. Die Abstimmung innerhalb von OSS-Projekten erfolgt in der Regel (wohlwollend) diktatorisch, demokatrisch oder meritokratisch. Die Aufgaben des Managements decken Planung, Organisation, Personaleinsatz, Führung und Kontrolle ab. Das Management tritt in einer oder mehreren von bis zu zehn managementspezifischen Rollen auf. hook (englisch „Haken, hier: „Signal“, „Event“) vgl. http://jenkins-ci.org/, Stand: 16.07.2013 209 vgl. https://travis-ci.org/, Stand: 16.07.2013 208 70 5 Entwicklung und Organisation • • • • Die hohe Motivation der Contributoren ist einer der wichtigsten Vorteile von OSS-Projekten und sollte entsprechend gefördert werden. Für OSS-Projekte eignen sich agile Entwicklungsmethoden wie Scrum. Die technische Infrastruktur von OSS ist sehr komplex und deckt Bereiche des Managements, der Dokumentation und der Qualitätssicherung ab. Viele Probleme werden jedoch durch moderne Cloud-Dienste wie GitHub gelöst. Die technische Infrastruktur einer OSS sollte sich an den Erfahrungen der Contributoren orientieren. 71 6 Kommunikation 6 72 KOMMUNIKATION Der größte Mehraufwand bei der Entwicklung einer OSS im Vergleich zu einer proprietären Software entsteht bei der Kommunikation. Projektmitglieder arbeiten nicht mehr im gleichen Raum und haben sich häufig persönlich nie getroffen. Sie sprechen teilweise nicht in ihrer Muttersprache miteinander und kennen möglicherweise nicht die kulturellen Hintergründe des anderen. Der Aufwand einer intensiven Kennenlernphase lohnt sich kaum – die Beteiligungsdauer eines Contributors kann sich auf einen einzelnen Tag beschränken. Außerdem beginnt die Kommunikation bereits vor der ersten Contribution. Um die Übersicht bei der Kommunikation zu bewahren werden im folgenden Kapitel die gängigsten Kommunikationskanäle eines OSSProjekts vorgestellt. Es wird beschrieben welche Inhalte sie vermitteln sollten und an welche Zielgruppe sie sich richten. Zum Abschluss wird der Community Manager vorgestellt, welcher für die Pflege und Qualität dieser Kanäle verantwortlich ist. 6.1 WEBSEITEN UND BLOGS Projektwebseiten sind häufig die zentrale Anlaufstelle jeglicher Projektkommunikation, sei es nach außen (Presse, User) oder nach innen (Contributoren) und zählen damit zu den wichtigsten Kommunikationskanälen. Sie enthalten Inhalte für alle Zielgruppen und Stakeholder des Projekts. Auf Grund der Menge an Informationen, die eine Webseite enthält, lohnt es sich sogenannte Contents Audits bzw. Content Inventories anzulegen, also eine Auflistung aller Inhalte der Seite. Diese können zusätzlich nach Interessengruppen und Wichtigkeit geordnet werden. 210 Bei der Entwicklung der Projektwebseite können die gleichen Strukturen genutzt werden, die auch bei der Entwicklung der OSS zum Einsatz kommen. So können aus den Content Audits Anforderungen bzw. User Stories erstellt werden, welche in Sprint Backlogs festgehalten und in anschließenden Sprints abgearbeitet werden. Dies ist jedoch mit einem gewissen Aufwand verbunden und eignet sich nur für größere Projekte. Es ist auch möglich, dass sich ein komplett anderes Team an Contributoren um die Webseite kümmert, z.B. weil ein OSS-Projekt in C++ entwickelt wird und die C++ Contributoren wenig Erfahrung mit Webtechnologien haben. Falls Content Audits und komplette Entwicklungsmodelle zu aufwändig für die Webseite sind, so genügt als Start ein einfaches 210 vgl. http://uxmastery.com/how-to-conduct-a-content-audit/, Stand: 16.07.2013 6 Kommunikation Brainstorming und eine Checkliste an Anforderungen, die die Webseite erfüllen muss:211 • • • • • • • • • • Was macht diese Software eigentlich? Wo kann ich die Software downloaden? Für welches Betriebssystem ist die Software? Kann ich die Software überhaupt nutzen? Wann war das letzte Update der Software? Wo finde ich einen Kontakt zu den Entwicklern? Wie kann ich als Contributor am Projekt teilnehmen? Wo finde ich Logos und anderes Pressematerial? Wo melde ich Bugs? Wo finde ich die Dokumentation? Wie finde ich Informationen (Suchfeld)? Zusätzlich zur Webseite verwenden viele Projekte einen Blog, welcher für zeitlich geordnete Nachrichten und Ankündigungen verwendet wird. Hier werden Informationen zu neuen Releases, Vorstellungen zu spannenden Projekte und aufbereitete Changelogs veröffentlicht. Kommentarformulare ermöglichen zudem einfache Nachfragen zu einem Thema. Neben der Erstellung der Webseite sind klassische SEO und Marketing Aufgaben von Bedeutung. Warum sollte man eine Webseite oder die OSS-Entwickeln, wenn sie niemand findet? SEO ist ein zu breites Feld, um innerhalb dieser Arbeit genauer darauf einzugehen. Wichtige Ausgangspunkte guter SEO Arbeit sind ein sauberes Markup und nützliche Metainformationen wie XML Sitemaps, um eine gute Indexierbarkeit für Suchmaschinen zu ermöglichen. Dazu gehört u.a. der Verzicht auf proprietäre Formate wie Flash. Wichtig sind ebenfalls eine hohe Erreichbarkeit und Stabilität der Server sowie eine gute Performance, welche bspw. mittels Googles PageSpeed-Tools getestet werden kann. Auch stabile und lesbare URLs verbessern die Reichweite der Webseite. In den letzten Jahren wurden außerdem Responsive Designs für mobile Endgeräte und die Integration in soziale Netzwerke wichtiger. 212,213 Egal wie lang die Liste an SEO Maßnahmen ist, wichtig ist die Messbarkeit der Reichweite der Webseite. Dies erfolgt mit Webanalysewerkzeugen. Zu den populärsten SEO Analysewerkzeugen zählen Google Analytics und Piwik.214,215 211 vgl. Prokop, Open Source Projektmanagement, 2010, S. 163 ff. vgl. https://developers.google.com/speed/pagespeed/, Stand: 16.07.2013 213 vgl. http://www.clickminded.com/seo-checklist/, Stand: 16.07.2013 214 vgl. http://www.google.com/analytics/, Stand: 16.07.2013 215 vgl. http://de.piwik.org/, Stand: 16.07.2013 212 73 6 Kommunikation 6.2 MAILINGLISTEN 74 UND FOREN Einen direkteren Austausch von Informationen als Webseiten ermöglichen Mailinglisten und Foren. Diese können unterschiedliche Schwerpunkte haben z.B. die Besprechung zukünftiger Funktionen oder das Anbieten von Support. E-Mails sind dabei meist der kleinste gemeinsame Nenner aller Kommunikationsmittel. Um eine E-Mail zu schreiben, muss in der Regel niemand eine zusätzliche Software installieren, einen neuen Account anlegen oder ein neues Programm erlernen. Die Kommunikation über E-Mails funktioniert asynchron. Zur Beantwortung einer E-Mail kann sich ein Nutzer beliebig viel Zeit nehmen und andere Nutzer sehen nicht, ob man gerade online ist oder nicht. Öffentliche E-Mailkommunikation mit vielen Personen gleichzeitig sollte über Mailinglisten-Software wie GNU Mailman oder Google Groups erfolgen, welche An- und Abmeldevorgänge als Schutz vor Spam bieten. 216,217 Mailinglisten sind Foren sehr ähnlich, was die Art der Kommunikation nach Themen angeht. Foren sind jedoch meist in sich geschlossene Systeme, welche eigene Accounts erfordern. Dies ermöglicht speziellere und häufig frei anpassbare Funktionen, die innerhalb der Foren eingesetzt werden können. Eine bekannte erweiterbare Forensoftware ist phpBB.218 Je nach Umfang der Kommunikationsmöglichkeiten des IssueTracking-Systems kann dieses durchaus auch als rudimentäres Forum betrachtet werden, in welchem jedes „Thema“ ein „Issue“ repräsentiert. Es können auch existierende Foren zu Diskussionszwecken verwendet werden. Eines der bedeutendsten Supportforen für Entwickler ist StackOverflow .219 Verwendet man ein Forum eines Drittanbieters, verliert man jedoch ein gewisses Maß an Kontrolle über die dort verfassten Daten. Nicht immer lassen sich die Daten im Nachhinein exportieren und sichern. Durch ihre Öffentlichkeit und beliebig große Anzahl an Nutzern laufen Mailinglisten und Foren Gefahr Opfer des Bikesheddings220 zu werden. Die Metapher des Bikesheddings beschreibt eine sinnlose Diskussion, in welcher sich jeder Gesprächsteilnehmer darüber einig ist einen Fahrradschuppen zu bauen, aber jeder eine andere Farbe 216 vgl. http://www.gnu.org/software/mailman/, Stand: 16.07.2013 vgl. https://groups.google.com/, Stand: 16.07.2013 218 vgl. https://www.phpbb.com/, Stand: 16.07.2013 219 vgl. http://stackoverflow.com/, Stand: 16.07.2013 220 bike shed (englisch „Fahrradschuppen“) 217 6 Kommunikation 75 für die Wände verwenden möchte. Da man sich nicht auf eine Farbe einigen kann, wird endlos weiter diskutiert und der Fahrradschuppen somit nie gebaut. Es ist Aufgabe des Project Leads oder des Community Managers (s. 6.9) nicht zielführende Diskussionen zu unterbinden. 221 6.3 INTERNET RELAY CHATS UND INSTANT MESSENGER Falls der asynchrone Kommunikationsstil von Mailinglisten und Foren für ein Gespräch nicht ausreicht, werden Internet Relay Chats (IRCs) oder Instant Messenger (IMs) eingesetzt. Sie können im Zweifelsfall ein Gespräch unter vier Augen ersetzen und ermöglichen einen schnellen Informationsaustausch. IRCs sind textbasierte Chatsysteme mit unbegrenzter Teilnehmerzahl. Sie sind deswegen meistens öffentlich zugängliche Diskussionsorte zu einem bestimmten Thema, ermöglichen aber auch das Versenden privater Nachrichten. Aufwendigere private Unterhaltungen zwischen einer begrenzten Teilnehmerzahl lassen sich durch IMs realisieren. So lassen sich abhängig vom gewählten IM Video- und Audioübertragungen, Dateitransfers sowie das Einbinden von Bildern direkt im Chatfenster realisieren. IMs eignen sich damit ideal für kurze Nachfragen, aber auch für längere Abstimmungen mit einzelnen Personen. Bekannte IRC-Clients sind mIRC, Pidgin und Adium . Verbreitete IMs sind Skype, Google Hangouts und Facetime.222,223,224,225,226,227 Für Unternehmen interessant ist das IM-ähnliche und kostenpflichtige Campfire, welches komplett webbasiert ist und für Gruppenchats optimiert wurde.228 6.4 ROADMAP Eine Roadmap ist der Entwicklungszeitplan einer OSS. Dieser kann grob oder detailliert formuliert und öffentlich oder privat sein. Es ist ratsam eine Roadmap in irgendeiner Form öffentlich zu präsentieren. Dies gibt allen Usern einer OSS die Gewissheit, dass sich 221 vgl. http://bikeshed.com/, Stand: 25.07.2013 vgl. http://www.mirc.com/, Stand: 22.07.2013 223 vgl. http://pidgin.im/, Stand: 22.07.2013 224 vgl. https://www.adium.im/, Stand: 22.07.2013 225 vgl. http://www.skype.com/de/, Stand: 22.07.2013 226 vgl. http://www.google.com/hangouts/, Stand: 22.07.2013 227 vgl. http://www.apple.com/de/mac/facetime/, Stand: 22.07.2013 228 vgl. http://campfirenow.com/, Stand: 22.07.2013 222 6 Kommunikation 76 die Software noch weiterentwickelt und in welche Richtung diese Entwicklung geht. Innerhalb der Roadmap sollten nur dann konkrete Termine genannt werden, wenn diese mit Sicherheit eingehalten werden können. Andernfalls sind die User enttäuscht. Es können auch problemlos mehrere Roadmaps gleichzeitig geführt werden: eine öffentliche und eine private. So kann die private Roadmap zur besseren Planung der Entwicklung detaillierter sein und die User sind nicht enttäuscht, wenn sich der Einbau einer Funktion verspätet, da sie es nicht erfahren. Nicht jedes Projekt benötigt dabei eine dedizierte Roadmap in textlicher oder tabellarischer Form. Je nachdem wie sie aufgebaut sind, repräsentieren Issue-Tracking-Systeme oder Planning Boards eine Art von Roadmap. So können Tickets und Aufgabenpakete festen Meilensteinen zugeordnet werden und zeigen einen zeitlichen Ablauf der Entwicklung. In diesem Fall sollten die Systeme bzw. Boards jedoch gut gepflegt und entsprechend beschriftet sein, damit sie von allen Usern schnell erfasst werden können. 6.5 ZEITSCHRIFTEN UND ONLINEMAGAZINE Ein weiterer wichtiger Kommunikationskanal sind Zeitschrift und Onlinemagazine. Die Relevanz klassischer Printzeitschriften ist in den meisten Fällen nur bei größeren OSS-Projekten gegeben. So gibt es mehrere Magazine, welche sich komplett mit Linux auseinander setzen. Aber auch über rAppid.js wurde bereit in der dotnetpro berichtet. Eine OSS-nahe populäre Zeitung ist die c't des Heise Zeitschriften Verlags, welche je nach Thema auch kleinere Projekte vorstellt.229,230,231,232 Mehr Erfolg auf Veröffentlichung eines Artikels über die eigene OSS versprechen dagegen Onlinemagazine wie heise online, Golem oder t3n. Durch geringere Produktionskosten können online mehr Artikel zu unterschiedlichen Themen veröffentlicht werden. 233,234,235,236 Für kleine Projekte ist es sinnvoll befreundete Blogger über eine OSS schreiben zu lassen. Viele Entwickler sind selbst Blogger, welche wiederum andere Blogger kennen. Ab einer gewissen Zahl an Contri- 229 vgl. http://www.linux-magazin.de/, Stand: 22.07.2013 vgl. http://www.linux-user.de/, Stand: 22.07.2013 231 vgl. http://blog.rappidjs.com/2013/08/article-about-rappidjs-in-dotnetpro.html, Stand: 26.08.2013 232 vgl. http://www.heise.de/ct/, Stand: 22.07.2013 233 vgl. http://www.heise.de/, Stand: 22.07.2013 234 vgl. http://www.golem.de/, Stand: 22.07.2013 235 vgl. http://t3n.de/, Stand: 22.07.2013 236 vgl. http://suite101.com/article/print-vs-online-magazines-a155014, Stand: 04.09.2013 230 6 Kommunikation butoren ist ein kleines Blogging-Netzwerk für ein OSS ein Selbstläufer. Diese Eigendynamik kann beschleunigt werden, indem man selbst als Blogautor tätig wird und eigene Artikel verfasst. Damit ist nicht unbedingt ein Blog über das Projekt selbst gemeint, sondern ein eigenständiger Blog, welcher sich auch mit anderen verwandten Themen beschäftigen kann. 6.6 DOKUMENTATION Unabhängig vom eigentlichen Kanal ist die Dokumentation der OSS der wichtigste Inhalt, der vermittelt werden sollte. Je nach Art und Umfang der OSS kann die Pflege der Dokumentation aufwändiger sein als die eigentliche Entwicklung der Software. Die Dokumentation richtet sich an unterschiedliche Zielgruppen. Sie richtet sich an neue User, welche eine Installationsanleitung benötigen, genauso wie an erfahrene User, die die spezifische Signatur einer Funktion suchen. Sie richtet sich aber ebenso an Contributoren, welche bspw. den Code Style Guide nachlesen möchten. Typische Formen einer Dokumentation sind: 237 • • • • • 237 238 API-Referenz: Eine Auflistung aller Entwicklungsschnittstellen mit Erklärungen zu ihrem Einsatz. Sie ist besonders für Contributoren wichtig oder wenn die Zielgruppe der User selbst Entwickler sind. Frequently Asked Questions (FAQ): Sollte eine bestimmte Frage eines Users oder Contributoren mehrfach an den Autoren gestellt werden, sollte er diese mit einer Antwort unmittelbar innerhalb eines öffentlichen FAQs festhalten. Taucht die Frage ein weiteres Mal auf, kann er so auf das FAQ verweisen und spart Zeit. Guidelines: Guidelines richten sich in der Regel an Contributoren. Hier werden unter anderem die Coding Style Konventionen festgehalten. Handbuch: Handbücher beinhalten die zuvor genannten Punkte in ausführlich beschriebener textlicher Form. Druckausgaben eines Handbuchs, erscheinen häufig in Kooperation mit einem Verlag wie bei Pro Git. Handbücher versuchen alle bzw. die meisten Problemfälle einer OSS abzudecken.238 How-to: Ein How-to ähnelt einem kurzen Handbuch. So beschriebt es vgl. Prokop, Open Source Projektmanagement, 2010, S. 201 f. vgl. http://git-scm.com/book/de, Stand: 22.07.2013 77 6 Kommunikation • • • • • • ebenfalls eine Problemlösung in Form eines Fließtexts. Es ist meist mit einem Beispiel verbunden und richtet sich häufig an Laien. Knowledge Base: Eine Knowledge Base ist das Referenzverzeichnis zu jeglicher Art von Dokumentationen. Es verweist auf FAQs, Guidelines oder How-tos gleichermaßen. Hierfür ist meist die Wiki-Software zuständig (s. 5.5.6). Manpage: Manpages sind speziell aus dem Unix-Umfeld stammende knappe Beschreibung der Verwendung eines Software. Online-Hilfe: Die Online-Hilfe bezeichnet in diesem Fall eine kontextsensitive Hilfesuche in der Knowledge Database bei der Verwendung der Software selbst. Referenzkarten: Sie beschreiben in kurzen Zusammenfassungen wichtige Funktionen der Software. Durch ihre geringe Größe können sie ausgedruckt am Arbeitsplatz verwendet werden. Sie sind auch unter dem englischen Begriff cheat sheet bekannt. Screencasts: Screencasts sind How-tos sehr ähnlich, jedoch nicht textbasiert sondern in Videoform. Besonders die Bedienung komplexer Oberflächen lässt sich häufig innerhalb eines Videos besser demonstrieren als per Text. Tutorials: Tutorials sind weniger problembezogen als ein How-to und richten sich an Fortgeschrittene und Laien gleichermaßen um einen Überblick über die Verwendung der Software zu schaffen. Eine genaue Trennung zwischen Tutorials und How-tos fällt schwer, jedoch sind Tutorials häufiger aufeinander aufbauend gestaltet als How-tos und bekommen damit den Charakter eines kurzen Handbuches. Eine weitere von Prokop nicht genannte Dokumentationsform sind Snippets. Snippets sind in der Regel kurze Auszüge eines Quellcodes, die einen bestimmten Problemfall lösen. Durch ihre Kürze sind sie häufig selbsterklärend. Eine Zusammenfassung von Snippets, die auch etwas ausführlicher ausfallen können, nennt man Cookbook. GitHub bietet einen speziellen Snippet Service namens Gists innerhalb dessen Snippets versioniert und kommentiert werden können.239 239 vgl. https://gist.github.com/, Stand: 22.07.2013 78 6 Kommunikation FALLSTUDIE Einige Bereiche der Dokumentation eines Projekts können sehr stark automatisiert werden. Bei rAppid.js wird bspw. die komplette Dokumentation der API über Metadaten im Quellcode generiert. Um den Dokumentationsaufwand gering zu halten, müssen Entwickler kreativ sein. Für rAppid.js wurde deswegen der Service try.rappidjs.com entwickelt. Bei diesem Dienst handelt es sich um einen Editor, der die Bearbeitung und das Anlegen neuer Dateien innerhalb des Browsers ermöglicht, um so schnell einfache Demoapplikationen mit rAppid.js zu entwickeln. Der Dienst soll in Zukunft stark ausgebaut werden, um bspw. das Speichern und Teilen der Prototypen zu ermöglichen. Die dabei entstehenden Code Snippets können dann in anderen Bereichen der Dokumentation als Beispiel verwendet werden oder aber bei Supportanfragen ein Problem besser beschreiben. Da der Editor mit rAppid.js selbst entwickelt wurde, dient er gleichzeitig als Machbarkeitsstudie und Aushängeschild des Frameworks und führte zum Einbau neuer Features. Fallstudie 8 – rAppid.js Die Dokumentation sollte immer aktuell sein, egal in welcher Form sie präsentiert wird. Für den User stellt es einen gewissen Aufwand dar, nach der Lösung eines Problems zu suchen. Hat er dies getan und die Dokumentation stellt sich als falsch heraus, so ist er frustriert. Inhalte, die eine Dokumentation abdecken sollte, sind u.a. Anwendungsbeschreibungen, Installationshinweise, Integrationshinweise in andere Systeme, Einstellungs- und Monitoringmöglichkeiten, sowie Migrations- und Wartungsanleitungen.240 6.7 SOZIALE NETZWERKE Soziale Netzwerke erfüllen die gleiche Funktion wie klassische Mundpropaganda. Im Idealfall geben sie eine Nachricht nach dem Schneeballprinzip weiter. Auf dem Weg dahin können Meinungen ausgetauscht, neue Kontakte geknüpft, Contributoren gefunden und User Feedback eingesammelt werden. Eine Win-win-Situation für alle. Da dieses System so reizvoll ist, ist es dementsprechend überlaufen. Nachrichten, die ein Rezipient als nutzlos empfindet, werden als 240 vgl. Prokop, Open Source Projektmanagement, 2010, S. 203 79 6 Kommunikation Rauschen oder Spam bezeichnet. Dieses Rauschen ist innerhalb sozialer Netzwerke sehr groß. Um eine Nachricht innerhalb eines Netzwerkes über eigene Kontakte hinaus zu verbreiten, müssen deswegen wichtige Multiplikatoren bzw. Meinungsmacher gefunden werden. Sie sind Autoritätspersonen innerhalb der Netzwerke und fungieren als natürliche Spamfilter. Nachrichten, welche von Multiplikatoren weitergegeben werden, werden als sinnvoll und nützlich erachtet. Das Identifizieren von Multiplikatoren ist in der Regel einfach. Es sind diejenigen Personen, die am häufigsten zitiert werden und die die meisten Follower/Freunde/Leser besitzen. Teilweise werden von den Communities auch Listen der wichtigsten Multiplikatoren ihrer jeweiligen Technologie erstellt und veröffentlicht, da jeder davon profitiert, gute und wichtige Nachrichten zu erhalten. Webentwickler finden bspw. unter Front-end Rescue wichtige Multiplikatoren.241,242 Hat man die benötigten Multiplikatoren identifiziert, müssen sie noch die entsprechende Nachricht weitergeben. Für diesen Weg gibt es allerdings keine goldene Regel. Multiplikatoren sind genau deswegen bedeutend für ein Netzwerk – sie geben nicht jede beliebige Nachricht weiter. Damit sie eine Nachricht als wichtig erachten, muss sie es auch wirklich sein. Sie dienen damit als Kontrollinstanzen des eigenen Projekts. Wenn sie eine OSS für unwichtig erachten, ist sie es vielleicht auch und ihr Entwicklungsaufwand wäre unnötig. Eine weitere Möglichkeit wäre es selbst zu einem Multiplikator zu werden. Dies ist mit viel Aufwand verbunden, jedoch nicht unmöglich. Möglicherweise ist man selbst oder ein Contributor bereits ein Multiplikator. Der zuvor genannte Tim Pritlove, einer der Initiatoren von Podlove (s. 4.4 ZIELGRUPPENANALYSE), ist bspw. ein wichtiger Multiplikator innerhalb der deutschen Podcast Community. Um soziale Netzwerke als Marketingkanal zu nutzen, ist es wichtig darauf zu achten, welche Zielgruppe das Netzwerk bedient. Während Facebook sich vornehmlich an private Kontakte richtet und eventuell noch als Auftritt für Firmen und Projekte dienen kann, findet man hier weniger aktive Entwickler für Unterhaltungen. Twitter eignet sich wiederum wegen der Kürze der Nachrichten gut für unpersönliche Kommunikation nach außen und beherbergt viele Entwickler. Google+ besitzt aus historischen Gründen viele aktive Webentwickler, da viele Google Mitarbeiter dieses Netzwerk nutzen. Andere Netzwerke, die sich eher an private Kontakte orientieren, 241 242 vgl. Prokop, Open Source Projektmanagement, 2010, S. 209 vgl. http://uptodate.frontendrescue.org/, Stand: 22.07.2013 80 6 Kommunikation wären Pinterest oder Foursquare. Das Netzwerk LinkedIn richtet sich im Gegensatz dazu an geschäftliche Kontakte. 243,244,245,246,247,248,249 Neben der Einteilung von sozialen Netzwerken in private und geschäftliche Kontakte können sie auch thematisch gruppiert werden. So richtet sich StackOverflow an supportsuchende Entwickler und GitHub an Entwickler, welche Projekte und Code austauschen möchten. Diese Einteilungen können beliebig fein sein. CodePen richtet sich bspw. ausschließlich an Webentwickler, welche Code austauschen möchten. Je spezialisierter ein Netzwerk ist, desto höher ist zwar die Relevanz, aber desto geringer ist auch die Streuwirkung. Dies sollte immer mit bedacht werden.250,251,252 Eine weitere Einteilungsmöglichkeit von Netzwerken richtet sich nach kulturellen und historischen Gegebenheiten. So ist Orkut von Google eine in Deutschland kaum bekannte Alternative zu Facebook, welche jedoch in Brasilien und Indien sehr beliebt ist. XING wiederum ist eine in Deutschland sehr beliebte Alternative zu LinkedIn. 253,254,255,256 Im Allgemeinen gilt: Die Größe von sozialen Netzwerken ist Fluch und Segen zugleich. Um gegen das hohe Rauschen an Informationen anzukommen, hilft es nur hochwertige und nützliche Inhalte zu veröffentlichen. Sie sollten sich direkt an die Zielgruppe richten und deswegen die Wahl des Netzwerkes beeinflussen. Es hilft wichtige Informationen weiterzugeben und anderen zu helfen, um so selbst ein bestmöglicher Multiplikator zu werden. 6.8 VERANSTALTUNGEN Veranstaltungen sind eine gute Möglichkeit, um ein OSS-Projekt bekanntzumachen und andere Entwickler persönlich kennenzulernen. 243 vgl. https://www.facebook.com/, Stand: 22.07.2013 vgl. https://twitter.com/, Stand: 22.07.2013 245 vgl. https://plus.google.com/, Stand: 22.07.2013 246 vgl. http://lifehacker.com/5842997, Stand: 22.07.2013 247 vgl. https://pinterest.com/, Stand: 22.07.2013 248 vgl. https://de.foursquare.com/, Stand: 22.07.2013 249 vgl. https://linkedin.com, Stand: 22.07.2013 250 vgl. http://stackoverflow.com/, Stand: 22.07.2013 251 vgl. https://github.com/, Stand: 22.07.2013 252 vgl. http://codepen.io/, Stand: 22.07.2013 253 vgl. http://orkut.com, Stand: 22.07.2013 254 vgl. http://social-networking-websites-review.toptenreviews.com/orkut-review.html, Stand: 22.07.2013 255 vgl. http://www.xing.com/, Stand: 22.07.2013 256 vgl. http://peopleandmedia.wordpress.com/2012/02/04/xing-versus-linkedin-fakten-zu-den-karrierenetzwerken/, Stand: 22.07.2013 244 81 6 Kommunikation Konferenzen sind meist mehrtägige Veranstaltungen auf denen Vorträge präsentiert und Seminare durchgeführt werden. Als Redner wird man dabei entweder eingeladen oder man muss sich bewerben. Allerdings kann man auch einfach als Teilnehmer der Konferenz Werbung für seine OSS machen, in dem man aktiv andere Teilnehmer anspricht. Thematisch kann eine Konferenz sehr breit gefasst sein oder sich an einer kleineren Zielgruppe orientieren. Während sich bspw. die FOSS.IN OSS-Projekten im Allgemeinen widmet, konzentriert sich die JSConf auf Projekte mit JavaScript.257,258 Konferenzen sind häufig mit hohen Teilnehmerkosten verbunden. Dafür wird garantiert, dass die Vorträge und Seminare eine hohe Qualität aufweisen und jeder Teilnehmer wirklich da sein will. Dies ist keine Nebensächlichkeit: Konferenzteilnehmer wollen von neuen Projekten, Themen und interessanten Personen erfahren. Sie sind dementsprechend offen und motiviert. Eine kostengünstigere und ungezwungenere Alternative zu Konferenzen sind so genannte BarCamps. Sie bezeichnen sich auch als Un-Konferenzen. Die Idee hinter BarCamps ist, dass sie von den Anwesenden selbst organisiert werden und dementsprechend jeder als Redner auftreten kann. Eine Agenda aller Präsentationen und Workshops wird in der Regel erst am Eröffnungstag selbst erstellt – nach Abstimmung aller Teilnehmer. Sie sind zudem in der Regel kostenlos. 259,260,261 Interessante und neue OSS-Projekte können innerhalb eines BarCamps somit informell und schnell präsentiert werden. Noch informeller als BarCamps sind Community-Treffen. Dies sind meist überregionale Treffen von Interessengruppen, welche sich bisher nur virtuell oder flüchtig kennen. Im Gegensatz zu Konferenzen und BarCamps steht das persönliche Kennenlernen von Gleichgesinnten im Vordergrund. Der Austausch über Neuigkeiten ergibt sich dabei von selbst. Ein Beispiel eines Community-Treffens ist die BeerJS, ein Treffen von JavaScript Entwicklern in diversen amerikanischen Städten. Sie finden in öffentlichen Bars statt, sodass das Halten von Vorträgen im Wesentlichen von vornherein ausgeschlossen wird. Der Name des Treffens verdeutlichen den informellen Charakter.262 257 vgl. http://foss.in/, Stand: 22.07.2013 vgl. http://jsconf.com/, Stand: 22.07.2013 259 vgl. http://t3n.de/news/grosser-barcamp-uberblick-alle-un-konferenzen-255252/, Stand: 23.07.2013 260 vgl. http://www.barcampsaigon.org/info/, Stand: 23.07.2013 261 vgl. http://systemscamp.org/was-ist-ein-barcamp/, Stand: 23.07.2013 262 vgl. https://github.com/beerjs, Stand: 23.07.2013 258 82 6 Kommunikation Eine weitere Veranstaltungsform sind die sogenannten User Groups, welche ebenfalls eine Interessensgruppe repräsentieren. Sie sind informell, kostenlos und von den Teilnehmern selbst organisiert. Anders als Community-Treffen finden User Groups häufig in kürzeren Abständen, in kleineren Gruppen und regionaler statt. Treffen können stammtischartig in der Kneipe stattfinden und komplett aus spontanen Gesprächen bestehen oder aber die Teilnehmer halten sich gegenseitig Vorträge und geben Workshops. Die Leipziger JavaScript User Group trifft sich bspw. einmal im Monat. Bei einem Treffen hält ein Teilnehmer einen Vortrag, über dessen Thema zuvor abgestimmt wurde.263 Die zuvor genannten Veranstaltungsformen dienen einer groben Klassifizierung. In der Praxis sind die Übergänge zwischen ihnen fließend. Ein kleines Community-Treffen könnte bspw. als große User Group angesehen werden. Die Klassifizierung sollte deswegen nicht zu streng betrachtet werden. FALLSTUDIE Seit 2006 ist Alexander Groß Mitorganisator der Leipziger .NET User Group, welche sich ungefähr einmal im Monat trifft. Durch die User Group konnte er viel Erfahrung im Bereich der Moderation und der Eventplanung lernen und betreute über die Jahre immer mehr Events. So begleitete er als Organisator zweimal die .NET Summer Camps in Leipzig. Nach dieser Erfahrung wuchs sein Wunsch eine Un-Konferenz zu veranstalten, um den Organisationsaufwand klassischer Konferenzen zu verringern. Anstatt Sprecher zu kontaktieren, eine Agenda aufzustellen, Slots zu reservieren und Notfallpläne zu entwickeln, falls ein Sprecher ausfällt, werden beim Developer Open Space alle Themen von den Teilnehmern selbst entwickelt und vorgetragen. Die Veranstaltung begann ursprünglich als .NETspezifisches Treffen, deckt aber mit ihren jetzigen bis zu 180 Teilnehmer alle Themenbereiche der Softwareentwicklung ab. Damit bei so vielen Teilnehmern die Diskussionen trotzdem noch zielführend sind, werden immer wieder neue Moderationskonzepte wie die Fishbowl oder das World-Café getestet. Ist jemand trotzdem nicht mit der Themenfindung zufrieden, empfiehlt Alexander das „Gesetz der zwei Füße“: gehe zu einer anderen Gruppe, die sich gerade mit einem anderen Thema beschäftigt. Das ist bei Un-Konferenzen nicht unhöflich, sondern erwünscht. „Bleibe nur so lange du etwas lernen oder beitragen kannst!“ und 263 vgl. http://leipzigjs.github.io/, Stand: 23.07.2013 83 6 Kommunikation lernen kann man bei einer Un-Konferenzen auf dem Flur und in der Kaffeepause ebenso wie bei einer Präsentation. Als wichtigste Motivation der Teilnehmer an einer Un-Konferenz sieht er neben dem Lernen auch das Netzwerken. Fallstudie 9 – .NET User Group und Developer Open Space Für Marcus Krejpowicz und Tony Findeisen zählen Präsentationen auf Veranstaltungen zum wichtigsten Kommunikationskanal. Trotz Vorstellungen von rAppid.js in Web- und Printmedien, welche eine wesentlich höhere Reichweite haben, ist das Feedback auf Veranstaltungen am ausführlichsten und persönlichsten. 6.9 COMMUNITY MANAGEMENT Die zuvor vorgestellten Kommunikationskanäle besitzen alle bestimmte Besonderheiten und sollten je nach Anforderung angewandt werden. Nach Betrachtung aller Kanäle sollte jedoch deutlich sein, dass eine gute Projektkommunikation unmöglich nur über einen Kanal durchgeführt werden kann. So wie ein Projekt über mehrere Kanäle Informationen verteilt, so konsumiert eine einzelne Person diese ebenfalls über mehrere Kanäle. Es ist demnach wichtig, dass über alle Kanäle hinweg ein einheitliches Community Management betrieben wird. Eine Community ist eine Gruppe im soziodynamischen Sinn. Dies sind Gruppen bestehend aus mindestens zwei Personen, welche häufig und über einen längeren Zeitraum direkt miteinander in Kontakt treten. Sie verfolgen ein gemeinsames Ziel und gleiche Interessen, wodurch ein Zugehörigkeitsgefühl entsteht. Dabei sind „Gruppen keine einfache Addition von Individuen [...], sondern soziale Einheiten mit speziellen Interaktionsprozessen“.264 Definition 4 – Community Das Gegenteil einer Gruppe im soziodynamischen Sinn ist eine zufällig zusammengestellte Gruppe ohne Zugehörigkeitsgefühl. Solch eine Gruppe ist bspw. die Warteschlange an einer Kasse. Eine OSS-Community umfasst Contributoren und User gleichermaßen. Gerade bei der Initiierung eines OSS-Projekts sollte darauf geachtet werden, dass das Entstehen einer Community ein Prozess ist, welcher mehrere Phasen durchläuft. In jeder Phase verhält sich 264 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 220 84 6 Kommunikation die Community anders. Nach Bruce Tuckman besteht dieser Entwicklungsprozess aus exakt vier Phasen: 265 1. Formierungsphase (forming): In dieser Phase lernen sich die Gruppenmitglieder kennen. Sie prüfen sich auf Gemeinsamkeiten und entwickeln dabei Sympathie oder Antipathie. Unsicherheit herrscht vor. 2. Sturmphase (storming): Nach dem Kennenlernen aller Teilnehmer entstehen erste Konflikte darüber, wer die Gruppe anführt. Machtkämpfe entstehen und können die Auflösung der Gruppe bedeuten. 3. Normierungsphase (norming): Aufbauend auf den vorherigen Machtkämpfen bilden sich feste Strukturen und Rollen innerhalb der Gruppe heraus. Gruppenmitglieder wünschen sich Harmonie und kooperieren miteinander. 4. Reifephase (performing): Die letzte und produktivste Phase beginnt. Die Kommunikation und die Arbeitsabläufe untereinander werden optimiert. Die Gruppe agiert als Einheit, um ein gemeinsames Ziel zu erreichen. Durch das Beitreten neuer Mitglieder kann die Gruppe wieder zurück in die Sturmphase versetzt werden. Die Stärke des Gruppenzusammenhalts wird als Kohäsion bezeichnet. Je stärker die Kohäsion, desto geringer die Gefahr, dass die Gruppe bei einem Konflikt zerbricht. Mitglieder einer hoch kohäsiven Gruppe sind zufrieden und motiviert. Sie messen der Gruppe eine hohe Bedeutung in ihrem Leben zu. In gewisser Weise ist diese Gruppe Teil ihrer Persönlichkeit. Dieses Identitätsdenken wird innerhalb von Firmen als Unternehmenskultur bezeichnet. Eine positive Unternehmenskultur führt damit zu einer höheren Kohäsion.266 Die Homogenität einer Gruppe steht ebenfalls im festen Zusammenhang mit der Kohäsion. Folgende Charakteristika ergeben sich dabei: 267 • • • 265 Je höher die Kohäsion ist, um so mehr gleichen sich die Gruppenteilnehmer untereinander an. Wenig konforme Mitglieder stoßen auf Ablehnung. Diese ist um so größer, je höher die Kohäsion ist. Neue Mitglieder werden nur aufgenommen, wenn sie möglichst konform mit der Gruppe sind. vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 223 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 226 267 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 227 266 85 6 Kommunikation • • • • Die Höhe der Kommunikation und der Kohäsion innerhalb der Gruppe stehen in direktem Zusammenhang. Hoch kohäsive Gruppen zeigen sich anderen gegenüber eher als feindselig. Die Abgrenzung nach außen ist stärker. Kleine Gruppen sind kohäsiver als große. Je stärker die Abhängigkeit der Teilnehmer untereinander ist desto höher ist die Kohäsion. Aufgabe des Community Managers ist es die Kohäsion der Community zu verbessern, um die Zufriedenheit und Produktivität zu steigern und gleichzeitig die dabei entstehenden Gefahren, wie die frühzeitige Ablehnung eines neuen Mitglieds, gering zu halten. Der Community Manager muss eine reibungslose und möglichst konfliktfreie Kommunikation ermöglichen. Es ist seine Aufgabe, dass Inhalte im entsprechenden Kommunikationskanal seiner Zielgruppe leicht auffindbar und aktuell sind. Er muss außerdem den Austausch von Informationen über mehrere Untergruppen hinweg koordinieren. Für die Contributoren filtert er das Feedback der User, um keine alten oder doppelten Beschwerden aufzunehmen. In umgekehrter Richtung erklärt er den User leicht verständlich die technischen Entscheidungen der Contributoren. Eine Community Manager gibt den unsichtbaren Kommunikationswegen zwischen diesen Gruppen ein Gesicht und agiert als zentrale Schnittstelle der Kommunikation. Seine Präsenz erleichtert neuen Communitymitgliedern die Orientierung. Gleichzeitig entstehen dadurch enge Abhängigkeiten. Fühlen sich User einem Community Manager sehr verbunden, so können sie ein OSS-Projekt schnell verlassen, sobald auch der Community Manager das Projekt verlässt. Es ist dabei ratsam die Arbeit auf mehrere Community Manager zu verteilen. Zu seinem Aufgabenbereich zählt das Qualitätsmanagement der Inhalte, die auf den unterschiedlichen Kommunikationskanälen ausgegeben werden. Sie sollten aktuell und einheitlich sein sowie frei von Rechtschreib- und Verständnisfehlern. Festgehaltene Verhaltensregeln, die sogenannte Netiquette, sorgen für einen höflichen und respektvollen Umgangston. Richtet sich das Projekt an ein internationales Publikum, sollte der Community Manager darauf achten, dass möglichst alle Beteiligten auf Englisch kommunizieren. Die wichtigste Aufgabe des Community Managers ist das Lösen von Konflikten innerhalb der Community. Dabei muss er zunächst positive Konflikte, welche zu konstruktivem Feedback führen können, von negativen und zerstörerischen Konflikten trennen. Anschließend muss er letztere möglichst ohne Verluste wie dem Austritt eines Mitglieds aus der Community lösen. Friedrich Glasl entwarf ein Phasenmodell der Konflikteskalation, um Konflikte besser einschätzen und auf sie reagieren zu können. 86 6 Kommunikation Innerhalb dieses Modells findet ein Konflikt immer zwischen zwei Parteien statt. Der Konflikt kann bis zu neun Stufen durchlaufen, wobei die entstehenden Schäden mit jeder Stufe zunehmen. Ziel des Community Managers ist es deswegen den Konflikt auf einer möglichst niedrigen Stufe zu lösen. Zu diesem Zweck können die neun Phasen in drei Ebenen unterteilt werden, welche den Konfliktausgang näher beschreiben, sowie in fünf Interventionsmethoden zur Lösung des Konflikts. 268,269,270 Die neun Phasen der Konflikteskalation sind: 1. Verhärtung: Die Differenzen zwischen den Parteien werden zum ersten Mal bewusst wahrgenommen. Die Meinungen verhärten sich, aber der Wunsch und der Glaube an die Kooperation überwiegen einem Konkurrenzdenken. 2. Debatte: Zwischen den Parteien findet eine Polarisation und Abgrenzung statt. Gegenargumente werden kaum noch wahrgenommen. Die Parteien wechseln kontinuierlich zwischen Kooperation und Konkurrenz. 3. Taten: Die Parteien glauben nicht mehr daran den Konflikt durch Gespräche zu lösen. Sie setzen ihre Meinung in die Tat um und versuchen dadurch Stärke zu demonstrieren. 4. Koalitionen: Jede Partei wirbt um neue Anhänger um ihre Überlegenheit zu demonstrieren. Die gegnerische Partei wird zum Feind erklärt. Objektive Wahrnehmungen sind nicht mehr möglich. 5. Gesichtsverlust: Der Feind soll öffentlich bloßgestellt und diffamiert werden. Der öffentliche Angriff gilt häufig als point of no return.271 6. Drohstrategien: Die Parteien drohen untereinander mit Sanktionen und führen sie durch. Erste große Schäden entstehen. 7. Scharmützel: Angriffe werden nun ohne Drohung durchgeführt. 8. Krieg: Mittlerweile ist nicht mehr das Durchsetzen der eigenen Überzeugung das Ziel, sondern die Vernichtung des Feindes. 268 vgl. Schreyögg, Koch, Grundlagen des Managements, 2010, S. 249 f. vgl. Weh, Enaux, Konfliktmanagement: Konflikte kompetent erkennen und lösen, 2008, S. 62 f. 270 vgl. Meinholz, Förtsch, Führungskraft Ingenieur, 2010, S. 402 ff. 271 point of no return (englisch „Punkt ohne Wiederkehr“) 269 87 6 Kommunikation 9. Gemeinsam in die Abgrund: Für die Zerstörung des Feindes wird die Selbstvernichtung in Kauf genommen. Die Einteilung der Konflikteskalationsphasen in Ebenen lautet: 1. Win-win: In den Phasen 1–3 können beide Parteien noch gewinnen. 2. Win-lose: In den Phasen 4–6 kann nur noch eine Partei gewinnen. 3. Lose-lose: In den Phasen 7–9 kann keine Partei mehr gewinnen. Je nach Phase lassen sich eine oder mehrere Interventionsmöglichkeiten durchführen: 1. Moderation: In den Phasen 1–3 kann ein Moderator als Konfliktlöser eingesetzt werden. Er dient den Parteien als Hilfe zur Selbsthilfe indem er Gespräche neutral überwacht und regt Lösungsvorschläge in Zusammenarbeit mit beiden Parteien an. Die Gespräche sind sachlich orientiert. 2. Prozessbegleitung: In den Phasen 3–5 sollen durch eine Prozessbegleitung aktuelle Probleme und verhärtete Ansichten erkannt und gelockert werden. Im Gegensatz zum Moderator betrachtet der Prozessbegleiter die Gespräche nicht mehr ausschließlich von außen, sondern nimmt auch an ihnen teil. 3. Mediation/Vermittlung: In den Phasen 5–7 muss die Konfliktlösung über einen Vermittler stattfinden, da die Parteien nicht mehr direkt kooperieren können. Der Mediator muss von beiden Parteien anerkannt sein und handelt Kompromisse aus. 4. Schiedsverfahren: In den Phasen 6–8 entscheiden nicht mehr die Parteien, sondern ein neutraler Richter über die beste Konfliktlösung. Seine Aufgabe besteht aus einer gründlichen Untersuchung der Ausgangssituation und der Wahl und Umsetzung der Lösung. 5. Machteingriff: In den Phasen 7–9 kann ein Machteingriff angewandt werden. Dieser kann komplett gegen den Willen und ohne Berücksichtigung der beiden Parteien erfolgen. Er bedarf auch nicht ihrer Zustimmung. Hierbei handelt es sich nicht mehr um eine echte Konfliktlösung, sondern ausschließlich um eine Schadensbegrenzung. Gerade in großen OSS-Projekten lohnt sich deswegen der Einsatz eines oder mehrerer dedizierter Community Manager, um die Kom- 88 6 Kommunikation munikation zu koordinieren. Projekte, die Community Manager erfolgreich einsetzen, sind u.a. MySQL und Qt.272,273 FALLSTUDIE Am Podcast Publishing System Podlove beteiligen sich viele verschiedene Personengruppen von Programmierern bis technikaffinen Podcastern. Das Projekt besteht neben dem PublishingWerkzeug aus einem Webplayer und mehreren Spezifikationen. Eric Teubert erklärt, welche Kommunikationskanäle für Unterprojekte und verschiedene Kommunikationspartner verwendet werden. Je ein Trello Board (s. 5.5.4 M ANAGEMENT-SOFTWARE) dient zur Kommunikation der Vision des Podlove Publishers und des Webplayers nach außen. Auf GitHub (s. 5.5.2 H OSTING-DIENSTE FÜR SOFTWAREPROJEKTE) werden Probleme und Aufgaben in Form von Issues gesammelt. Leider bietet GitHub neben „Offen“ und „Geschlossen“ keine weiteren Status für Issues wie „In Bearbeitung“ an. Der Kommunikationsaufwand ist hier deswegen manchmal größer als nötig. Über Twitter und App.net wird – teilweise mit privaten Accounts – wichtiges Feedback gesammelt. Skype dient durch seine Verbreitung als internes Chatsystem. Das asynchrone Verhalten von E-Mails hatte für Teambesprechungen nicht mehr ausgereicht. Über Mailinglisten werden aber noch abstrakte Themen wie die Spezifikationen geklärt. Ein Blog dient zur Verbreitung von Neuigkeiten und allgemeinen Projektinformationen. Über unregelmäßige Podcasts werden weitere Informationen zum Projektstand diskutiert. 274,275,276,277 Eric Teubert rät als Kommunikationskonzept „etwas [zu wählen] was für dich funktioniert“, weil man gerade zu Beginn häufig alleine entwickelt und zu viele Gedanken über die Kommunikation auch kontraproduktiv sein können. 272 vgl. Prokop, Open Source Projektmanagement, 2010, S. 69 vgl. Prokop, Open Source Projektmanagement, 2010, S. 90 274 vgl. http://podlove.org/, Stand: 25.08.2013 275 vgl. https://github.com/podlove/podlove-publisher/issues, Stand: 25.08.2013 276 vgl. https://trello.com/b/mFPdgi1P/podlove-web-player, Stand: 25.08.2013 277 vgl. https://trello.com/b/zB4mKQlD/podlove-publisher, Stand: 25.08.2013 273 89 6 Kommunikation Obwohl es für ein OSS-Projekt eher ungewöhnlich ist, findet bei Podlove ein großer Teil der Kommunikation auf deutsch statt, da viele Projektmitglieder deutschsprachig sind und sich das Projekt vermehrt an die deutsche Podcast Community richtet. Fallstudie 10 – Podlove 6.10 ZUSAMMENFASSUNG In diesem Kapitel wurde Folgendes dargelegt: • • • • • • • Es gibt asynchrone und synchrone Kommunikationskanäle. Erstere eignen sich für lang- und letztere für kurzfristige und dringende Absprachen. Ein Großteil der internen Kommunikation findet öffentlich statt. Die Dokumentation ist ein für Contributoren sehr wichtiger Kommunikationskanal, dessen Erstellung mit viel Aufwand verbunden ist. Multiplikatoren eines bestimmten Ökosystems helfen bei der Verbreitung der OSS. Zur Verbesserung der Kommunikation und einer effektiveren Entwicklung lohnt sich der Einsatz eines dedizierten Community Managers. Aufgabe des Community Managers sind die Koordination und Qualitätssicherung der Informationen in den Kommunikationskanälen sowie das Erkennen und Abwenden von Konflikten. Ziel der Kommunikation ist die Bildung einer hoch kohäsiven Community. 90 7 Monetarisierung 7 MONETARISIERUNG OSS wurde lange Zeit mit kostenloser Software (s. 3.2 FREIHEIT ODER FREIBIER?) gleichgesetzt. Seit einigen Jahren wird jedoch deutlich, dass OSS um komplette Geschäftsmodelle herum entwickelt werden kann. Es gibt viele Gründe, warum man für OSS Geld verlangen sollte. Neben dem Verdienen von Geld für den Lebensunterhalt der Entwickler müssen für die Entwicklung benötigte Soft- und Hardware finanziert werden. Ein weiterer Grund gilt dem Schaffen von Sicherheit und Seriosität: Software, welche Geld kostet, wird länger entwickelt und supported – so die Mutmaßung. Dies ist insbesondere im B2B-Umfeld wichtig. Die Möglichkeit einer Bezahlung der OSS z.B. in Form von Spenden erweitert auch den Kreis der Contributoren. Eine Person, welche OSS nutzt, aber weder Entwickler noch Grafiker ist und keinen Weg findet sich am Projekt zu beteiligen, kann dies zumindest auf diese Weise schaffen. Dies deckt sich mit der zuvor aufgestellten Definition: „Ein Contributor ist eine Person, die etwas zu einem OSS-Projekt beiträgt.“ (s. 4.1.1 CONTRIBUTOR) Dieses Etwas kann auch Geld sein. Welche Gründe auch zur Monetarisierung von OSS führen – kommerzielle OSS sind ein fester Bestandteil der Technikindustrie geworden. Geschäftsmodelle, welche komplett auf der Entwicklung von OSS aufbauen, nennt man Professional OSS, kurz POSS. Erfolgreiche Vertreter der POSS-Bewegung sind MySQL und Red Hat.278,279,280 Im Folgenden seien Möglichkeiten der Monetarisierung von OSS genannt, die einzeln oder in Kombination verwendet werden können. 7.1 SOFTWARE Obwohl der Quellcode frei zugänglich ist, kann OSS wie normale Software verkauft werden. Zwischen dem öffentlichen Quellcode und der verwendbaren Software können beliebig viele und komplexe Schritte stattfinden. Der Quellcode muss gefunden, aus dem VCS ausgecheckt und die Software anschließend kompiliert werden. Für manche Nutzer einer OSS sind dies zu viele Schritte, um sie selbstständig durchzuführen. Für sie kann eine fertig kompilierte Software zum Kauf angeboten werden. Obwohl es theoretisch für sie möglich ist ohne zusätzliche Kosten die Software zu verwenden, willigen sie aus praktischen 278 vgl. http://wiki.pentaho.com/display/BEEKEEPER/1.+Why+Professional+Open+Source+Software, Stand: 31.07.2013 279 vgl. http://www.mysql.com/, Stand: 31.07.2013 280 vgl. http://www.redhat.com/, Stand: 31.07.2013 91 7 Monetarisierung Gründen dem Kauf zu. Dieser dient letzten Endes lediglich als Abkürzung. Ein Beispiel für diesen Finanzierungsweg ist LiveReload, welches sowohl im Mac App Store zum Kauf wie auch auf GitHub kostenlos zum selbstständigen Kompilieren angeboten wird.281,282 7.2 SERVICES Ein verbreiteter Monetarisierungsweg für OSS ist das Anbieten zusätzlicher entgeltlicher Dienste, welche die OSS um ihre Funktionen erweitern oder sie in die Cloud auslagert. Die Software wird in diesem Fall vom Entwickler der OSS auf seiner eigenen Infrastruktur ausgeführt und gewartet, aber sie wird vom Kunden bedient. Dies nennt man auch Software as a Service, kurz SaaS. Die angebotenen Services können sehr unterschiedlich aussehen. PhoneGap von Adobe stellt ein OSS-Framework dar, welches die Entwicklung von Apps mittels Webtechnologien für unterschiedliche Plattformen ermöglicht. Eines der dabei stattfindenden Entwicklungsschritte ist die Kompilierung der Apps, welche für viele verschiedene Plattformen entsprechend lang ausfällt und teilweise an die Entwicklungsumgebung gebunden ist. Adobe bietet deswegen den kommerziellen PhoneGap Build Service an, welcher diesen Kompilierungsschritt in die Cloud auslagert. So können alle Zielplattformen parallel kompiliert werden. Ein Entwickler unter Windows kann somit auch iOS-Apps erstellen. 283 Ein weiteres Beispiel wäre die Cloud9 IDE. Sie wird quelloffen entwickelt, aber ihre Benutzung findet über einen teilweise entgeltlichen Internetdienst direkt im Browser statt. Der Anwender erspart sich somit die Installation, Wartung und zukünftige Aktualisierungen.284,285 7.3 SYNERGIEN Eine schwer messbare und aufwendige Möglichkeit der Monetarisierung von OSS stellt das Aufbauen von Synergien zwischen verschiedenen Produkten einer Firma dar. Die OSS finanziert sich dabei nicht selbst, sondern über andere Produkte der Firma, deren Verkauf sich durch die Verbreitung der OSS steigert. 281 vgl. https://itunes.apple.com/us/app/livereload/id482898991?mt=12, Stand: 31.07.2013 vgl. https://github.com/livereload/LiveReload2, Stand: 31.07.2013 283 vgl. https://build.phonegap.com/, Stand: 31.07.2013 284 vgl. https://github.com/ajaxorg/cloud9, Stand: 31.07.2013 285 vgl. https://c9.io/, Stand: 31.07.2013 282 92 7 Monetarisierung Eine Firma, die viel auf Synergieeffekte setzt, ist Google. Google nahm 2012 50,2 Mrd. US$ ein. Davon stammen 43,7 Mrd. US$ allein aus Werbeeinnahmen – hauptsächlich über das Internet. Es ist in Googles Sinn möglichst vielen Menschen einen Zugang zum Internet zu ermöglichen und sie an Google-Dienste zu binden, um die Verbreitung von Werbung über Google zu maximieren.286 Mit den OSS Chrome, Chrome OS und Android hat Google mehrere Plattformen geschaffen, welche die Entwicklung von Webtechnologien fördern und den Zugang zum Internet erleichtern. Die enge Verzahnung zwischen Google-Diensten und Android lässt sich bereits auf einem unveränderten Startbildschirm des Betriebssystems erkennen: 287,288 Abbildung 11 – Android: Unveränderter Startbildschirm mit GoogleD i e n s t e n 289 Während sich die Google-spezifischen Apps manuell anordnen lassen, ist ihre Deinstallation nicht immer möglich und auch die Google-Suchleiste ist nicht ohne Softwareanpassungen entfernbar. Ihre Benutzung führt automatisch zu einer Suchergebnisseite, 286 vgl. http://investor.google.com/financial/tables.html, Stand: 31.07.2013 vgl. http://www.chromium.org/, Stand: 31.07.2013 288 vgl. http://source.android.com/, Stand: 31.07.2013 289 vgl. http://www.digitaltrends.com/cell-phone-reviews/google-nexus-4-review/, Stand: 31.07.2013 287 93 7 Monetarisierung welche wiederum Werbung enthält. Je höher die Verbreitung von Android, desto höher die Einnahmen durch Werbung und somit die Abhängigkeit zu anderen Google-Diensten. 7.4 HOSTING Zu den häufigeren Monetarisierungsmöglichkeiten zählt das Anbieten einer Hosting-Lösung für eine OSS. Das Hosting von Software ist häufig mit viel Aufwand und Erfahrung verbunden und stellt damit gerade für Privatanwender eine große Hürde dar. Aus diesem Grund bieten viele Firmen die Möglichkeit an ihre Software gegen Bezahlung zu hosten. Da die Software quelloffen ist, steht es aber jedem Nutzer frei, den Aufwand des Hostings selbst zu betreiben. Ein Beispiel für diese Art der Monetarisierung sind WordPress und Piwik.290,291 7.5 SUPPORT Ebenfalls sehr verbreitet ist die Variante für OSS bezahlten Support anzubieten. Dieser kann einzelne Bereiche wie das Aufsetzen, die Wartung oder die Verwendung der Software enthalten oder sich an Erreichbarkeiten und Verbindlichkeiten orientieren. So kann ein 24Stunden-Support teurer sein als ein zeitlich unverbindlicher Support. Ebenso kann der Kommunikationsweg per Telefon teurer sein als per Mail, weil er direkter ist. Der Support ist insbesondere für die Zielgruppe der Geschäftskunden wichtig, da diese aus finanziellen Gründen möglichst zeitnah Hilfe benötigen. Sencha, Entwickler mehrerer teilweise als OSS veröffentlichter JavaScript Frameworks, bietet einen mehrstufigen entgeltlichen Supportdienst an, welcher u.a. frühzeitigen Zugriff auf Bug-Fixes, CodeReviews und Telefonsupport beinhaltet.292 7.6 DUAL LICENSING Unter Dual Licensing versteht man den Vorgang ein und dieselbe Software sowohl unter einer open-source- als auch einer kommerziellen Lizenz zu vertreiben, wobei letztere durch ein Entgelt erworben werden können. Auf diese Weise können Firmen die OSS in Kombination mit geschlossener Software verwenden. 290 vgl. https://signup.wordpress.com/signup/, Stand: 02.08.2013 vgl. http://piwik.org/hosting/, Stand: 02.08.2013 292 vgl. http://www.sencha.com/support/, Stand: 02.08.2013 291 94 7 Monetarisierung Projekte, die auf Dual Licensing setzen, sind MySQL, Qt und Berkeley DB.293,294,295 7.7 PREMIUM CONTENT Premium Content in Form von Add-Ons, Plugins oder Themes stellen eine weitere Finanzierungsmöglichkeit von OSS dar. Auf diese Weise lässt sich der Funktionsumfang eines Produktes erweitern oder aber personalisieren. Die Entwickler von WordPress bieten bspw. mit Akismet ein zusätzliches entgeltliches Plugin an, um Spam abzuwehren. 296 Eine OSS kann auch zusammen mit kommerziellen Erweiterungen als komplett neue Distribution verkauft werden. So bietet Adobe ihre open-source IDE Brackets ebenfalls unter dem Namen Edge Code CC an, welche Teil einer kommerziellen Cloud Lösung ist.297 Der Mix von freien und entgeltlichen Inhalten wird als Freemium bezeichnet, eine Zusammensetzung aus Free und Premium. Eine andere Bezeichnung lautet open core software – eine Software, die nur im Kern quelloffen ist. 298 7.8 BOUNTIES Die meisten der bisher genannten Monetarisierungsmöglichkeiten richten sich hauptsächlich an OSS-Projekte, die von Firmen betreut werden. Eine neue Form der Finanzierung, welche auch in kleinen OSS-Projekten gut angewandt werden kann, sind Bounties.299 Bounties sind finanzielle Entlohnungen für den Einbau einer konkreten Funktion oder dem Lösen eines konkreten Fehlers. Entwickler haben keinen direkten Einfluss auf die Menge und Höhe an Bounties, da sie von Mitgliedern der Community ausgeschrieben werden. Durch die zusätzlich geringe Verbreitung können Bounties kaum als primäre Einnahmequelle verwendet werden. Sie haben allerdings den Vorteil, dass sie für die Community eine einfache Möglichkeit darstellen die Richtung eines Projekts zu beeinflussen, ohne selbst an der OSS mitzuentwickeln. 293 vgl. http://www.mysql.com/about/legal/licensing/oem/, Stand: 02.08.2013 vgl. http://qt-project.org/products/licensing, Stand: 02.08.2013 295 vgl. http://www.oracle.com/technetwork/database/berkeleydb/downloads/licensing-098979.html, Stand: 02.08.2013 296 vgl. https://akismet.com/plans/, Stand: 02.08.2013 297 vgl. http://html.adobe.com/edge/code/, Stand: 02.08.2013 298 vgl. http://www.linuxinsider.com/story/66807.html, Stand: 07.08.2013 299 bounties (englisch „Belohnungen“) 294 95 7 Monetarisierung Eine Plattform, die das Erstellen von Bounties ermöglicht, ist BountySource. Sie integriert sich in bestehende Issue-TrackingSysteme wie GitHub oder Trac. Auf diesem Weg wird das Lösen eines konkreten Tickets mit einer von der Community gespendeten Summe entlohnt.300 7.9 DONATIONS Eine Donation ist eine klassische Spende. Sie kann finanzieller, aber auch sachlicher Natur sein. Für die Abwicklung finanzieller Spenden gibt es mehrere technische Lösungen, welche z.B. über PayPal realisiert werden. Es existieren auch komplette Plattformen, die komplexe Abläufe wie das Spenden in Intervallen ermöglichen. Zu ihnen zählen Flattr und GitTip. Auch Astro und Podlove nehmen Spenden über Flattr an. 301,302,303,304,305,306 Spenden finden insbesondere bei eingetragenen Vereinen und kleinen Entwicklergruppen, den Developer und User Communities (s. 5.1.1 ORGANISATIONSMODELLE NACH STÜRMER), statt. Ein prominentes Beispiel ist die Mozilla Foundation, welche u.a. die Entwicklung des Browsers Firefox betreut. Sie finanzieren sich hauptsächlich über Spenden und versprechen durch ihre Arbeit im open-source Umfeld die Erschaffung von Standards und der Bewahrung eines freien Internets.307,308 7.10 FUNDING Der Begriff des Fundings beschreibt wortwörtlich übersetzt jegliche Art von Finanzierung eines Projekts. In der Regel wird unter Funding jedoch speziell die Finanzierung zu Beginn einer neuen Projektphase verstanden wie die Gründung eines neuen Unternehmens oder die Entwicklung einer neuen Software. Das liegt daran, dass das Funding vor allem als Vorfinanzierung eingesetzt wird, so lange sich das Projekt noch nicht durch eigene Maßnahmen finanzieren kann. Es ist jedoch nicht per se auf den Anfang einer Projektphase beschränkt. Fundings können einen internen oder externen Ursprung besitzen. Bei einem internen Ursprung werden sie z.B. über Ersparnisse der 300 vgl. https://www.bountysource.com/learn, Stand: 02.08.2013 vgl. Prokop, Open Source Projektmanagement, 2010, S. 196 302 vgl. https://www.paypal.com/de/cgi-bin/webscr?cmd=p/xcl/rec/donate-intro-outside, Stand: 02.08.2013 303 vgl. http://flattr.com/, Stand: 02.08.2013 304 vgl. https://www.gittip.com/, Stand: 02.08.2013 305 vgl. https://flattr.com/profile/Astro, Stand: 26.08.2013 306 vgl. http://flattr.com/thing/607995/Podlove, Stand: 26.08.2013 307 vgl. https://sendto.mozilla.org/page/contribute/join-mozilla?source=MozOrg-join, Stand: 05.08.2013 308 vgl. http://www.mozilla.org/de/about/manifesto/, Stand: 05.08.2013 301 96 7 Monetarisierung Projektgründer aufgebracht. Fundings mit einem externen Ursprung können in drei Formen unterschieden werden: • • • Funding durch Privatpersonen mit Crowdfunding Funding durch Unternehmen mit Venture Capital Funding durch den Staat und die öffentliche Hand mit Fördermitteln 7.10.1 CROWDFUNDING Crowdfunding ist ein noch recht junger Begriff, welcher vor allem durch die Plattform Kickstarter weltweit bekannt wurde. Er bezeichnet die Finanzierung durch möglichst viele Privatpersonen, die sogenannte Crowd. Dieser Vorgang findet dezentral, vorrangig über das Internet, statt. Ein realer Kontakt zwischen den privaten Investoren und den Projektinitiatoren ist dabei die Ausnahme.309 Crowdfunding ist aus vielerlei Hinsicht sehr attraktiv. Die Projektinitiatoren erhalten frühzeitig Feedback darüber, ob ihre Idee bei den Nutzern ankommt. Sie haben dabei weitestgehend freie Hand bei ihren Rahmenbedingungen und behalten zumeist die Hoheit über ihr Projekt. Die geforderten Rückgaben an die privaten Investoren sind übersichtlich und bestehen häufig aus der Zurverfügungstellung des zu entwickelnden Produkts, Mitspracherecht bei Prototypen, Merchandising und bevorzugtem Support. Eine echte Gewinnausschüttung wie bei klassischen Investoren findet nicht statt.310 Der Prozess ist auch aus Sicht des Community Managements (s. 6.9) interessant, da die frühe Beteiligung der Community am Projekt die Bindung und die Gruppenkohäsion fördert. Die Community steuert einen wesentlichen Beitrag zum Erfolg des Projekts bei und trägt gesteigerte Erwartungen. Nachteile sind, dass es unbekannte Projektinitiatoren schwer haben private Investoren von ihrer Idee zu begeistern. Durch die begrenzten Finanzierungsmöglichkeiten von Privatpersonen gegenüber Firmen ist die Höhe des Fundings bei Crowdfunding häufig kleiner als über das klassische Venture Capital. Außerdem reagieren Privatpersonen häufig noch empfindlicher auf Projektverzögerungen und -probleme als Unternehmen, da diese weniger Verständnis für interne Vorgänge besitzen auf das fertige Produkt als Vergütung warten anstatt auf den Erfolg des Projekts. Solche Diskrepanzen entstehen, wenn Privatpersonen die Investitionen in ein Projekt mit dem Kauf eines Produkts gleichsetzen. Dies führte bereits häufig zu Konflikten innerhalb der Community. Das soziale Phänomen des 309 310 vgl. http://www.kickstarter.com/, Stand: 05.08.2013 vgl. http://www.kickstarter.com/help/school#creating_rewards, Stand: 05.08.2013 97 7 Monetarisierung 98 songenannten Shitstorms droht – der Super-GAU für jeden Community Manager, in welchem sich die Community lautstark, aggressiv und ohne Vernunft gegen das Projekt wendet. 311,312 FALLSTUDIE Eine durch Crowdfunding finanzierte OSS ist die Bloggingplattform Ghost.313 Aktuelle Bloggingplattformen fallen häufig in zwei Extreme: entweder sind sie technisch einfach zu bedienen, aber funktional sehr überladen wie WordPress oder aber sie sind funktional leichtgewichtig, aber technisch komplex zu bedienen wie Octopress. Ghost soll das Beste aus beiden Welten sein: gut bedienbar, leichtgewichtig und funktional. Mit dieser Konkurrenzanalyse (s. 4.3) präsentierte das Ghost Team ihr Projekt auf Kickstarter. Die Marketingkampagne setzte einen großen Fokus auf OSS. Ghost nutzt intern viele OSS-Projekte und wird unter MIT License veröffentlicht. Dies wird Vorteil gegenüber WordPress herausgestellt. Außerdem wird sich das Projekt als gemeinnütziger Verein eintragen lassen, um die Unabhängigkeit des Projekts sicherzustellen. 314,315 Insgesamt wurden durch das Crowdfunding über 200.000 € zur Erstfinanzierung gewonnen. Da Ghost später unter MIT Lizense veröffentlich wird, setzt das zukünftige Finanzierungsmodell auf einen Premium Hosting Dienst (s. 7.4). Fallstudie 11 – Ghost Auch Podlove wird teilweise durch Crowdfunding finanziert und konnte auf diesem Weg bereits 6000 € einnehmen. 316 7.10.2 VENTURE CAPITAL Venture Capital ist Kapital, welches von Beteiligungsgesellschaften einem Unternehmen zur Verfügung gestellt wird. Beteiligungsgesellschaften können Einzelpersonen oder Firmen sein. Diese Fundingmethode wird verwendet, wenn klassische Kreditfinanzierungen durch Sicherheitsbedenken nicht durchgeführt werden können. Es wird deswegen auch Risikokapitel genannt. Risikokapitalgeber refinanzieren ihre Investitionen, indem sie zu einem späteren 311 vgl. http://www.kickstarter.com/blog/kickstarter-is-not-a-store, Stand: 05.08.2013 vgl. http://money.cnn.com/2012/12/18/technology/innovation/kickstarter-ship-delay/index.html, Stand: 05.08.2013 313 vgl. http://tryghost.org/, Stand: 22.08.2013 314 vgl. http://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform, Stand: 05.08.2013 315 vgl. http://octopress.org/, Stand: 22.08.2013 316 vgl. http://der-lautsprecher.de/ls011-podlove-publisher bei 6:22 Minuten, Stand: 05.08.2013 312 7 Monetarisierung 99 Zeitpunkt, wenn das Unternehmen profitabel ist, ihre Unternehmensanteile mit hoher Rendite verkaufen. Dies kann bei einem Börsengang, einer Fremdübernahme durch ein anderes Unternehmen oder durch den Rückkauf der Anteile durch die zuvor finanzierte Firma selbst stattfinden.317 Wie unter 4.2 ZIELE beschrieben, kann eines der Ziele von OSS das Sichern eines wertvollen Nischenmarktes sein. Dies ist mit dem eingangs erwähnten Risiko verbunden, welches viel Gewinn verspricht, aber klassische Kreditfinanzierungen nicht zulässt. Venture Capital wird deswegen immer häufiger Bestandteil von OSS-Projekten. Der Finanzierungsspielraum der Risikokapitalgeber ist häufig sehr groß. So erhielt Puppet Labs, Entwickler einer open-source Automationslösung, 30 Mio. $ Venture Capital vom Unternehmen VMware. Ein anderes Beispiel ist Meteor, ein quelloffenes Node.js Framework, welches 11 Mio. $ durch mehrere Beteiligungsgesellschaften einnahm. Obwohl dies Einzelbeispiele sind, zeigen sie das wirtschaftliche Potenzial von OSS.318,319 7.10.3 FÖRDERMITTEL Eine weitere Methode des Fundings sind Fördermittel aus öffentlicher Hand oder von privaten Stiftungen. Sie können direkt für die Entwicklung von OSS oder allgemein für Existenzgründungen gelten. Ein bekanntes Förderprogramm des Bundesministeriums für Wirtschaft und Technologie ist EXIST. Es richtet sich an alle Gründer in Deutschland. Manche Förderprogramme sind regional und thematisch beschränkt. So trifft die Förderung durch das Programm BayTOU ausschließlich für Neugründungen technologieorientierter Unternehmen in Bayern zu. Ein weiteres Beispiel wäre das österreichische Förderprogramm Netidee, welches ausschließlich für OSS gilt und die Beteiligung von Schülern zulässt.320,321,322 317 vgl. Jungwirth, Wissensabhängige Strategiewahl in der Venture-Capital-Industrie, 2006, S. 5 f. vgl. http://www.informationweek.com/cloud-computing/infrastructure/vmware-invests-30-million-in-puppetlabs/240146864, Stand: 06.08.2013 319 vgl. http://www.meteor.com/blog/2012/07/25/meteors-new-112-million-development-budget, Stand: 06.08.2013 320 vgl. http://www.exist.de/, Stand: 06.08.2013 321 vgl. http://www.startup-in-bayern.de/themenmenue/foerderung/zuschuesse/foerderungtechnologieorientierter-unternehmensgruendungen.html, Stand: 06.08.2013 322 vgl. http://derstandard.at/1375625792451/Netidee-Eine-Million-Euro-fuer-Internet-Geistesblitze, Stand: 06.08.2013 318 7 Monetarisierung 7.11 SPONSORING Eine Art der Finanzierung, welche sich besonders für OSS-Projekt ohne ein beteiligtes Unternehmen eignet, ist das Sponsoring. Das Sponsoring bezeichnet das Aufbringen von Geld- oder Sachleistungen oder die Bereitstellung eigener Entwickler eines Unternehmens für ein Projekt. Der Sponsor erhält als Gegenwert eine bessere Außenwirkung und Werbung. Teilweise kann er das Projekt auch beeinflussen, sichert aber auf jeden Fall dessen Erhalt. Dies kann für ihn zusätzlich von Vorteil sein, wenn er selbst Endbenutzer des Projekts ist. Manchmal dient das Sponsoring auch einem Erfahrungsaustausch. 323,324 Für rAppid.js konnten Marcus Krejpowicz und Tony Findeisen auf die Räumlichkeiten ihres Arbeitgebers Spreadshirt zurückgreifen. Im Gegenzug erhielt Spreadshirt die Möglichkeit ein komplexes WebFramework für eigene Applikationen zu verwenden, dessen Autoren in den eigenen Büroräumen sitzen.325 7.12 CONSULTING Consulting bezeichnet eine tiefgreifende Beratung und ist eine aktivere Form des Supports. Während der Support bereits bei einem einzelnen Nutzer über einen kurzen Zeitraum und bei einem einzelnen Problem greift, richtet sich das Consulting zumeist an eine Gruppe von Personen – einem Teil eines Unternehmens – und einer Reihe von Problemen – innerhalb eines Entwicklungsprozess – über einen längeren Zeitraum. Der Berater, also derjenige der das Consulting betreibt, begleitet die zu beratende Gruppe proaktiv und häufig vor Ort im Unternehmen. So sollen Probleme nicht erst beim Auftreten behandelt, sondern im Vorfeld möglichst vermieden werden. Ein wichtiger Bestandteil des Consultings ist die Schulung der Mitarbeiter des Unternehmens zu einem Thema.326 Beim Consulting handelt es sich um einen ressourcenintensiven und komplexen Supportprozess, welcher dementsprechend kostspielig ist. Da die Entwickler einer OSS das größte Wissen über ihre eigene Software besitzen, sind sie die erste Wahl um für die Software Consulting zu betreiben. Die Autoren und wichtigsten Contributoren einer OSS gründen deswegen nicht selten Consulting Agenturen, um ihre Arbeit an der OSS zu finanzieren. Dies eignet sich jedoch meist nur dann, wenn die OSS von Unternehmen und nicht ausschließlich von Privatpersonen eingesetzt wird. 323 vgl. http://lwn.net/Articles/222773/, Stand: 06.08.2013 vgl. http://www.aoemedia.com/open-source-sponsoring.html, Stand: 06.08.2013 325 vgl. http://blog.spreadshirt.net/de/2013/08/13/meet-a-spreader-tony-und-marcus/, Stand: 26.08.2013 326 vgl. Weßel, Basiswissen Consulting, 2013, S. 20 324 100 7 Monetarisierung Bekannte Consulting Agenturen für die OSS-Projekte Node.js und CouchDB sind The Node Firm respektive The Couch Firm.327,328 FALLSTUDIE Ziel des MSpec Frameworks ist die Vereinfachung von SoftwareTests. Als Maintainer des Projekts hat Alexander Groß viel Erfahrung im Bereich TDD gesammelt. Mit seinem Einsatz als Sprecher der .NET User Group und auf anderen Konferenzen konnte er sein Wissen an andere weitergeben und seine Bekanntheit als Experte in diesem Thema vor allem in der .NET Community erhöhen. Mittlerweile ist er mit der Consulting-Agentur GROSSWEBER selbstständig. Seine Arbeit an MSpec sieht er definitiv als Wettbewerbsvorteil und Alleinstellungsmerkmal: „TDD-Schulungen von jemandem der selbst ein TDD-Framework betreut.“ Seine langjährige Arbeit in diesem Bereich und seine Bekanntheit schaffen Vertrauen. Im Nachhinein ist es schwer zu sagen, wie sehr seine Tätigkeit im OSS-Umfeld den Weg in seine Selbstständigkeit beeinflusst hat, aber durch seine bereits vorhandene Reputation ist es definitiv einfacher geworden. Fallstudie 12 – MSpec 7.13 WERBUNG Auch über Werbung können OSS-Projekte Geld generieren. Neben der üblichen Bannerwerbung könnte dies z.B. durch Affiliate Links erfolgen. Das sind Links, die Nutzer zu einem Shop führen und dabei eine Provision zurückgeben, wenn der Nutzer dort einkauft. Beworbene Produkte sollten natürlich mit der OSS in Verbindung stehen und könnten bspw. Sachbücher zu diesem Thema sein. Werbung kann auch Teil des Sponsorings sein. So tritt das Unternehmen Bocoup sowohl als Sponsor als auch als Verteiler für Werbebanner bei dem OSS-Projekt Grunt auf.329 7.14 MERCHANDISING Merchandising von OSS-Projekten kann eine gute zusätzliche Einnahmequelle sein. Dabei erfüllt Merchandising zusätzlich Ziele des Marketings und Community Managements: Logos auf T-Shirts und Tassen verbreiten die Reichweite des Projekts und auch die Kohäsion 327 vgl. http://thenodefirm.com/, Stand: 06.08.2013 vgl. http://thecouchfirm.com/, Stand: 06.08.2013 329 vgl. http://gruntjs.com/, Stand: 06.08.2013 328 101 7 Monetarisierung der Gruppe verbessert sich, da Mitglieder der Community bereits optisch erkannt werden können. Dabei wird das Merchandising meistens über einen Zwischenhändler vertrieben, der einen Teil des Erlöses einnimmt oder aber als Sponsor auftritt. OSS-Projekte wie Joomla, Piwik oder Icinga betreiben Merchandising. Es gibt auch Onlineshops wie DevSwag, welche komplett darauf ausgerichtet sind Fanartikel für OSS zu vertreiben und einen Teil der Einnahmen an die Projekte zurückzugeben.330,331,332,333 7.15 MARKETING Die Entwicklung und Veröffentlichung von OSS als Marketingkanal generiert keine direkten Einkünfte, kann aber die Verbreitung anderer Produkte oder Projekte eines Unternehmens fördern. Dieser Effekt ist sehr ähnlich den Synergien (s. 7.3). Die einzelnen Projekte stehen jedoch in keinem direkten Zusammenhang zueinander und verursachen keine Wechselwirkungen. Bootstrap, das CSS-Framework von Twitter, steht bspw. in keinem direkten Zusammenhang mit dem eigentlichen Onlinedienst. Die Beliebtheit des Frameworks beeinflusst jedoch die Außenwirkung auf Entwickler positiv. Dadurch sind sie möglicherweise eher geneigt einen Twitter Client zu entwickeln, welcher wiederum mehr Benutzer an die Plattform binden könnte. Auch einzelne Entwickler profitieren durch das Marketing, das OSS verursacht. So wirkt sich die Beteiligung an OSS-Projekten positiv auf das eigene Portfolio aus. Manche Unternehmen wie die Berliner Agentur 6wunderkinder setzen bei einer Bewerbung sogar Erfahrung und Einsatz in OSS-Projekten voraus! 334 Dies ist auch die Auffassung von Astro: „OSS hilft einem bei der Jobsuche“ und kann so indirekt Gewinn erwirtschaften. 7.16 ZUSAMMENFASSUNG In diesem Kapitel wurde Folgendes dargelegt: • • 330 Die Monetarisierung von OSS kann direkt für die Software oder indirekt über andere Dienste oder Produkte erfolgen. Manche Monetarisierungswege eignen sich für kleinere Entwicklergruppen eher als für große von Unternehmen geleitete OSS-Projekte und umgekehrt. vgl. http://opensourcejoomla.spreadshirt.de/, Stand: 06.08.2013 vgl. http://www.ooshirts.com/piwik, Stand: 06.08.2013 332 vgl. https://www.icinga.org/merchandise/, Stand: 06.08.2013 333 vgl. http://devswag.com/, Stand: 06.08.2013 334 vgl. https://masterbranch.com/job/javascript-developer-6wunderkinder-berlin/1340, Stand: 06.08.2013 331 102 7 Monetarisierung • • • Die wirtschaftlich profitable Entwicklung von OSS hängt stark vom Geschäftsmodell eines Unternehmens ab. Entwickler und Endanwender sind stolz auf die Nutzung vom OSS. Sie sind dazu bereit Finanz- und Sachspenden aufzubringen und Merchandising zu erwerben. Die Entwicklung von OSS ermöglicht bessere Jobangebote. 103 8 Bewertung für Unternehmen 8 BEWERTUNG FÜR UNTERNEHMEN Mit dem zuvor gesammelten Wissen lassen sich nun folgende unternehmensrelevanten Merkmale zum Management und zur Entwicklung von OSS festhalten: • • • • • • • • • • • • • • OSS-Projekte besitzen neben Usern eine weitere Zielgruppe: Contributoren. OSS-Projekte können von Contributoren geforkt, verändert und auch wieder zusammengefügt werden. Ihr Beitrag an der OSS muss rechtlich geklärt werden. Die Wahl der Lizenz ist wichtig und teilt sich in strenge und freizügige Lizenzen. Der Führungsstil kann autoritär, demokratisch oder meritokratisch orientiert sein. An OSS-Projekten beteiligen sich Unternehmen, gemeinnützige Vereine und Privatpersonen gleichermaßen. Die Managementfunktionen bei OSS-Projekten sind prinzipiell identisch zu Projekten mit geschlossener Software. Die Motivation von Contributoren ist tendenziell höher als die von Angestellten. Das Entwicklungsmodell von OSS sollte agil sein. Die technische Infrastruktur sollte sich an den Vorlieben der Contributoren orientieren. Gutes Kommunikationsmanagement ist wichtig und aufwendig, da Contributoren räumlich getrennt arbeiten und unterschiedliche Erfahrungsstände und kulturelle Konventionen besitzen. Die Community gibt frühzeitig Feedback über Projektentscheidungen. OSS kann potentiell mehr Wissen kumulieren und so in schnellerer Entwicklung und besserer Wartung resultieren. Die hohe Reichweite von OSS ist gut für das Marketing und verbessert die Außenwirkung. Die Monetarisierungsmöglichkeiten reichen von kostenpflichtigem Support bis zu Spenden und ihre Eignung ist sehr projektspezifisch. Für Unternehmen ergeben sich daraus unterschiedliche Vor- und Nachteile. Profit aus OSS zu schlagen ist schwer und der OSS-Weg sollte nicht blind gegangen werden. Zuvor muss genau untersucht werden, welche Probleme existieren und ob sie durch OSS gelöst werden können. Dabei ist es wichtig zu beachten, dass OSS selten die alleinige Lösung darstellt. Entscheidend ist ihr Zusammenspiel mit anderen Bereichen des Unternehmens. 104 8 Bewertung für Unternehmen 105 FALLSTUDIE Um die Reichweite ihrer Plattform LiveCode zu verbessern startete die Firma RunRev eine große Marketingkampagne, um die Umstellung auf eine open-source Lizenz anzukündigen. Dies war aber nicht die einzige Maßnahme, die sie ergriffen haben. Die Marketingkampagne nutzten sie zusätzlich, um über Crowdfunding neues Kapital zu generieren. Außerdem entwickelten sie ein separates Lizenzmodell für kommerzielle Projekte, sodass ihr Geschäftsmodell im Einklang zur neuen Lizenz stand. Das Resultat sind über eine halbe Mio. € Einnahmen durch das Crowdfunding und eine Erhöhung der Downloadzahlen um bis zu 1000%.335,336 Fallstudie 13 – LiveCode Dieses Beispiel zeigt bereits, dass der gewinnbringende Einsatz von OSS ein sehr komplexer Vorgang ist. Das Geschäftsmodell des Unternehmens und der Weg in die open-source Kultur müssen zueinander passen. Außerdem muss der zusätzliche Aufwand, der bspw. durch die Kommunikation entsteht, fest eingeplant werden. Ein schlecht geführtes OSS-Projekt kann sonst sehr schnell kontraproduktiv wirken und zu einer schädlichen Resonanz führen. Für Unternehmen, die im OSS-Bereich unerfahren sind, ist es ratsam erst kleine Projekte zu veröffentlichen. Manche Untersuchungen besagen sogar, dass große und komplexe Projekte tendenziell besser in geschlossenen Systemen gelöst werden können, da in diesen restriktiver über einheitliche Standards entschieden werden kann.337,338 Trotz des Mehraufwandes bietet OSS zu viel Potenzial um sie zu ignorieren. Die Entwicklung von OSS fördert gezwungenermaßen den Einsatz guter, einfacher und moderner Standards. Wichtige Konzepte der agilen Softwareentwicklung wie ausführliche Tests und aktives und frühes Einsammeln von Nutzerfeedback entstehen auf einem natürlichen Weg. OSS kann sowohl zur Abgrenzung zu bestehenden Konkurrenten verwendet werden, die weiterhin geschlossene Software entwickeln, aber auch zu Annäherungen führen. So stehen AT&T, Canonical, HP, IBM , Cisco und viele anderen Unternehmen über die OpenStack Foundation in Verbindung.339 Nach Paul Graham wird die Qualität von proprietärer Software durch zu viele Abhängigkeiten, Regeln und Grenzen beeinflusst. Allein das 335 vgl. http://www.kickstarter.com/projects/1755283828/open-source-edition-of-livecode, Stand: 08.08.2013 vgl. http://livecode.com/blog/2013/06/19/transitioning-to-being-an-open-source-company/, Stand: 08.08.2013 337 vgl. http://www.cmswire.com/cms/information-management/open-source-vs-proprietary-software-there-is-noclear-winner-021752.php, Stand: 08.08.2013 338 vgl. http://www.securityweek.com/size-matters-when-open-source-code-quality-better-proprietary-software, Stand: 08.08.2013 339 vgl. http://www.openstack.org/foundation/companies/, Stand: 08.08.2013 336 8 Bewertung für Unternehmen OSS-Ökosystem unterliegt einem völlig darwinistischem Prinzip: die beste Software setzt sich durch.340 Aber ist OSS wirklich die bessere Software? 340 vgl. http://paulgraham.com/opensource.html, Stand: 08.08.2013 106 9 Ausblick 9 107 AUSBLICK In der Tat ist Qualität mittlerweile eines der wichtigsten Merkmale von OSS. Die jährliche „Future of Open Source Survey“ von Black Duck Software zeigt, dass Qualität der Hauptgrund für die Wahl von OSS ist. So zeichnet sich OSS durch zahlreiche Features und einer größeren Sicherheit aus. An zweiter Stelle steht die Vermeidung eines Vendor-Lock-in-Effekts und an dritter Stelle die erhöhte Flexibilität durch ein größeres Angebot an Software. Erst später folgen geringere Kosten als Begründung. Da es demnach schwieriger wird sich über die Qualität und den Preis der Software von der Konkurrenz zu differenzieren, müssen neue Geschäftsmodelle mit neuen USPs entworfen werden – wie z.B. das Anbieten des besten Services. Der Wechsel zu OSS dient demnach nicht zuletzt der Risikominderung. Einen Teil des eigenen Softwareportofolios als OSS zu veröffentlichen verringert die Gefahr, durch die eigenen einseitigen Geschäftsmodelle von der Konkurrenz überrannt zu werden. Auf der Gegenseite stehen laut der Umfrage Unerfahrenheit mit OSS, komplexere Wartung und Lizenzbedenken als größte Hürden in die OSS-Welt. Ebenfalls untersucht wurde die Monetarisierung von OSS. So sind die größten Einnahmequellen für OSS-orientierte Geschäftsmodelle besserer Support (s. 7.5) und zusätzliche Services (s. 7.2). 341,342 In welchem starken Wandel sich die Geschäftsmodelle von Softwarefirmen aktuell befinden illustriert das Beispiel des Traditionskonzerns Adobe. Das Unternehmen hat im Frühjahr 2013 angekündigt ihre weitreichende Softwarepalette nicht mehr über ein Kauf-, sondern nur noch ausschließlich über ein Mietmodell zu veräußern. Für Adobe bedeutet dies ein stetiges Einkommen im Gegensatz zu periodischen Einnahmen jeweils bei der Veröffentlichung einer neuen Softwareversion. Das Preisschild und die Versionsnummer einer Software werden nebensächlicher. Der Kunde erhält im Gegenzug ein stets aktuelles und in ständiger Entwicklung befindliches Produkt. Dies korrespondiert durchaus mit Geschäftsmodellen von OSS. 343,344 341 vgl. http://www.blackducksoftware.com/news/releases/seventh-annual-future-open-source-survey-resultsshow-culture-quality-and-growth, Stand: 08.08.2013 342 vgl. http://www.slideshare.net/blackducksoftware/the-2013-future-of-open-source-survey-results, Stand: 08.08.2013 343 vgl. http://www.adobe.com/cc/letter.html, Stand: 08.08.2013 344 vgl. http://thenextweb.com/insider/2013/05/06/after-nearly-10-years-adobe-abandons-its-creative-suiteentirely-to-focus-on-creative-cloud, Stand: 08.08.2013 9 Ausblick 108 Erfahrung in der Entwicklung von OSS zu sammeln, kann in Zukunft die Expansion eines Unternehmens sichern. Innerhalb der Softwareentwicklung herrscht ein Fachkräftemangel. Dabei gibt es weltweit viele aktive open-source Programmierer, die Erfahrung mit räumlich getrennter Arbeit und internationaler Kommunikation haben. Unternehmen, die sich diesem Fachkräftemarkt verschließen, verzichten womöglich auf wichtige Mitarbeiter. Dabei wird die sogenannte Remote Work, Telearbeit bzw. das Home Office bei Arbeitnehmern und -gebern immer beliebter. Laut dem Bundesverband Bitkom arbeiten bereits 21% aller Berufstätigen in Deutschland ausschließlich von zu Hause.345,346,347 Aber auch beim Remote Working gilt: Es muss zum Geschäftsmodell und der Unternehmenskultur passen. Die Vor- und Nachteile dieser Arbeitsform werden zurzeit hitzig diskutiert. Während Yahoo im Frühjahr 2013 Home Office für alle Angestellten verbot ging Microsoft den umgekehrten Weg und erlaubte es für alle. Welches Potenzial Remote Working birgt, zeigen Erfolgsgeschichten wie die von MySQL. So können nicht nur neue Mitarbeiter weltweit gesucht werden, auch bestehende Mitarbeiter werden nicht durch einen Umzug verloren. Größter Pluspunkt könnte aber das 24/7-Supportmodell sein: Da die Entwickler von MySQL weltweit agieren, können zu jeder Tageszeit Fragen entgegengenommen und Bugs gefixt werden. Ohne Outsourcing wäre das nur möglich, wenn man in jeder Zeitzone eine Niederlassung gründen würde… 348,349,350 Nicht zuletzt gilt OSS unter Entwicklern als sexy! Sowohl der weltweit am meisten genutzte Browser als auch das verbreitetste mobile Betriebssystem sowie die am häufigsten verwendete Servertechnologie sind OSS. Der Einsatz und die Entwicklung von OSS erhöht die Attraktivität des eigenen Unternehmens.351,352,353 Zuletzt sei zu erwähnen, dass ein weiterer Bereich der open-source Kultur in den letzten Jahren extrem an Popularität gewonnen hat: das Entwickeln von Hardware. Als Maker Movement wird die neue 345 vgl. http://www.arbeitsagentur.de/nn_27030/zentraler-Content/Pressemeldungen/2013/Presse-13-003.html, Stand: 08.08.2013 346 vgl. http://davidfischer.github.io/gdc2/#languages/All, Stand: 08.08.2013 347 vgl. http://www.bitkom.org/de/presse/8477_75865.aspx, Stand: 08.08.2013 348 vgl. http://www.nytimes.com/2013/02/26/technology/yahoo-orders-home-workers-back-to-theoffice.html?hpw, Stand: 09.08.2013 349 vgl. http://www.faz.net/aktuell/wirtschaft/unternehmen/home-office-fuer-microsoft-darf-man-ueberallarbeiten-12317332.html, Stand: 09.08.2013 350 vgl. Prokop, Open Source Projektmanagement, 2010, S. 67 ff. 351 vgl. http://www.webpronews.com/chrome-overtakes-ie-as-the-worlds-most-used-browser-2012-05, Stand: 09.08.2013 352 vgl. http://techcrunch.com/2013/08/07/in-the-smartphone-wars-its-ios-vs-android-and-windows-phone-vsthe-rest/, Stand: 09.08.2013 353 vgl. http://news.netcraft.com/archives/2013/07/02/july-2013-web-server-survey.html, Stand: 09.08.2013 9 Ausblick 109 Begeisterung bezeichnet, unter der Privatpersonen Konzepte und Ideen zum Bau von Hardware austauschen und diskutieren. Ausgelöst wurde diese Bewegung durch erheblich günstigere Verkaufspreise und einfachere Handhabung von 3D-Druckern und PhysicalComputing-Plattformen wie Arduino. Auch wenn sich diese Arbeit auf Software bezogen hat, lassen sich alle beschriebenen Prinzipien auf Hardware übertragen.354,355,356,357 In Zukunft werden Hardwarehersteller einen ähnlichen Wandel durchlaufen wie er derzeit bei Softwareunternehmen stattfindet. Von selbstgebauten WLAN Radios bis zu Möbeln aus dem 3D-Drucker: viele Produkte, für die man früher in ein Geschäft gegangen wäre, könnten in Zukunft mit einer Anleitung aus dem Internet selbstständig hergestellt werden.358,359 354 vgl. http://www.raisinggeeks.com/blog/maker-movement/, Stand: 09.08.2013 vgl. http://makezine.com/2013/06/03/why-the-maker-movement-is-here-to-stay/, Stand: 09.08.2013 356 vgl. http://www.nytimes.com/2010/09/14/technology/14print.html, Stand: 09.08.2013 357 vgl. http://www.arduino.cc/, Stand: 09.08.2013 358 vgl. http://www.instructables.com/id/Build-your-own-Wifi-radio/, Stand: 09.08.2013 359 vgl. http://www.nytimes.com/2013/06/20/technology/personaltech/home-3-d-printers-to-make-things-youneed-or-just-like.html, Stand: 09.08.2013 355 Anhang und Notizen ANHANG UND NOTIZEN Im Anhang befinden sich alle Gesprächsnotizen der Interviews. Die Inhalte der Gespräche befinden sich in aufgearbeiteten Auszügen im Fließtext des Hauptteils. GESPRÄCHSNOTIZEN, ERIC TEUBERT, PODLOVE Gespräch vom 16.04.2013 über Podlove und WordPress. Eric Teubert ist Entwickler von Podlove und arbeitete bei der Agentur Inpsyde, welche die deutsche WordPress-Community betreuen. • F r a g e : Stelle dich bitte kurz vor. • Inspyde seit zwei Jahre, PHP WordPress Entwickler, Informatik Masterstudent, Masterarbeit Echtzeit Kollaboration (Netzwerkarchitektur), eigenes Open Source Projekt Podlove Podcast Workflow, Hilft Podcasts zu erstellen, persönlicher Kontakt zu Tim Pritlove Deutschlands bekanntesten Podcaster, dadurch besondere Anforderungen um sich von anderen Podcast Open Source Projekten abzusetzen, dient als Mentor/Marketing, plant Testphasen, Crowdfunding (bewusst gegen eine Crowdfunding-Plattform entschieden) und Kommunikationskanäle, Crowddonation, kurzzeitig andere, im Gespräch mit Instacast um Spezifikiationen zu Erwirken, immer noch alpha, 200 aktive Nutzer, jetzt entsteht Dokumentation, Migrationshilfe für alte PodcastPlugins, Migrations-Assistent, immer wieder zurück zur Nutzerperspektive (Wie ist der Workflow? Wie verwende ich als Podcaster das Plugin?), ein Hauptentwickler, sonst nur kleine Contributoren, öfter nein sagen bei Feature Request, nicht den Nutzer fragen was sie gerne hätten, vor der Veröffentlichung Umfrage gemacht (Seit ihr mit Podcast-Plugins zufrieden? Ja, schon generell…) aber als das neue Plugin kam waren alle begeistert weil die Nutzer nicht wussten, was sie brauchten, nutzt Trello (aber die Projektgröße wird zu groß), Podlove Subprojekte Publisher, Webplayer und Spezifikation (3 Projekte, 3 GitHub Repos) • Kommunikationskanäle: • Issues in GitHub: read/write, einfache Liste, es fehlen Status (in Bearbeitung, Released) → es gibt nur Open/Closed und Labels • Features in Trello: read only, big picture, zwei Boards für Publisher/Webplayer • Twitter/App.Net: Feedback (teilweise auf privaten Accounts), wichtig! • Skype: als internen Chat (nur gewählt, weil es jeder hat), Mail reicht nicht, da asynchron • Mailingliste: abstraktere Sicht, Software/Spezifikation (=geschlossen) (mit zwei Meetings), weniger los • Podlove.org/Blog: nur Announcements • Podcasts: sehr unregelmäßig, Updates zum Stand • Kommunikationskanal: Wähle etwas was für dich funktioniert (weil man lange alleine entwickelt), internes/externes Projektmanagementtool (soll ich mich 110 Anhang und Notizen organisieren oder soll es etwas nach außen kommunizieren?), was nach außen? • F r a g e : Ideale Größe für ein Softwareteam? • 1: keine Diskussion, 2: man wird auf dem Boden der Tatsachen zurückgeholt, 3: Diskussion arten aus, wenn gleichberechtigt • von Anfang an als open-end geplant, aber Milestones zur Gliederung • early adopter sind wichtig! kamen von alleine • S t a r t z e i t p u n k t : unklar (kurze geschlossene Entwicklungszeit, baldige Veröffentlichung, man konnte es rudimentär benutzen) • V e r ö f f e n t l i c h u n g s g r u n d : so schnell wie möglich Feedback holen (aber auch von Projekt zu Projekt unterschiedlich), Stand des Projektes muss kommuniziert werden • L i z e n z : MIT • F r a g e : Seit wann und auf welche Art beteiligst du dich an open source Projekten? • etwas Rails, Freund von Ruby • kleine Bugfixes in einem Ruby Gem, WordPress • F r a g e : Welche Faktoren spielen für dich eine Rolle, damit du dich dafür bzw. dagegen entscheidest dich an einem open source Projekt zu beteiligen? • viele Tickets teilweise mit vielen Patches, die niemand merged • tausende offene Tickets • das Gefühl es passiert nicht viel • viele WordPress Features sind auf Wordpress.com ausgelegt (von Automatic), aber nicht auf WordPress selbst als OSS-Projekt, Ticket-Fixing ans Marketing gerichtet anstatt an Entwickler • F r a g e : Was sind die Stärken bzw. die Schwächen von WordPress (als CMS)? • globale Variablen als Problem • URL-Strukturen sind schwer zu ändern, unflexibel • best practices fehlen • Dokumentation ist schwierig (Codex) (hilft nur, wenn du weißt was du brauchst, aber auch schon nicht mehr wenn du weißt was die Funktion macht) • Codex und In-Code Dokumentation deckt sich nicht • action/filtern: action ist ein filter, action ändert die Variablen nicht • F r a g e : Welche Tools, Werkzeuge, Plattformen und Kommunikationskanäle verwendest du bei deiner Arbeit? • Terminal, Sublime Text, SVN/Git, viele Hilfsscripte, (Less, Sass Problem unter Windows? Problem weil keine Best Practices), Dateistruktur • F r a g e : Wie zufrieden bist du mit WordPress' Plugin-System? Besitzt es besondere Stärken oder Schwächen? • gibt kein Dependency Managament, Plugins dürfen sich nicht bedingen • Theme Features (simples dependency Management) • F r a g e : Verwendest du in deinen Projekten viele AJAX-Funktionalitäten oder auch Echtzeit-Anwendungen? Wenn ja, in welchem Bereich? Wenn nein, hättest du gerne welche verwendet? • Dropdown/Tabs dynamisch befüllen • Ajax ist einfach nicht wirklich vorgesehen 111 Anhang und Notizen • 112 mobile first (was Datenübertragung angeht) ist nicht vorgesehen in WordPress (Ajax) GESPRÄCHSNOTIZEN, ALEXANDER GROß, MSPEC, .NET USER GROUP, DEVELOPER OPEN SPACE Gespräch vom 19.08.2013 über Machine.Specifications (MSpec), die .NET User Group Leipzig und den Developer Open Space. Alexander Groß ist Entwickler von MSpec und Mitorganisator der .NET User Group Leipzig und des Developer Open Space . Er ist Consultant bei und Mitbegründer von GROSSWEBER. • F r a g e : Stelle dich bitte kurz vor. • Alexander Groß, 33 Jahre, programmiert seit 12, seit 2007 professionell, seit drei Jahren GROSSWEBER, als Software Entwickler/Berater, Begleitung von Teams, Bsp. SCRUM/TTD, CI (TeamCity), ReSharper • F r a g e : Seit wann und warum entwickelst du open-source Software? • 2005/2006: Blogging Engine "Das Blog"; das erste OSS-Projekt, Fluent NHybernate ein paar Commits, kleine eigene Projekte • Mit welchen Tools arbeitest du? • ReSharper, IntelliJ (RubyMine), TeamServer • F r a g e : Stelle Machine.Specifications bitte kurz vor. • Aaron Jensen eigentlicher Autor, Seattle. .NET Entwickler, hat bei Rails RSpec gesehen. (2007), deswegen MSpec für .NET entworfen, Alex 2008 mit Testing beschäftigt, MSpec sehr natürlich sprachig (Context → Specification), schneller lernbar • ReSharper: Testing, Refactoring für VisualStudio (auch OpenSource), Test Runner von ReSharper hatte kein Mspec Support, erste Contribution: Repo zuerst als SVN bei Assembler, dann zu Git bei GitHub, Git Repo geclonet und ReSharper Support als erste Contribution • Contribution: Reporting, Navigation • Maintainer geworden als Jensen .NET verlassen hat, 2010/2011, Alex war zu der Zeit der Hauptcontributor • Contribution meist klein, selten groß; behandeln meist Dokumentation, Contributions über Pull Requests, Kontakt zur Community über Bug Meldungen (GitHub Issues), Problem: Contributoren melden Bugs, die sie selbst fixen könnten, wollen sich nicht beteiligen • alle 3 Monate 2 Pull Requests, CI Support um Tests durchzuführen, Alex: alle 2, 3 Wochen Updates • als Gegenleistung: Vorträge, Credibility für Testing (in .NET Community), ~70.000 mal heruntergeladen • Ziele: eigene Benutzung, Neugier, Spaß, lernen; heute: Consulting als TDD Schulung von jemanden der auch ein TDD Framework betreut, Wettbewerbsvorteil/Alleinstellungsmerkmal für Consulting • zum Gang in die Selbstständigkeit war die Credibility schon vorhanden • F r a g e : Welche Bedingungen stellst du an Contributions? (Tests, Code Style Konventionen...?) Anhang und Notizen • Code Style: wird durch ReSharper definiert, Problem: Intendation (.NET meistens Tabs mit 4 Spaces Breite, aber Mspec hat 2 Spaces) • F r a g e : Welche Kommunikationskanäle benutzt ihr intern/extern? (GitHub Issues, Trello, Twitter, Mailinglisten, Skype...?) • neu: Anthony Must... neuer Contributor der viel Doku macht; noch keine großen Absprachen aber Skype/Google Talk Kontakt • StackOverflow als Support, Issues für Fehler • Mailingliste: für nichts... Changelogs • sonst: ein, zwei Personen von JetBRains (CitizenMap, Cropp...?), sie helfen bei neuen Versionen von ReSharper • Sonstiges: • Lizenzen (MIT und MS-PL) vom ursprünglichen Autoren festgelegt • kein großes internes Management • noch kein Crowdfunding Gedanke für Refactoring (Refactoring wäre aufwendig) • aufsetzende Projekte: machine.fake • F r a g e : Stelle die .NET User Group und den Developer Open Space bitte kurz vor. • .NET User Group: ursprünglicher Gründer Torsten Weber • Alex irgendwann dazugestoßen, immer noch dabei • ineta (internation NET community) organisiert Sprecher für User Group, 200€ für Reisekosten für Sprecher bezahlt von ineta/MicroSoft • Ort für Treffen wird von Firma gesponsert, ungefähr einmal im Monat Treffen • 2007: .NET Summer Camp Konferenz für Studenten mit Sprechern organisiert (insgesamt 2x durchgeführt) • F r a g e : Warum habt ihr euch für eine Unkonferenz ohne Teilnehmergebühren entschieden? • Konferenz mit Sprechern zu organisieren ist schwer: Sprecher kontaktieren, Agenda organisieren, Slots reservieren Notfallpläne • seit 2008: verlockend beim Open Space: die Leute, die da sind, machen ihr Programm selbst, erstes Treffen: so 70 Leute, letztes Jahr 180 • prinzipiell: morgens um 9 Treffen, etwas Organisation über Ablauf, dann Themenfindung • Methode: WordCafe - abends treffen, 7 Leute an einem Tisch sprechen über eine spezielle Technologie, erhalten Notizen; 8 Minuten lang diskutieren die Personen untereinander, dann Wechseln die Personen den Tisch (2 bis 3 mal gewechselt); vollgeschrieben Zettel als Input für den nächsten Tag • FishBowl als Diskussionsmethode • Gesetz der zwei Füße: kannst gehen, wenn dich etwas nicht interessiert (lieber Gespräch auf dem Gang suchen, anstatt anderen Vortrag zu hören); Idee: Konferenz nur aus Kaffeepausen, weil die den meisten Gespräche dort statt finden • F r a g e : Wie hat sich das Event in den letzten Jahren verändert? • ursprünglich nur für .NET, jetzt allgemein • F r a g e : Welche Motivation haben deiner Meinung nach die Teilnehmer? Netzwerken, Lernen...? 113 Anhang und Notizen 114 • Motivation der Teilnehmer: 50:50 - lernen und netzwerken • F r a g e : Welche Motivation steckt für dich dahinter? • Motivation der Organisatoren: aus Spaß, aber natürlich auch netzwerken und Credibility • Sonstiges • als Sprecher unterwegs (~2 Konferenzen im Jahr) • Finanzierung: vorwiegend Crowdfunding, einige Sponsoren, ein fünfstelliger Betrag = plusminus Null • Gäste aus Österreich und Schweiz E-MAIL-AUSZUG, ASTRO, NODE-XMPP Auszug der E-Mail vom 19.08.2013 über node-xmpp. Astro ist Entwickler von node-xmpp und bereits lange als OSS-Entwickler tätig. • F r a g e : Stelle dich bitte kurz vor. • Ich programmiere seit ich elf bin, da es mich reizt Maschinen tun zu lassen was ich ihnen formuliere. Dazu benötigt man kein motorisches Geschick, sondern nur logisches Denken. Mit 19 bin ich auf den C3D2 (lokaler Ableger des Chaos Computer Clubs) gestoßen, wo ich seitdem sehr viel Zeit verbringe und viele Freunde gefunden habe. Tatsächlich gehöre ich zu einigen wenigen, die dort viele Generationswechsel mitgemacht haben. Mit der Hackerethik kann ich mich sehr gut identifizieren. Die Wahl des Studiums war schon immer sonnenklar für mich: Informatik. Da habe ich trotz aussercurriculärer Projekte ein FH-Diplom erhalten. Ich bin jetzt 28. Meine Brötchen verdiene ich mit drei Tagen/Woche Administration. Daneben halte ich das lokale Chaos mit am laufen und versuche übers Jahr ein, zwei Projekte anzustoßen, damit sie ähnlich populär werden wie node-xmpp. Mit Software drücke ich mich aus. • F r a g e : Seit wann und warum entwickelst du open-source Software? • Ich habe mit 14 begonnen Linux zu benutzen und die Offenheit sehr geschätzt. Ohne wäre es wesentlich schwieriger gewesen Technologie zu erlernen, zu beherrschen und zu verändern. Code online zu stellen habe ich ungefähr mit 18 begonnen, später noch wesentlich mehr. Zum einen musste ich als Programmierer genug Durchblick und Selbstvertrauen entwickeln, zum anderen wurden mir die Gründe für Offenheit (s.u.) erst nach und nach klar. • F r a g e : An welchen Projekten hast du bereits gearbeitet? • Das habe ich nicht umfassend im Kopf. Ein kleiner Patch in linux-util sorgt dafür, dass mein Name bei so ziemlich jedem installierten Linux auf Platte liegt. Da war Fame die Motivation. :-) xmpp4r, collectd, ejabberd, node.js connect, weil ich sie nutzte. Daneben einige Zusatzprojekte zu von mir verwendeter Software: ruby-ixp als Client-Library für WMII, socksify-ruby für Tor, remcached für memcached, mehrere Client-Implementationen für collectd. Wenn persönliche Freunde Projekte haben, dann ist das auch nochmal Motivation. Viele meiner Projekte sind Eigenenentwicklungen, denn eigener Code stinkt am wenigsten (man kennt ihn am besten). Das ist nicht Anhang und Notizen besonders positiv, 115 sondern Not-invented-here. Generell sollte jeder Programmierer mehr Code von anderen lesen. Dabei kann man nur lernen. • F r a g e : Welche Technologien interessieren dich persönlich? • Rechnernetze, denn sie ermöglichen das zauberhafte Kommunizieren über Distanzen. Angefangen hat das mit IRC-Bots. Dann habe ich viele Spielsachen mit Jabber gebaut und war ein paar Jahre in der XMPP Standards Foundation. Leider habe ich mit der Zeit festgestellt, dass vielen Technologieexperten gar nichts an Dezentralität und offenen Spezifikationen liegt; viel weniger interessiert sich die breite Bevölkerung dafür. Was noch übrig bleibt als offenes System im Internet ist File-Sharing. Deshalb habe ich allmählich auf BitTorrent umgeschwenkt, auch wenn Auftragsarbeit bei Instant Messaging wesentlich einfacher zu bekommen ist. • F r a g e : Mit welchen Tools arbeitest du? • git & Github. Letzteres ist zwar ein bedenkliches Monopol, hat jedoch die Open Source-Entwicklung mit einigen Mechanismen erleichtert. Ausserdem bleibt bei git die Datenportabilität gewahrt, was bei Github leider nur auf den Code selbst zutrifft. Statt einem File-Manager nutze ich zsh mit prezto. Klicken in GUIs lässt mich schnell ermüden. Als Editor nutze ich Emacs. Der ist wenig angepasst, da ich auch auf DefaultKonfigurationen zurecht kommen möchte. Alle anderen Tools richten sich nach Programmiersprache und deren Laufzeitumgebungen. Bei node sind das vor allem node.js selbst, und der Paketmanager npm. Zum Testen wird mocha genutzt, das hatte mir wohl am besten gefallen. • F r a g e : Warum hast du das node-xmpp als open-source Software veröffentlicht? • Ich bin da ziemlich fundamental: was will ich mit einem inflexiblen Binary Blob? Dem kann ich nicht trauen, und der Autor steht seinen Nutzern keine Freiheiten zu; im Sinne der GPL-Freiheiten. Ich bin ein starker Befürworter Code nach ein paar Jahren mit Zwang zu veröffentlichen. Die Technologie ist jung und wird ständig neu erfunden. Dabei häufen wir eine unglaubliche Menge an technologischer Schuld an. Das wird einem bewusst wenn man hört und sieht wie lange Systeme eigentlich eingesetzt werden, und was noch immer an völlig obsoleter Technologie am laufen ist, in kritischen Systemen! Mich wundert, wie das so viele andere ignorieren können. Mein Lieblingszitat dafür finde ich leider nicht wieder. Ich glaube es war von Knuth. "Code wird geschrieben um von Menschen gelesen, und nur nebenbei um von Maschinen interpretiert zu werden." Es fehlt die Fragestellung nach der Motivation: node.js war jung, und der große Vorteil daran ist, ist daß es ein Clean Slate ist. Dementsprechend gab es nur wenige stümperhafte Versuche XMPP zu implementieren. Hier sah ich die Gelegenheit einiges richtig zu machen und habe angefangen alles zu implementieren was man für XMPP-Verbindungen braucht, auf Basis eines schnellen Parsers (node-expat) und mit eigener kleinen DOM-Implementierung (ltx). Entwickler die nicht so im Jabber- Anhang und Notizen 116 Protokoll stecken war das natürlich zu technisch. Aber da kamen dann später Abstraktionsbibliotheken die auf node-xmpp aufsetzen. • F r a g e : Welche Bedingungen stellst du an Contributions? (Tests, Code Style, Konventionen...?) • Wenn ein Projekt so klein ist wie meine, dann freut man sich über Contributoren. Bedingungen wären da sehr hinderlich. Code Style Konventionen kann ich selbst nachpflegen. Tests werden gern gesehen, aber da bin ich selbst nicht sehr diszipliniert. • F r a g e : Wie organisiert sich das Projekt? (Demokratische Abstimmungen, Vorgaben vom Autor, jeder trägt bei was er kann...?) • Ich bin der Benevolent Dictator. Jedem steht es frei zu forken. • Frage: Hattet ihr Probleme innerhalb des Projekts? (Unnötige Diskussionen, beleidigte Contributoren...?) • Bei node-expat (gehört quasi zu node-xmpp) gab es einen Pull Request mit einem wenig benötigtem Feature, welches zu mehr Code und ein bisschen mehr Speicherverbrauch geführt hätte. Der Submitter wollte das nicht so ganz akzeptieren, aber naja: https://github.com/astro/node-expat/pull/13 • F r a g e : Warum hast du dich ursprünglich für GPL entschieden und warum hast du später auf MIT gewechselt? • Prinzipiell sind mir die Freiheiten wichtig. Mir ist der Unterschied zwischen OSS und Freier Software bekannt. Allerdings sehe ich dass viele Beiträge aus dem kommerziellen Bedarf stammen. Diese Leute winseln dann gleich rum: sie suchten Code der etwas spezielles tut, fanden den bei mir, und können ihn aufgrund ihrer Firmenrichtlinien nicht nutzen. Am Ende gebe ich den Contributions mehr Gewicht als den Freiheiten, allerdings nur bei Libraries. Wenn es fertig benutzbare Anwendungen sind, greife ich sehr gern zur GPL oder auch mal zur AGPL. Entwickler aus dem kommerziellen Umfeld hassen mich dafür. War es Auftragsarbeit, dann hat der Auftraggeber das Wort. • F r a g e : Welche Kommunikationskanäle benutzt ihr intern/extern? (GitHub Issues, Trello, Twitter, Mailinglisten, Skype...?) • Github, Treffen auf Konferenzen. Wobei ich kommerzielle Konferenzen wegen der Eintrittspreise ziemlich ätzend finde. Manchmal versuche ich kostenlos oder als Speaker reinzukommen. Aber ich bin da Inkludist und mag eher Community-Veranstaltungen, insbesondere den Chaos Communication Congress. • F r a g e : Nutzt ihr Managementtools wie z.B. Trello? • Github • F r a g e : Nutzt ihr ein bestimmtes Entwicklungsmodell? (Wasserfallmodell, Spiralenmodell, Scrum...?) • Feature-driven • F r a g e : Wie ist eure Dokumentation aufgebaut und was habt ihr alles dokumentiert? (API, Beispiele, Installationsanleitung, Build Prozess...) • Eine Library ist für Programmierer. Die sollten den Code auch lesen können, was auch gleich für potentielle Contributoren sorgt. Ein guter Einstieg ist dafür sehr wichtig. Deshalb habe ich die Grobstruktur in der README Anhang und Notizen 117 festgehalten, welche auch auf der Projekt-Homepage auf Github angezeigt wird. Daneben gibt es Beispiel-Code für die häufigsten Anwendungsfälle. • F r a g e : Welche Tools nutzt ihr und warum? (Warum GitHub, warum Travis, etc.) • Github: s.o. • Travis: weil es sehr einfach für node.js-Projekte auf Github war. Ich denke aber, die zwei Sekunden zum Testen sollte man auch vor dem Commit noch haben. • F r a g e : Warum hast du deine Rolle als Project Lead abgegeben? Wie lief diese Umstellung ab? • Persönliches Desinteresse (s.o.). Ich habe die Entwicklung schleifen lassen, was gar nicht gut war und mir auch zu der Zeit ein schlechtes Gewissen gemacht hat. Die Bug Reports haben sich getürmt, und mir fehlte auch der Überblick jemanden als Maintainer zu ernennen. Bei node.js selbst hatte sich auch einiges geändert (Streams2), was ich wenig verfolgt hatte. Da konnte ich also gar nicht helfen. Dann habe ich mit Lloyd Watkin jemanden entdeckt, der viel damit anstellt. Ihn habe ich dann auf der RealtimeconfEU persönlich gefragt, ob er das Projekt und die dazugehörigen (ltx, node- {expat,stringprep}) übernehmen möchte. Das bot sich zu der Zeit an, sonst hätte ich ihm eine Mail geschrieben. Es tut durchaus weh keine Zeit und kein Interesse mehr zu finden für ein nettes Projekt was auch mal Nutzer hat. Natürlich sorge ich mich um Codequalität und Integrität, aber so diszipliniert bin ich nun wieder selbst auch nicht. • F r a g e : Übernimmst du noch Aufgaben für das Projekt? • Nur Administrativa, wie Push-Berechtigungen auf Github & npm dem neuen Maintainer einzuräumen. • F r a g e : Gibt es eine spannende Anekdote aus diesem oder einem anderen OSSProjekt, die du erzählen möchtest? • Lob fühlt sich immer gut an, deshalb sollte man damit auch nicht sparen. Wenn man länger mit jemandem zusammen gearbeitet hat, dann ist die öffentliche Lobpreisung dessen Natur nochmal etwas besonders schönes. Oder wenn man jemanden kennenlernt, und einem erstmal für Code gedankt wird. Wobei ich mir vorstellen kann, dass sich das nicht nur auf Code beschränkt, aber das ist eben was ich im Internet mache. Es stimmt mich traurig dass prominente Vertreter (Torvalds, de Raadt) ihren respektlosen Umgang mit intelligenten Menschen zu Schau stellen. Menschen machen Fehler. Es ist noch kein Meister vom Himmel gefallen. • F r a g e : Wurdest du bereits für deine Arbeit an OSS entlohnt? (z.B. in Form von Spenden?) • https://flattr.com/profile/Astro • Bitlove.org läuft seit Juni 2012 und an die 900 Euro dafür flattred bekommen. Zwei Mal auch Direktüberweisungen; allerdings ist der Dienst nicht wirklich verwendbarer Code. • Das war Auftragsarbeit für einen ehemaligen, OSS-freundlichen Arbeitgeber: https://github.com/astro/node-collectdout, sowas gibt es gelegentlich im Internet, aber Normalität ist es leider nicht. Ich vermute daß Copyleft- Anhang und Notizen 118 Lizenzen da helfen könnten. Und noch Big news: OSS hilft einem bei der Jobsuche. GESPRÄCHSNOTIZEN, MARCUS FINDEISEN, RAPPID.JS KREJPOWICZ UND TONY Gespräch vom 22.08.2013 über rAppid.js. Marcus Krejpowicz und Tony Findeisen sind Entwickler von rAppid.js und arbeiten bei Spreadshirt, welche das Framework auch intern nutzen. • F r a g e : Stellt euch bitte kurz vor. • Tony Findeisen, in BA Leipzig Informatik studiert, Ausbildung zum Softwaretechnologen, 26 Jahre, 7. Klasse Taschenrechner Programmierung, VB6 angefangen (ActiveX Controls), auch Usability interessiert, auch ASP.NET, Flex (deswegen Inspiration XAML bei rAppid.js) • Marcus, TU Dresden Medieninformatik, in der 9. Klasse Programmierung, vorher HTML/CSS + PhotoShop, dann Webanwendungen, erst mit CakePHP • F r a g e : An welchen Projekten habt ihr bereits gearbeitet? • backbone-ui, flow.js (Kontrollfluss, TDD entwickelt, Server + Client), inherit.js (Typisierung und Vererbung) • Frage: Welche Technologien interessieren euch persönlich? • JavaScript, Node.js, (AS3 als Sprache), MongoDB • F r a g e : Stellt rAppid.js bitte kurz vor. • Web-Framework für Echtzeit Webapplikationen • deklarative Views mit XAML • RequireJS, Underscore, Moment.js → nur Libraries die 100%ig den Anforderungen erfüllen, sonst selbst schreiben • Konzepte: TDD, Modulare Komponenten, • ab IE7 zuverlässig • für großskalierte Applikationen • rAppid.js Doc Command: generiert Schema, etc. • F r a g e : Wie arbeitet ihr zusammen als zwei Project Leads? • Probleme → an Whiteboard durchgesprochen → dann Programmierung • Features abarbeiten, Inspiration: Flex • F r a g e : Welche Bedingungen stellt ihr an Contributions? (Tests, Code Style Konventionen...?) • bisher keine Contributions, noch keine Contributing Richtlinien vorhanden • derzeit kein aktives verfolgtes Ziel, da Entwicklung zu zweit gut läuft • trotz Blogposts, Social Media, etc., bisher kaum Feedback • Ausnahme Veranstaltungen: auf Berlin.JS und apps.berlin.js gutes Feedback bekommen, bei Open IT 2x vorgestellt (von Spreadshirt gehostet) • Artikel auf DailyJS (aktiv angeschrieben) und dotnetpro (nicht aktiv angeschrieben) • rAppid.js vor allem für einen selbst geschrieben, man steht 100%ig dahinter • F r a g e : Warum habt ihr euch für die MIT License entschieden? • zuerst CC BY, dann Überlegung GPL oder MIT → GPL wäre Problem für Spreadshirt gewesen Anhang und Notizen • Welche Kommunikationskanäle benutzt ihr intern/extern? (GitHub Issues, Trello, Twitter, Mailinglisten, Skype...?) • Twitter, GitHub, Seite + Blog, E-Mail • F r a g e : Welche Tools nutzt ihr? • Asana mit ToDo-Listen, TDD (Unit Tests mit Mocha, Komponententests, WebDriver Tests), Travis CI, GitHub, SourceLabs, IntelliJ, Chrome als Debugging Tool, nginxNutzt ihr ein bestimmtes Entwicklungsmodell? (Wasserfallmodell, Spiralenmodell, Scrum...?) • nicht speziell Scrum, aber agil-artige Entwicklung • F r a g e : Welche Rolle spielt Spreadshirt für das Projekt? • Spielraum gestellt (Zeit, Räumlichkeiten, etc.) zur freien Entwicklung und Entscheidung • private Entwicklung des Frameworks • schnellere Entwicklung möglich, dankbar angenommen • Spreadshirt: Nährboden für Idee, Inspiration durch andere Mitarbeiter, echter Anwendungsfall • F r a g e : Zukunftspläne? • in die Appentwicklung gehen mit Software as a Service • rAppid.js weiter ausreizen, schnelle neue Iterartionen • attraktiver gestalten: leichterer Einstieg, besseres Design + Logos, etc. 119 Literaturverzeichnis LITERATURVERZEICHNIS Abelson, Harold; Sussman, Gerald Jay; Structure and Interpretation of Computer Programs, http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html, Stand: 23.08.2013 Adler, Charles: Kickstarter Is Not a Store, http://www.kickstarter.com/blog/kickstarter-is-not-a-store, Stand: 05.08.2013 Adlin, Tamara; Pruitt, John: The Essential Persona Lifecycle, Morgan Kaufmann, 2010, 1. Auflage Alman, Ben: Introducing Grunt, http://weblog.bocoup.com/introducing-grunt/, Stand: 16.08.2013 Alman, Ben: Help us write documentation for 0.4!, https://github.com/gruntjs/grunt/issues/549, Stand: 16.08.2013 Alman, Ben: final 0.4.0 checklist, https://github.com/gruntjs/grunt/issues/663, Stand: 16.08.2013 Atwood, Jeff: Pick A License, Any License, http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html, Stand: 02.09.2013 Babcock, Charles: VMware Invests $30 Million In Puppet Labs, http://www.informationweek.com/cloud-computing/infrastructure/vmwareinvests-30-million-in-puppet-labs/240146864, Stand: 06.08.2013 Backaitis, Virginia: Open Source vs. Proprietary Software: There is No Clear Winner, http://www.cmswire.com/cms/information-management/open-source-vsproprietary-software-there-is-no-clear-winner-021752.php, Stand: 08.08.2013 Bartholomew, Daniel: MariaDB vs. MySQL, http://www.adminmagazine.com/Articles/MariaDB-vs.-MySQL, Stand: 02.07.2013 Bazon, Mihai: UglifiyJS, http://lisperator.net/uglifyjs/, Stand: 17.05.2013 Beck, Kent; u.a.: Manifest für Agile Softwareentwicklung, http://agilemanifesto.org/iso/de/, Stand: 09.07.2013 Beck, Kent; u.a.: Prinzipien hinter dem Agilen Manifest, http://agilemanifesto.org/iso/de/principles.html, Stand: 09.07.2013 Bradford, K. T.: GOOGLE NEXUS 4 REVIEW, http://www.digitaltrends.com/cellphone-reviews/google-nexus-4-review/, Stand: 31.07.2013 Brors, Dieter: The Document Foundation tritt OASIS bei, http://www.heise.de/open/meldung/The-Document-Foundation-tritt-OASIS-bei1698800.html, Stand: 13.08.2013 Chacon, Scott: Book, http://git-scm.com/book/de, Stand: 22.07.2013 Corbet, Jonathan: Who wrote 2.6.20?, http://lwn.net/Articles/222773/, Stand: 06.08.2013 Dahl, Ryan: Original Node.js presentation, http://www.youtube.com/watch?v=ztspvPYybIY, Stand: 25.06.2013 DeBergalis, Matt: MIT license, HTTP request package, Made With Meteor, http://www.meteor.com/blog/2012/04/20/mit-license-http-request-packagemade-with-meteor, Stand: 22.08.2013 Denmead, Ken: Why the Maker Movement is Here to Stay, http://makezine.com/2013/06/03/why-the-maker-movement-is-here-to-stay/, Stand: 09.08.2013 Dixon, James: 1. Why Professional Open Source Software, http://wiki.pentaho.com/display/BEEKEEPER/1.+Why+Professional+Open+Source+ Software, Stand: 31.07.2013 120 Literaturverzeichnis Enaux, Claudius; Weh, Saskia-Maria: Konfliktmanagement: Konflikte kompetent erkennen und lösen, Haufe-Lexware, 2008. 4. Auflage Findeisen, Tony: Article about rAppid:js in dotnetpro magazine, http://blog.rappidjs.com/2013/08/article-about-rappidjs-in-dotnetpro.html, Stand: 26.08.2013 Finley, Klint: Github Has Surpassed Sourceforge and Google Code in Popularity, http://readwrite.com/2011/06/02/github-has-passed-sourceforge, Stand: 11.07.2013 Fischer, David: Open source contributions by location, http://davidfischer.github.io/gdc2/#languages/All, Stand: 08.08.2013 Fitzpatrick, Jason: Best Distraction-Free Writing Application?, http://lifehacker.com/5687616/best-distraction+free-writing-application, Stand: 15.07.2013 Fogel, Karl: Producing Open Source Software, O’Reilly Media, 2005, 1. Auflage Förtsch, Gabi; Meinholz, Heinz: Führungskraft Ingenieur, Vieweg+Teubner Verlag, 2010, 1. Auflage Fowler, Martin: OnsiteCustomer, http://martinfowler.com/bliki/OnsiteCustomer.html, Stand: 09.07.2013 Germain, Jack: Open Core Debate: The Battle for a Business Model, http://www.linuxinsider.com/story/66807.html, Stand: 07.08.2013 Gloger, Boris: Scrum, Carl Hanser Verlag, 2013, 4. Auflage Graham, Paul: What businesses can learn from open souce, http://paulgraham.com/opensource.html, Stand: 08.08.2013 Griffith, Tommy: The 2013 SEO Checklist, http://www.clickminded.com/seochecklist/, Stand: 16.07.2013 Gruber, John: Markdown, http://daringfireball.net/projects/markdown/, Stand: 15.07.2013 Ihlenfeld, Jens: Oracle überträgt Openoffice an die ASF, http://www.golem.de/1106/83918.html, Stand: 12.06.2013 Ivanov, Anton: JavaScript and Friends: CoffeeScript, Dart and TypeScript, http://smthngsmwhr.wordpress.com/2013/02/25/javascript-and-friendscoffeescript-dart-and-typescript/, Stand: 28.06.2013 „janw“: Build your own Wifi radio, http://www.instructables.com/id/Build-yourown-Wifi-radio/, Stand: 09.08.2013 Jeffries, Ron; Lindstrom, Lowell: Extreme Programming and Agile Software Development Methodologies, http://www.oobeyagroup.com/images/ExtremeProgrammingAgileSoftwareDevelop mentLindstromJeffries.pdf, Stand: 09.07.2013 Jost, Peter: Organisation und Motivation, Gabler Verlag, 2008, 2. Auflage Jungwirth, Carola: Wissensabhängige Strategiewahl in der Venture-CapitalIndustrie, Deutscher Universitätsverlag, 2006, 1. Auflage Kamp, Poul-Henning: Why Should I Care What Color the Bikeshed Is?, http://bikeshed.com/, Stand: 25.07.2013 Kellen, Tyler: Docs for 0.4, https://github.com/gruntjs/grunt/issues/480, Stand: 16.08.2013 Kellen, Tyler: Tearing Grunt Apart, http://weblog.bocoup.com/tearing-gruntapart/, Stand: 16.08.2013 Koch, Jochen; Schreyögg, Georg: Grundlagen des Managements, Gabler Verlag, 2010, 2. Auflage 121 Literaturverzeichnis Knop, Carsten: Für Microsoft darf man überall arbeiten, http://www.faz.net/aktuell/wirtschaft/unternehmen/home-office-fuer-microsoftdarf-man-ueberall-arbeiten-12317332.html, Stand: 09.08.2013 Kulbe, Anette: Grundwissen Psychologie, Soziologie und Pädagogik, Kohlhammer, 2009, 2. Auflage Lassus, Olov: Meteor meets NoGPL, http://blog.lassus.se/2012/04/meteor-meetsnogpl.html, Stand: 22.08.2013 Lehman, Adam: OUR DEVELOPMENT PROCESS, http://dev.brackets.io/preso/contribute/#/16, Stand: 10.07.2013 Lehman, Adam: Kommentar zu Brackets Review, http://creativejs.com/2012/05/brackets-review/#comment-1901, Stand: 21.08.2013 Lehman, Adam: Google+ Post, https://plus.google.com/113743469825932014075/posts/cSVyhkcrp8L, Stand: 21.08.2013 Leutwyler, Markus: How to get rich (quick) with JS, http://www.youtube.com/watch?v=bStff9X0oYI&t=5m22s, Stand: 17.05.2013 Linares, Lean; u.a.: HOW TO KEEP UP TO DATE ON FRONT-END TECHNOLOGIES, http://uptodate.frontendrescue.org/, Stand: 22.07.2013 McAllister, Neil: Study: Most projects on GitHub not open source licensed, http://www.theregister.co.uk/2013/04/18/github_licensing_study/, Stand: 26.06.2013 McCaffrey, James: Agile Programming vs. Extreme Programming, http://jamesmccaffrey.wordpress.com/2006/04/11/agile-programming-vsextreme-programming/, Stand: 10.07.2013 Miller, Claire Cain; Rampell, Catherine: Yahoo Orders Home Workers Back to the Office, http://www.nytimes.com/2013/02/26/technology/yahoo-orders-homeworkers-back-to-the-office.html?hpw, Stand: 09.08.2013 Miller, Kevin: Transitioning to Being an Open Source Company, http://livecode.com/blog/2013/06/19/transitioning-to-being-an-open-sourcecompany/, Stand: 08.08.2013 Moelgaard, Peter: THE BRACKETS TEAM… USING TRELLO, http://blog.petermolgaard.com/2012/05/03/adobe-brackets-team-using-trello/, Stand: 10.07.2013 „mrd“: Meet a Spreader: Tony und Marcus, http://blog.spreadshirt.net/de/2013/08/13/meet-a-spreader-tony-und-marcus/, Stand: 26.08.2013 Nalley, David: Leadership in open source communities, http://opensource.com/business/11/2/leadership-open-source-communities, Stand: 01.07.2013 Naumann, Stephan: XING versus LinkedIn – Fakten zu den Karriere-Netzwerken, http://peopleandmedia.wordpress.com/2012/02/04/xing-versus-linkedin-faktenzu-den-karriere-netzwerken/, Stand: 22.07.2013 Neumann, Alexander: GitHub populärer als SourceForge und Google Code, http://www.heise.de/developer/meldung/GitHub-populaerer-als-SourceForgeund-Google-Code-1255416.html, Stand: 11.07.2013 Noguchi, Brian; Smith, Nate: Our take on Derby vs. Meteor, http://blog.derbyjs.com/2012/04/14/our-take-on-derby-vs-meteor/, Stand: 13.06.2013 o.A.: Willkommen Wunderlist, http://www.6wunderkinder.com/wunderlist, Stand: 15.07.2013 o.A.: Adium, https://www.adium.im/, Stand: 22.07.2013 122 Literaturverzeichnis o.A.: Creative Cloud and the future of the creative process., http://www.adobe.com/cc/letter.html, Stand: 08.08.2013 o.A.: Adobe Edge Code CC (Preview) Code the web., http://html.adobe.com/edge/code/, Stand: 02.08.2013 o.A.: Akismet API key signup, https://akismet.com/plans/, Stand: 02.08.2013 o.A.: Welcome to the Android Open Source Project!, http://source.android.com/, Stand: 31.07.2013 o.A.: Project Roles, http://source.android.com/source/roles.html, Stand: 26.06.2013 o.A.: We back Open Source entirely!, http://www.aoemedia.com/open-sourcesponsoring.html, Stand: 06.08.2013 o.A.: How the ASF works, http://www.apache.org/foundation/how-it-works.html, Stand: 26.06.2013 o.A.: Welcome Apache Ant, http://ant.apache.org/, Stand: 15.07.2013 o.A.: FaceTime für den Mac, http://www.apple.com/de/mac/facetime/, Stand: 22.07.2013 o.A.: LiveReload, https://itunes.apple.com/us/app/livereload/id482898991?mt=12, Stand: 31.07.2013 o.A.: Fachkräfteengpässe verstärken sich – das zeigt die aktuelle BA-Analyse, http://www.arbeitsagentur.de/nn_27030/zentralerContent/Pressemeldungen/2013/Presse-13-003.html, Stand: 08.08.2013 o.A.: Arduino, http://www.arduino.cc/, Stand: 09.08.2013 o.A.: Do great things, https://asana.com/, Stand: 26.08.2013 o.A.: Confluence, http://www.atlassian.com/de/software/confluence/, Stand: 15.07.2013 o.A.: Greenhopper, http://www.atlassian.com/de/software/greenhopper, Stand: 15.07.2013 o.A.: Jira, http://www.atlassian.com/de/software/jira, Stand: 12.07.2013 o.A.: What is a Barcamp?, http://www.barcampsaigon.org/info/, Stand: 23.07.2013 o.A.: ZenWriter, http://www.beenokle.com/zenwriter.html, Stand: 24.07.2013 o.A.: Bitbucket, https://bitbucket.org/, Stand: 11.07.2013 o.A.: Fast ein Drittel aller Berufstätigen rund um die Uhr erreichbar, http://www.bitkom.org/de/presse/8477_75865.aspx, Stand: 08.08.2013 o.A.: Seventh Annual Future of Open Source Survey Results Show Culture, Quality and Growth Driving an Open Revolution, http://www.blackducksoftware.com/news/releases/seventh-annual-future-opensource-survey-results-show-culture-quality-and-growth, Stand: 08.08.2013 o.A.: Bountysource, https://www.bountysource.com/learn, Stand: 02.08.2013 o.A.: Brackets, http://brackets.io/, Stand: 21.08.2013 o.A.: nvALT, http://brettterpstra.com/projects/nvalt/, Stand: 15.07.2013 o.A.: Bugzilla, http://www.bugzilla.org/, Stand: 12.07.2013 o.A.: Byword 2, http://bywordapp.com/, Stand: 15.07.2013 o.A.: Cloud9 IDE, https://c9.io/, Stand: 31.07.2013 o.A.: Team collaboration with real time chat., http://campfirenow.com/, Stand: 22.07.2013 123 Literaturverzeichnis o.A.: Choosing an OSS license doesn’t need to be scary, http://choosealicense.com/, Stand: 16.07.2013 o.A.: The Chromium Projects, http://www.chromium.org/, Stand: 31.07.2013 o.A.: CodePlex, https://www.codeplex.com/, Stand: 11.07.2013 o.A.: Welcome to TypeScript, http://typescript.codeplex.com/, Stand: 11.07.2013 o.A.: Downloads, http://creativecommons.org/about/downloads, Stand: 04.07.2013 o.A.: Mehr über die Lizenzen, vgl. http://creativecommons.org/licenses/, Stand: 12.09.2013 o.A.: Things 2 for Mac, http://culturedcode.com/things/, Stand: 15.07.2013 o.A.: Netidee: Eine Million Euro für Internet-Geistesblitze, http://derstandard.at/1375625792451/Netidee-Eine-Million-Euro-fuer-InternetGeistesblitze, Stand: 06.08.2013 o.A.: Developer Open Space Leipzig, http://devopenspace.de/, Stand: 22.08.2013 o.A.: DevSwag, http://devswag.com/, Stand: 06.08.2013 o.A.: The Document Foundation, http://www.documentfoundation.org/, Stand: 13.08.2013 o.A.: OpenOffice.org Community announces The Document Foundation, http://listarchives.documentfoundation.org/www/announce/msg00000.html, Stand: 13.08.2013 o.A.: Doodle vereinfacht die Terminfindung, http://www.doodle.com/, Stand: 15.07.2013 o.A.:.NET User Group Leipzig, http://dotnet-leipzig.de/, Stand: 22.08.2013 o.A.: Drupal, https://drupal.org/, Stand: 15.07.2013 o.A.: Committer Due Diligence Guidelines, http://www.eclipse.org/legal/committerguidelines.php, Stand: 26.06.2013 o.A.: Ihr virtuelles Gedächtnis, https://evernote.com/intl/de/, Stand: 15.07.2013 o.A.: EXIST ist bundesweit und zielgenau, http://www.exist.de/, Stand: 06.08.2013 o.A.: Facebook, https://www.facebook.com/, Stand: 22.07.2013 o.A.: Flattr, http://flattr.com/, Stand: 02.08.2013 o.A.: Astro, https://flattr.com/profile/Astro, Stand: 26.08.2013 o.A.: Podlove, http://flattr.com/thing/607995/Podlove, Stand: 26.08.2013 o.A.: FOSS.IN, http://foss.in/, Stand: 22.07.2013 o.A.: FourSquare, https://de.foursquare.com/, Stand: 22.07.2013 o.a.: GENIVI, http://www.genivi.org/, Stand: 15.08.2013 o.A.: Pocket, http://getpocket.com/, Stand: 15.07.2013 o.A.: GitHub, https://github.com/, Stand: 11.07.2013 o.A.: Gists, https://gist.github.com/, Stand: 22.07.2013 o.A.: Leipzig.js, http://leipzigjs.github.io/, Stand: 23.07.2013 o.A.: LinkedIn, https://linkedin.com, Stand: 22.07.2013 o.A.: Introducing GitHub for Mac, http://mac.github.com/, Stand: 11.07.2013 o.A.: Quickly publish beautiful pages for you and your projects., http://pages.github.com/, Stand: 15.07.2013 124 Literaturverzeichnis o.A.: Introducing GitHub for Windows, http://windows.github.com/, Stand: 11.07.2013 o.A.: brackets-shell, https://github.com/adobe/brackets-shell/, Stand: 21.08.2013 o.A.: cloud9, https://github.com/ajaxorg/cloud9, Stand: 31.07.2013 o.A.: node-xmpp, https://github.com/astro/node-xmpp, Stand: 22.08.2013 o.A.: beerjs, https://github.com/beerjs, Stand: 23.07.2013 o.A.: JS Beautifier, https://github.com/einars/js-beautify, Stand: 17.05.2013 o.A.: Roadmap, https://github.com/gruntjs/grunt/wiki/Roadmap, Stand: 16.08.2013 o.A.: grunt-contrib, https://github.com/gruntjs/gruntcontrib/tree/18f375bc59fbbef25f8f32fe572cbfb7fad93002, Stand: 16.08.2013 o.A.: Top Languages, https://github.com/languages, Stand: 25.06.2013 o.A.: MEAN Stack, https://github.com/linnovate/mean, Stand: 15.07.2013 o.A.: LiveReload, https://github.com/livereload/LiveReload2, Stand: 31.07.2013 o.A.: machine.specifications, https://github.com/machine/machine.specifications, Stand: 22.08.2013 o.A.: node-task, https://github.com/node-task, Stand: 25.06.2013 o.A.: Issues, https://github.com/podlove/podlove-publisher/issues, Stand: 25.08.2013 o.A.: Contributor Model, https://github.com/yui/yui3/wiki/Contributor-Model, Stand: 26.06.2013 o.A.: Font Awesome The iconic font designed for Bootstrap, http://fortawesome.github.io/Font-Awesome/, Stand: 15.07.2013 o.A.: Gittip, https://www.gittip.com/, Stand: 02.08.2013 o.A.: Preface: Why a GNOME Foundation?, https://wiki.gnome.org/Foundation/Charter, Stand: 15.08.2013 o.A.: Über das GNU-Betriebssystem, http://www.gnu.org/gnu/about-gnu, Stand: 02.09.2013 o.A.: Logo der Free Software Foundation, http://www.gnu.org/graphics/fsflogo.html, Stand: 04.07.2013 o.A.: GNU GENERAL PUBLIC LICENSE, http://www.gnu.org/licenses/gpl.html, Stand: 11.06.2013 o.A.: GNU LESSER GENERAL PUBLIC LICENSE, http://www.gnu.org/licenses/lgpl3.0.en.html, Stand: 26.06.2013 o.A.: Warum die GNU Affero GPL, http://www.gnu.org/licenses/why-afferogpl.html, Stand: 28.08.2013 o. A.: What is free software?, http://www.gnu.org/philosophy/free-sw.en.html, Stand: 12.06.2013 o.A.: Freie Software verkaufen, http://www.gnu.org/philosophy/selling.html, Stand: 02.09.2013 o.A.: Mailman, the GNU Mailing List Manager, http://www.gnu.org/software/mailman/, Stand: 16.07.2013 o.A.: GNU Make, https://www.gnu.org/software/make/, Stand: 15.07.2013 o.A.: Golem, http://www.golem.de/, Stand: 22.07.2013 o.A.: Google Trends Github, SourceForge, CodePlex, Bitbucket, "Google Code", http://goo.gl/26FKQ, Stand: 11.07.2013 125 Literaturverzeichnis o.A.: Professionelle Webanalysen., http://www.google.com/analytics/, Stand: 16.07.2013 o.A.: Hangouts, http://www.google.com/hangouts/, Stand: 22.07.2013 o.A.: Google Code, https://code.google.com/intl/de/, Stand: 11.07.2013 o.A.: V8 JavaScript Engine, https://code.google.com/p/v8/, Stand: 25.06.2013 o.A.: Make the Web Faster, https://developers.google.com/speed/pagespeed/, Stand: 16.07.2013 o.A.: Willkommen bei Google Groups!, https://groups.google.com/, Stand: 16.07.2013 o.A.: 2013 Financial Tables, http://investor.google.com/financial/tables.html, Stand: 31.07.2013 o.A.: Google+, https://plus.google.com/, Stand: 22.07.2013 o.A.: Welcome to Google Calendar, https://support.google.com/calendar/answer/2465776, Stand: 15.07.2013 o.A.: Docs, Sheets, and Slides, https://support.google.com/drive/answer/49008, Stand: 15.07.2013 o.A.: What is Gradle?, http://www.gradle.org/, Stand: 15.07.2013 o.A.: Grml Live Linux, http://grml.org/, Stand: 03.09.2013 o.A.: GRUNT The JavaScript Task Runner, http://gruntjs.com/, Stand: 15.07.2013 o.A.: Heise, http://www.heise.de/, Stand: 22.07.2013 o.A.: c’t, http://www.heise.de/ct/, Stand: 22.07.2013 o.A.: GitHub issues made awesome, http://huboard.com/, Stand: 15.07.2013 o.A.: Welcome to the Icinga Merchandise Store!, https://www.icinga.org/merchandise/, Stand: 06.08.2013 o.A.: Transform your plain text into static websites and blogs., http://jekyllrb.com/, Stand: 15.07.2013 o.A.: Jenkins, http://jenkins-ci.org/, Stand: 16.07.2013 o.A.: THE INTRANET IS DEAD. LONG LIVE THE SOCIAL INTRANET., http://www.jivesoftware.com/social-business/solutions/social-intranet/, Stand: 15.07.2013 o.A.: JSConf, http://jsconf.com/, Stand: 22.07.2013 o.A.: KickStarter, http://www.kickstarter.com/, Stand: 05.08.2013 o.A.: Defining Your Project, http://www.kickstarter.com/help/school#creating_rewards, Stand: 05.08.2013 o.A.: Next Generation LiveCode (Open Source), http://www.kickstarter.com/projects/1755283828/open-source-edition-oflivecode, Stand: 08.08.2013 o.A.: Linux Magazin, http://www.linux-magazin.de/, Stand: 22.07.2013 o.A.: LinuxUser, http://www.linux-user.de/, Stand: 22.07.2013 o.A.: Mantis Bug-Tracker, http://www.mantisbt.org/, Stand: 12.07.2013 o.A.: JavaScript Developer, https://masterbranch.com/job/javascript-developer6wunderkinder-berlin/1340, Stand: 06.08.2013 o.A.: Welcome to MediaWiki.org, http://www.mediawiki.org/, Stand: 15.07.2013 o.A.: Meteor, http://meteor.com/, Stand: 11.06.2013 o.A.: Project, http://office.microsoft.com/de-de/project/, Stand: 09.09.2013 o.A.: Word, http://office.microsoft.com/de-de/word/, Stand: 15.07.2013 126 Literaturverzeichnis o.A.: Exchange, http://www.microsoft.com/exchange/2010/de/de/, Stand: 15.07.2013 o.A.: mIRC, http://www.mirc.com/, Stand: 22.07.2013 o.A.: Das Mozilla-Manifest, http://www.mozilla.org/de/about/manifesto/, Stand: 05.08.2013 o.A.: Mozilla 15 Jahre besseres Internet, https://www.mozilla.org/de/contribute/, Stand: 02.07.2013 o.A.: Join Mozilla For a better Web and a better world, https://sendto.mozilla.org/page/contribute/join-mozilla?source=MozOrg-join, Stand: 05.08.2013 o.A.: MySQL, http://www.mysql.com/, Stand: 31.07.2013 o.A.: Commercial License for OEMs, ISVs and VARs, http://www.mysql.com/about/legal/licensing/oem/, Stand: 02.08.2013 o.A.: Kapitel 1. Einstieg in die Groupware, https://webmail.eva.mpg.de/ox6/help/de_DE/guide.chap.intro.html, Stand: 15.07.2013 o.A.: July 2013 Web Server Survey, http://news.netcraft.com/archives/2013/07/02/july-2013-web-serversurvey.html, Stand: 09.08.2013 o.A.: Interview: Thomas Krumbein von LibreOffice zur Arbeit mit Oracle, http://www.netzwelt.de/news/84723-interview-thomas-krumbein-libreofficearbeit-oracle.html, Stand: 12.06.2013 o.A.: NodeJS Contributor License Agreement ("Agreement"), http://nodejs.org/cla.html, Stand: 13.08.2013 o.A.: Octopress, http://octopress.org/, Stand: 22.08.2013 o.A.: OmmWriter, http://www.ommwriter.com/, Stand: 15.07.2013 o.A.: OmniFocus for Mac, http://www.omnigroup.com/products/omnifocus/, Stand: 15.07.2013 o.A.: Custom Piwik T-Shirts!, http://www.ooshirts.com/piwik, Stand: 06.08.2013 o.A.: History of the OSI , http://opensource.org/history, Stand: 17.05.2013 o.A.: Apache License, Version 2.0, http://opensource.org/licenses/Apache-2.0, Stand: 11.06.2013 o.A.: The BSD 2-Clause License, http://opensource.org/licenses/bsd-license.php, Stand: 26.06.2013 o.A.: The MIT License (MIT), http://opensource.org/licenses/MIT, Stand: 11.06.2013 o.A.: OSI Logo Files, http://opensource.org/node/442, Stand: 04.07.2013 o.A.: The Open Source Definition, http://opensource.org/osd, Stand: 13.08.2013 o.A.: Companies Supporting The OpenStack Foundation, http://www.openstack.org/foundation/companies/, Stand: 08.08.2013 o.A.: Oracle Berkeley DB Licensing Information, http://www.oracle.com/technetwork/database/berkeleydb/downloads/licensing098979.html, Stand: 02.08.2013 o.A.: Orkut, http://orkut.com, Stand: 22.07.2013 o.A.: Open Source Business Alliance, http://www.osb-alliance.de/, Stand: 03.07.2013 o.A.: OSS Watch, http://www.oss-watch.ac.uk/, Stand: 03.07.2013 127 Literaturverzeichnis o.A.: Spenden, https://www.paypal.com/de/cgibin/webscr?cmd=p/xcl/rec/donate-intro-outside, Stand: 02.08.2013 o.A.: Adobe PhoneGap Build, https://build.phonegap.com/, Stand: 31.07.2013 o.A.: THE #1 FREE, OPEN SOURCE BULLETIN BOARD SOFTWARE, https://www.phpbb.com/, Stand: 16.07.2013 o.A.: Pidgin, http://pidgin.im/, Stand: 22.07.2013 o.A.: Pinterest, https://pinterest.com/, Stand: 22.07.2013 o.A.: Piwik Webanalyse befreien, http://de.piwik.org/, Stand: 16.07.2013 o.A.: Piwik Hosting, http://piwik.org/hosting/, Stand: 02.08.2013 o.A.: Podlove, http://podlove.org/, Stand: 01.07.2013 o.A.: Qt Licensing, http://qt-project.org/products/licensing, Stand: 02.08.2013 o.A.: The Maker Movement, http://www.raisinggeeks.com/blog/makermovement/, Stand: 09.08.2013 o.A.: rAppid.js,http://www.rappidjs.com/, Stand: 22.08.2013 o.A.: Red Hat, http://www.redhat.com/, Stand: 31.07.2013 o.A.: Redmine, http://www.redmine.org/, Stand: 12.07.2013 o.A.: Extreme Programming (XP), http://www.scrum-kompakt.de/grundlagen-desprojektmanagements/extreme-programming-xp/, Stand: 09.07.2013 o.A.: Support Sencha, http://www.sencha.com/support/, Stand: 02.08.2013 o.A.: The 2013 Future of Open Source Survey Results, http://www.slideshare.net/blackducksoftware/the-2013-future-of-open-sourcesurvey-results, Stand: 08.08.2013 o.A.: Egal, wo Sie oder Ihre Freunde sich aufhalten – mit Skype bleiben Sie in Kontakt., http://www.skype.com/de/, Stand: 22.07.2013 o.A.: Orkut Review, http://social-networking-websitesreview.toptenreviews.com/orkut-review.html, Stand: 22.07.2013 o.A.: SourceForge, http://sourceforge.net/, Stand: 11.07.2013 o.A.: Open Source Software und Joomla! CMS, http://opensourcejoomla.spreadshirt.de/, Stand: 06.08.2013 o.A.: StackOverflow, http://stackoverflow.com/, Stand: 16.07.2013 o.A.: Programm zur Förderung technologieorientierter Unternehmensgründungen, http://www.startup-inbayern.de/themenmenue/foerderung/zuschuesse/foerderungtechnologieorientierter-unternehmensgruendungen.html, Stand: 06.08.2013 o.A.: Was ist ein Barcamp?, http://systemscamp.org/was-ist-ein-barcamp/, Stand: 23.07.2013 o.A.: t3n, http://t3n.de/, Stand: 22.07.2013 o.A.: The Couch Firm, http://thecouchfirm.com/, Stand: 06.08.2013 o.A.: The Node Firm, http://thenodefirm.com/, Stand: 06.08.2013 o.A.: tl;dr Legal, http://www.tldrlegal.com/, Stand: 16.07.2013 o.A.: TodoMVC, http://todomvc.com/, Stand: 28.06.2013 o.A.: Travis, https://travis-ci.org/, Stand: 16.07.2013 o.A.: Trello, https://trello.com/, Stand: 15.07.2013 o.A.: Trello Brackets, https://trello.com/b/LCDud1Nd/brackets, Stand: 21.08.2013 128 Literaturverzeichnis o.A.: Podlove Publisher, https://trello.com/b/zB4mKQlD/podlove-publisher, Stand: 25.08.2013 o.A.: Podlove Web Player, https://trello.com/b/mFPdgi1P/podlove-web-player, Stand: 25.08.2013 o.A.: Just a blogging platform., http://tryghost.org/, Stand: 22.08.2013 o.A.: Twitter, https://twitter.com/, Stand: 22.07.2013 o.a.: TYPO3, http://typo3.org/, Stand: 15.07.2013 o.A.: FAQ, http://wiki.whatwg.org/wiki/FAQ#What_is_the_WHATWG.3F, Stand: 02.07.2013 o.A.: Wikipedia, http://www.wikipedia.org/, Stand: 15.07.2013 o.A.: WordPress.org, http://wordpress.org/, Stand: 15.07.2013 o.A.: Introduction to WordPress.com, http://en.support.wordpress.com/introduction/, Stand: 15.07.2013 o.A.: WordPress, https://signup.wordpress.com/signup/, Stand: 02.08.2013 o.A.: Meteor meets NoGPL, https://news.ycombinator.com/item?id=3836212, Stand: 11.06.2013 o.A.: Meteor is now MIT licensed, https://news.ycombinator.com/item?id=3870700, Stand: 11.06.2013 o.A.: Xing, http://www.xing.com/, Stand: 22.07.2013 O’Leary, Amy: 3-D Printers to Make Things You Need or Like, http://www.nytimes.com/2013/06/20/technology/personaltech/home-3-dprinters-to-make-things-you-need-or-just-like.html, Stand: 09.08.2013 O’Nolan, John: Ghost: Just a Blogging Platform, http://www.kickstarter.com/projects/johnonolan/ghost-just-a-bloggingplatform, Stand: 05.08.2013 Osmani, Addy: The Pros And Cons Of JavaScript Micro-Frameworks, http://addyosmani.com/blog/prosconsmicroframeworks/, Stand: 28.06.2013 Otto, Mark: Building Twitter Bootstrap, http://alistapart.com/article/buildingtwitter-bootstrap, Stand: 25.06.2013 Otto, Mark: WIP: Bootstrap 3, https://github.com/twitter/bootstrap/pull/6342, Stand: 12.07.2013 Pardee, Matt: The Road to Node.js v1.0, http://blog.strongloop.com/the-road-tonode-js-v1-0/, Stand: 15.08.2013 Pash, Adam: Social Network Faceoff: Facebook vs. Twitter vs. Google+, http://lifehacker.com/5842997, Stand: 22.07.2013 Patterson, Sean: Chrome Overtakes IE as the World’s Most Used Browser, http://www.webpronews.com/chrome-overtakes-ie-as-the-worlds-most-usedbrowser-2012-05, Stand: 09.08.2013 Pepitone, Julianne: Why 84% of Kickstarter's top projects shipped late, http://money.cnn.com/2012/12/18/technology/innovation/kickstarter-shipdelay/index.html, Stand: 05.08.2013 Pritlove, Tim; u.a.: LS011 Podlove Publisher, http://der-lautsprecher.de/ls011podlove-publisher bei 6:22 Minuten, Stand: 05.08.2013 Pritlove, Tim: Podlove-Crowdfunding gestartet, http://metaebene.me/blog/2013/02/27/podlove-crowdfunding-gestartet/, Stand: 15.08.2013 Prokop, Michael: Open Source Projektmanagement, Open Source Press, 2010, 1. Auflage 129 Literaturverzeichnis Rashid, Fahmida: Size Matters: When Open Source Code Quality is Better than Proprietary Software, http://www.securityweek.com/size-matters-when-opensource-code-quality-better-proprietary-software, Stand: 08.08.2013 Ridder, Hans-Gerd: Personalwirtschaftslehre, Kohlhammer, 2009, 3. Auflage Scales, Mat: The State of Javascript Package Management, http://wibblycode.wordpress.com/2013/01/01/the-state-of-javascript-packagemanagement/, Stand: 28.06.2013 Schießle, Björn: Free Software, Open Source, FOSS, FLOSS - same same but different, https://fsfe.org/freesoftware/basics/comparison, Stand: 12.06.2013 Schmidt, John: Meteor's new $11.2 million development budget, http://www.meteor.com/blog/2012/07/25/meteors-new-112-milliondevelopment-budget, Stand: 06.08.2013 Schuba, Johannes: Großer BarCamp-Überblick: Alle Un-Konferenzen in Deutschland, Österreich und der Schweiz, http://t3n.de/news/grosser-barcampuberblick-alle-un-konferenzen-255252/, Stand: 23.07.2013 Schuh, Günther: Produktkomplexität managen: Strategien - Methoden - Tools, Carl Hanser Verlag, 2005, 2. Auflage Spencer, Donna: How to Conduct A Content Audit, http://uxmastery.com/how-toconduct-a-content-audit/, Stand: 16.07.2013 Stallman, Richard: Free Software: Freedom and Cooperation, http://www.gnu.org/events/rms-nyu-2001-transcript.txt, Stand: 13.08.2013 Stürmer, Matthias: Four types of open source communities, http://opensource.com/business/13/6/four-types-organizational-structureswithin-open-source-communities, Stand: 01.07.2013 Suh, Annie: Print vs Online Magazines, http://suite101.com/article/print-vsonline-magazines-a155014, Stand: 04.09.2013 de Valk, Joost: Open Source, Motivations & Business, http://yoast.com/opensource-motivations-business/, Stand: 19.08.2013 Vance, Ashlee: 3-D Printing Spurs a Manufacturing Revolution, http://www.nytimes.com/2010/09/14/technology/14print.html, Stand: 09.08.2013 Waldinger, Markus: Microsoft Project 2013 review, http://review.techworld.com/applications/3404323/microsoft-project-2013review/, Stand: 12.09.2013 Weber, Harrison: After nearly 10 years, Adobe abandons its Creative Suite entirely to focus on Creative Cloud, http://thenextweb.com/insider/2013/05/06/afternearly-10-years-adobe-abandons-its-creative-suite-entirely-to-focus-on-creativecloud, Stand: 08.08.2013 Weßel, Christa: Basiswissen Consulting, mitp, 2013, 1. Auflage Wilhelm, Axel: http://techcrunch.com/2013/08/07/in-the-smartphone-wars-itsios-vs-android-and-windows-phone-vs-the-rest/, Stand: 09.08.2013 Williams, Dan: Overview of Build Systems, http://www.cs.virginia.edu/~dww4s/articles/build_systems.html, Stand: 15.07.2013 Wirdeman, Ralf: Scrum mit User Stories, Carl Hanser Verlag, 2011, 2. Auflage Zakas, Nicholas: Starting An Open-Source Project, http://coding.smashingmagazine.com/2013/01/03/starting-open-sourceproject/, Stand: 26.06.2013 130 Selbstständigkeitserklärung 131 SELBSTSTÄNDIGKEITSERKLÄRUNG Hiermit erkläre ich, dass ich die vorliegende Arbeit selbstständig und nur unter Verwendung der angegebenen Literatur und Hilfsmittel angefertigt habe. Stellen, die wörtlich oder sinngemäß aus Quellen entnommen wurden, sind als solche kenntlich gemacht. Diese Arbeit wurde in gleicher oder ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegt. Leipzig, 16.09.2013 Unterschrift