The Architecture of Participation: Teilnehmende Open Source bei MySQL

Seite 3: Weitere Schritte 2007, Fazit

Inhaltsverzeichnis

Im Jahr 2007 wurden die meisten künstlichen Hindernisse für die teilnehmende Entwicklung der Community durch die folgenden acht Maßnahmen beseitigt. Dies heißt jedoch nicht, dass nach dem Jahr 2007 die Bemühungen eingestellt wurden, denn noch findet die Entwicklung von MySQL größtenteils durch firmeninterne Kräfte statt. nach 2006 1 die Gründung des MySQL Community Engineering Teams 2 die öffentliche Verfügbarkeit unserer Roadmap durch Worklog 3 das öffentliche Instant Messaging (IRC) mit den MySQL-Entwicklern über Freenode 4 die öffentlich durchgeführten Code Reviews 5 die öffentliche Verfügbarkeit der Schulungen in C und C++ der internen MySQL-Entwickler 6 die Übertragung interner Dokumentationen aus dem MySQL-Intranet zu Forge Wiki 7 die Teilnahme externer MySQL-Entwickler an MySQLs internem Entwicklertreffen in Heidelberg 8 das aktive Fördern neuer MySQL-Entwicklerkräfte durch den Google Summer of Code

Das MySQL Community Engineering Team wurde aus der Einsicht heraus gegründet, dass Code-Beiträge aus der Community ohne das aktive Mitwirken MySQL-eigener Entwickler kaum ihren Weg in das Produkt MySQL-Server finden. Vor 2007 war der Aufwand, einen Beitrag einzuarbeiten, eher eine Freizeitbeschäftigung engagierter Entwickler, deren persönlicher Erfolg daran gemessen wurde, wie viele neue Eigenschaften sie in MySQL erfolgreich programmiert beziehungsweise wie viele Fehler sie behoben hatten. Im Februar 2007 wurde eine neue Stelle geschaffen, deren Aufgabe die Motivation externer Entwickler ist. Diese sollen veranlasst werden, mehr zu machen, als unbedingt notwendig ist, um ihr eigenes Problem zu lösen. Denn eine allgemeingültige Weiterentwicklung bedarf Betriebssystemunabhängigkeit, Wartbarkeit und Zuverlässigkeit in Kombination mit anderen MySQL-Eigenschaften, die vielleicht vom ursprünglichen Entwickler gar nicht berücksichtigt wurden.

Als ein Teil von MySQL Forge wurde im Jahr 2007 unsere Roadmap veröffentlicht. Eine grobe Richtung war schon früher in der Dokumentation sichtbar, jedoch galt dies nicht für die Definition neuer Eigenschaften, welche nur Mitarbeitern vorbehalten war. Allerdings war dies für die wenigsten Definitionen sinnvoll, da sie zum Teil unbedingt auch von der Community kommentiert werden sollten. Das System konnte natürlich nicht ohne weiteres geöffnet werden, da Worklog zum Teil Informationen verwaltet, die nur von Entwicklungsleitern aktualisiert werden sollen. Wir haben uns daher für eine Informationskopie entschlossen, in der unsere Community die meisten Worklog-Einträge sehen und kommentieren kann.

Hindernisse für das Heranwachsen externer MySQL-Entwickler waren auch die fehlenden Lernmöglichkeiten. Viel lernt ein werdender Entwickler natürlich durch das Lesen des Quellcodes. Gefehlt hat es aber an Möglichkeiten, die Arbeit der internen Entwickler mitzuverfolgen, vor allem die Schritte, die vor der Veröffentlichung des Quellcodes passiert sind. Dieses Problem haben wir durch die Veröffentlichung der Instant-Messaging-Kommunikation, der Code-Reviews sowie der internen Schulungen für MySQL-Entwickler gelöst. Schon lange hat MySQL eigene IRC-Server benutzt, um in Echtzeit miteinander zu kommunizieren, beziehungsweise Probleme zu lösen. Manche dieser Diskussionen hätten genauso gut öffentlich geführt werden können. Beides war möglich, indem wir einen neuen Kanal (#mysql-dev) unter Freenode eröffneten. Mitunter loggen sich die internen MySQL-Entwickler, die früher nur im hauseigenen IRC aktiv waren, auch unter Freenode ein, sprechen dort miteinander und mit unseren aktiven Beitraggebern. Die anfängliche Angst davor, mit aus Sicht der MySQL-Entwicklung belanglosen Fragen konfrontiert zu werden, war schnell vorüber. Obwohl einige Fragen, etwa zu MySQL-Fehlermeldungen unter PHP, in andere Foren gehören, war das Auseinanderhalten des Wesentlichen vom Unwesentlichen keine große Herausforderung. Problematischer war es, die MySQL-internen Entwickler zu ermutigen, ihre bisher internen Diskussionen nunmehr öffentlich unter Freenode zu führen.

Bei den Code-Reviews verhielt es sich ähnlich. Die meisten E-Mails mit Kommentaren und Verbesserungsforderungen zu Programmänderungen wurden an eine interne Mailingliste gesandt. Die strengen, aber auch hilfreichen Kommentare, die von den Teilnehmern der Reviews gegeben wurden, blieben daher zum Teil ungenutzt. Anstatt die interne Liste für Code-Reviews zu benutzen, haben wir hier auf eine weitere Liste3, die auch externe Abonnenten hat, umgestellt. Diese werden, wenn sie später MySQL-Patches entwickeln, eine konkrete Auffassung dessen haben, was auf sie zukommen wird.

Bei der öffentlichen Verfügbarkeit der Schulungen in C und C++ für interne MySQL-Entwickler ging es etwas anders zu. Die hierfür vorgesehene MySQL University wurde erst 2007 konzipiert und systematisiert. Von Anfang an konnte sie von der Einsicht protieren, dass sie extern verfügbar werden sollte. Der zusätzliche Aufwand, die Schulungen offen anzubieten, hielt sich allerdings in Grenzen. Durch die virtuelle Natur der MySQL-Entwicklung (unser Motto ist Freedom to work anywhere @ MySQL) beruhen die Schulungen ohnehin auf dem Internet. Somit konnten wir uns zum Großteil auf schon vorhandene Bausteine wie MySQL Forge Wiki (Dokumentation) und Freenode IRC (Chat) beziehen. Übrig blieb nur die Frage der Audioübertragung: Wie sollte der Schulungsleiter preiswert für die ganze Welt hörbar werden? Die Entscheidung fiel auf audio streaming von Ogg Vorbis. Eine weitere unnötige Hürde, die teilweise noch vorhanden ist, besteht in der Verfügbarkeit einer internen Dokumentation für die Entwicklungsabteilung. Diese war hauptsächlich in unserem Intranet vorhanden. Von allen Schritten, die 2007 gemacht wurden, um unsere Entwicklung zu öffnen, ist dieser der unvollständigste. Obwohl immer mehr Dokumente unter MySQL Forge Wiki auch von den Entwicklern und Entwicklungsleitern erstellt werden, bleiben immer noch einige Dokumente unnötigerweise geheim. Es versteht sich von selbst, dass gewisse Termine, Pläne, Prozesse und kundenbezogene Daten sich nur intern dokumentieren lassen. Manche Dokumente könnten aber für unsere Entwickler-Community veröffentlicht werden. Die Arbeit, diese internen Dokumente auf externe Relevanz und Verfügbarkeit zu prüfen, ist noch im Gange.

Mit viel Vorfreude wurde die Entscheidung aufgenommen, Externe zu MySQLs internem Entwicklertreffen in Heidelberg einzuladen. Unsere Erwartungen wurden jedoch noch übertroffen: Der informelle Zugang zu allen MySQL-internen Entwicklern hat zu neuen Ideen, neuen Patches und nicht zuletzt zu neuen Anstellungsverträgen geführt. Mehrere externe Community-Mitglieder, die im September unser Treffen besucht haben, arbeiten jetzt für die Firma.

Die letzte Neuerung in der Gestaltung der Zusammenarbeit zwischen MySQL und potenziellen Beitraggebern galt nicht so sehr dem Entfernen von Hürden, sondern eher dem Bau von Brücken. Wir haben das Entstehen neuer Entwicklerkräfte aktiv gefördert, indem MySQL beim Google Summer of Code mitgemacht hat. Von zehn genehmigten MySQL-Projekten wurden acht erfolgreich abgeschlossen. Besonders gefreut hat sich MySQL darüber, dass mit Paul McCullagh und Sheeri Kritzer zwei der Mentoren aus der Community kamen.

Unsere Absicht beim Aufbau einer Architecture of Participation ist jene, es unserer Community zu ermöglichen, sich zu contributors zu entwickeln. Wir wollen es sowohl schmackhaft als auch leicht machen, zur Entwicklung von MySQL beizutragen. Zwangsläufig gibt es da Hürden und Herausforderungen, egal ob man als Entwickler innerhalb oder außerhalb der Firma arbeitet. Das Veröffentlichen des Quellcodes baut nur auf dem Grundstein der aktiven Teilnahme auf. MySQL Forge, MySQL University, der Entwicklerkanal auf Freenode, das Community Engineering Team, die öffentliche Roadmap sowie das Quality Contributor Program sind weitere Schritte, von denen wir uns erhoffen, dass für MySQL zum Wohl des gesamten Benutzerkreises mit der Zeit eine stetig wachsende Anzahl von aktiven, externen Beitraggebern entsteht. Dieser eingeschlagene Weg wird auch nach der Übernahme von MySQL AB durch Sun Microsystems fortgesetzt.4

(mid)