Qualitätssicherung unter dem Open Source Entwicklungsmodell Markus Böger 10. Juli 2009 Agenda Einleitung Grundlagen Entstehung eines Open Source Projektes Probleme des Open Source Entwicklungsmodells und Lösungen Zusammenfassung Ausblick
Einleitung Free Software / Open Source Software Steigende Verbreitung Akzeptanz der Benutzer Hohe Qualität Erreicht und sichergestellt Bekannteste Projekte: Linux Firefox Open Office Apache Webserver 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 2 Grundlagen Free Software / Open Source Software Gemeinsamkeiten Quelloffen Kostenlos Erweiterbar Veränderbar Unterschiede Bildquelle: http://www.arzanadv.it/blog/2009/05/16/la-differenza-tra-free-software-e-open-source/ Free Software Richard Stallman Open Source Software Eric S. Raymond 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 3
Free Software (Stallman) Ablehnung proprietärer Software Proprietäre Software = Closed Software Software Überprüfbar Transparent Freedom not free beer! Gründer der Bildquelle: http://www.fsf.org/ 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 4 Open Source Software (Raymond) Vermarktung Free Software zu ideologisch Wirtschaft erreichen Open Source Initiative Überlegenheit gegenüber Closed Software Bildquelle: http://www.opensource.org/ Zur Vereinfachung: Allgemein: Open Source Software (OSS) 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 5
Kathedrale Architekt Genaue Vorgaben und Strukturen Kleines Team Nicht an einem Tag erbaut Keine Zwischenstationen Nicht beliebig erweiterbar Bildquelle: http://www.kathedralen.net/amiens/amiens03.html 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 6 Basar Viele Beteiligte Anscheinend keine Vorgaben und Strukturen Schneller aufgebaut Viele Zwischenstationen Beliebig erweiterbar Bildquelle: http://www.pschultz.de/iran/theran/images/basar%202_b.jpg 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 7
Entstehung eines OS-Projektes Anfangsphase: Problem existiert Ein Entwickler oder kleines Team Lösung für Problem suchen Beteiligen (normaler Prozess bei OS) 30% der Entwickler von OS-Projekten Keine Lösung gefunden Neuentwicklung Phase der klassische Softwareentwicklung Design der Software Implementierung eines Prototypen Testen des Prototypen» Meistens ohne spezielle Testwerkzeuge 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 8 Entstehung eines OS-Projektes Fertiger Prototype Erfüllt Anforderungen des Entwicklers funktionieren jedoch Spielraum für Verbesserungen bieten Spricht der Prototype andere an? In Design und Implementierung? Einfach, verständlich und modular aufgebaut? Übergang zum Open Source Projekt Zeitpunkt für den Übergang sehr schwierig Viele Projekte verbleiben im kleinen Kreis 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 9
Entstehung eines OS-Projektes Übergangsphase: 1. Weg zur Veröffentlichung finden 2. Lizenzmodell auswählen 3. Projektmanagement nötig Webseite Mailing-Listen Foren Teilnahmebedingungen veröffentlichen Usw. Interessenten vorhanden Entstehung eines neuen OS-Projektes 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 10 Beispiel eines großen OS-Projektes Debian (Linux Distribution) Eines der größten OS-Projekte Hauptaufgabe: Integration von Softwarepaketen Erstellung eines einzigen stabilen Systems Debian 5.0 schon über 25000 Pakete Über 1000 aktive Entwickler Entwicklung von Debian 4.0 klassische Softwareentwicklung Kosten in Höhe von 13.000.000.000 US$ 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 11
Offener Quelltext Problem: jeder kann den Quelltext einsehen Fehler suchen Fehler verschweigen Fehler ausnutzen Viele Augen Prinzip Fehler wird öfter gefunden Fehler melden Fehler schnell beheben Bildquelle: http://www.bildburg.de/images/augen0002c_512.jpg 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 12 Offener Quelltext Streben nach Anerkennung anderer Programmierer Nicht möglich mit schlechtem Quelltext Bemühen nach gutem Quelltext Aufwerten des Lebenslauf Erfolgreiche Teilnahme an Open Source Projekten 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 13
Neue Entwickler Neue Helfer für das OS-Projekt finden anfangs wird jeder der Interesse hat aufgenommen Später: Verfahren komplizierter Gute Motivation Großes Interesse am Projekt Längerfristige Teilnahme» Qualität steigt» Wichtigere Aufgaben werden übernommen 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 14 Neue Entwickler Beispiel Debian: Verfahren zur Aufnahme neuer Mitglieder 1. GPG (GNU Privacy Guard) Schlüssel benötigt Signiert durch Debian Mitglied Erfordert persönliche Kontakte und hilft der Integration 2. Gesellschaftsvertrag akzeptieren 1. Debian wird zu 100% frei bleiben 2. Unser Beitrag zur Gemeinschaft für Freie Software 3. Wir werden Probleme nicht verbergen 4. Unsere Prioritäten sind unsere Anwender und Freie Software 3. Können und Erfahrung wird überprüft 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 15
Verteilte Entwicklung Verteilte Entwicklung Komplizierte Koordination Aufgaben Verteilung Erfordert gute Kommunikationsverfahren Inaktive Entwickler schwer zu finden Vorteil: 24 Stunden Entwicklung Schnellere Entwicklungszyklen Schnellere Fehlerfindung Bildquelle: http://www.schulbilder.org/erde-t9921.jpg 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 16 Verteilte Entwicklung Weltkarte der Debian-Entwickler Bildquelle: http://debiananwenderhandbuch.de/bilder/allgemein/debian-devel-earth.png 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 17
Verteilte Entwicklung Versionskontrollsysteme Wichtiges Werkzeug für verteilte Entwicklung Zugriff auf letzten Entwicklungsstand von überall möglich Änderungen am Quelltext erfassen Zeit und Benutzerstempel Zurücknahme von Änderungen Zugriffsrechte Archivierung von Releaseversionen 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 18 Inaktive Entwickler Inaktive Entwickler Aufgaben vernachlässigen Interesse verloren Kein einheitlicher Arbeitsplatz Fehlende Mitarbeiter fallen nicht schnell auf Finden und bestätigen dieser schwierig Freiwillige Kein Zwang möglich 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 19
Inaktive Entwickler Gründe für Inaktivität Interesse am Projekt verloren Private Aufgaben Berufliche Verpflichtungen Urlaub Krankheit Inaktive Entwickler Finden sehr wichtig Aufgaben neu verteilen Drohender Qualitätsverlust 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 20 Inaktive Entwickler Verfahren von Debian: Skripte suchen nach potentiellen inaktiven Mitgliedern, bevor menschliches Handeln erforderlich wird. Erster Kontakt: Email schicken. 15 Tage später: Email erneut schicken. Weitere 15 Tage später: Dem Entwickler mitteilen, dass sein Aufgabenbereich vernachlässigt wurde und eine Antwort innerhalb 30 Tagen erfolgen muss. erneut schreiben mit letzter Warnung. 15 Tage später wird der Entwickler auf inaktiv gesetzt. Weitere 90 Tage später wird der Entwickler entfernt. 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 21
Inaktive Entwickler Inaktive Entwickler Abmelden Telefonnummer hinterlassen Ersatz einarbeiten Schwierigkeit der Findung umgehen Redundante Strukturen schaffen Backup-Entwickler Bei wichtigen Softwareteilen: Teams bilden 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 22 Fehlerbehebung Vorteil Open Source Software: Nutzer bereit unfertige Produkte zu testen Kostenlose Software Geben Feedback Viele Tester Viele Testumgebungen Hard- und Softwarekombinationen Viele Fehler schnell gefunden Meistens schon kurz nach Veröffentlichung Debugging Prozess: 50% - 1300% der Kosten 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 23
Fehlerbehebung Bugtracker Organisation Fehler melden Fehler beheben Neue Funktionen anfragen Datenbank mit allen existierenden Fehlern Fehler aussuchen Fehler zuteilen Verschiedene Fehlerkategorien 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 24 Fehlervermeidung Peer Reviews Begutachtung von Ebenbürtigen Quelltext über Mailing-Listen Akzeptiert Veto eingelegt Diskussion Sicherstellen von gutem Quelltext Beste Methode zur Qualitätssicherung Allgemein: Abstimmungen häufiges Mittel in der OS- Entwicklung 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 25
Fehlervermeidung Wiederverwendung von Komponenten Open Source fördert Wiederverwendung Lizenz Funktion bestätigt und getestet Zeitersparnis bei der Entwicklung Qualitätsgewinn durch bewährten Quelltext Bildquelle: http://www.msuess.com/wp-content/uploads/2008/05/recycling.png 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 26 Dokumentation Oft vernachlässigt Schwierige Einarbeitung Schreckt neue Mitglieder ab Beispiel: Mozilla Anfangs kaum Dokumentation Kaum neue Entwickler Verlangsamte Entwicklung Nach Einführung von Dokumentationen und Anleitungen Stetiger Zuwachs an neuen Mitgliedern Firefox mittlerweile einer der führenden Browser Bildquelle: http://www.uni-potsdam.de/farapsycho/images/stories/buecher.gif 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 27
Dokumentation Selten von Projekten benutzt 84% nur TODO-Listen 62% besitzen Installationsanleitungen 32% benutzen Designdokumente 20% haben Veröffentlichungstermine [ ] Es ist leicht, Leute zu finden, die genialen Code schreiben. Es ist schwierig, Leute zu finden, die bereit sind, diesen genialen Code auch für den Anfänger lesbar zu dokumentieren Dirk Hohndel (SuSE AG) 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 28 Dokumentation Dokumentationsteams bilden Personen, die nicht programmieren können oder wollen. Beispiel: Debian Anwenderhandbuch Leitfäden, Wiki, Foren, Anleitungen, FAQ-Seiten usw. Fazit: Dokumentationen sehr wichtig Neue Entwickler Neue Benutzer Höhere Qualität 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 29
Zusammenfassung Gute Organisation Redundante Strukturen gute Dokumentation Viele Mitglieder Vielfalt von Hard- und Softwareumgebungen Fazit: Management muss funktionieren 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 30 Ausblick Rückgang von proprietärer Software Qualitätsverlust Komplexität heutiger Computerwelt zu groß Weitverbreitete Software Jetzt schon Open Source Gegenstücke Einsatz nur noch in speziellen Umgebungen Wo kaum Interesse der Allgemeinheit besteht 10.07.2009 Qualitätssicherung unter dem Open Source Entwicklungsmodell Folie 31
Diskussion Noch Fragen?