Open Source im professionellen Einsatz
Linux-Magazin 01/2011
© pink cherry, Photocase.com© Konstantin Chagin, 123RF.com

© pink cherry, Photocase.com© Konstantin Chagin, 123RF.com

Agile Entwicklung und die Arbeit an Community-Projekten

Agile Gemeinschaft

Vor zehn Jahren formulierten ein paar Entwickler das Agile Manifesto, heute arbeiten viele Software-Entwickler in Unternehmen danach. Auch auf die verteilte Open-Source-Entwicklung lassen sich einige Aspekte agiler Verfahren aus Scrum & Co. anwenden.

517

Community-Projekte sind dezentral über das Internet organisiert. Die aktiven Teilnehmer kommunizieren über Kanäle wie Mail und IRC oder schlicht über ein Ticket- oder Versionskontrollsystem (VCS). Sie arbeiten am Projekt gewöhnlich in ihrer Freizeit, sodass sie selten über einen längeren Zeitraum konkrete Ergebnisse zu bestimmten Zeiten verbindlich zusagen können. Und bekanntlich bereiten zu starke Formalismen diesen Entwicklern eher Probleme, steht doch bei ihnen der Spaß im Vordergrund.

Agile Vorgehen wie Scrum [1] legen dagegen Wert auf Synchronisationspunkte wie kurze Meetings, transparente Commitments und klare Zeitplanung. Auf den ersten Blick scheinen also beide Ansätze inkompatibel. Es lohnt sich jedoch, den Begriff Agilität etwas differenzierter zu betrachten.

Ein agil arbeitender Entwickler will durch Selbstauszeichnung mit diesem Attribut sicherlich nicht verdeutlichen, er arbeite agil im eigentlichen Sinne des Wortes, also zackig. Das würde wohl jeder von sich behaupten. Agil ist vielmehr ein bunter Blumenstrauß, der sich in drei Kernbereiche untergliedern lässt. Zunächst nennt das Agile Manifesto die Werte Offenheit, Interaktion und Kollaboration, zu denen sich die Entwickler bekennen [2]. Ergänzend dazu lassen sich agile Praktiken wie Continuous Integration oder Refactoring ausmachen.

Werte, Praktiken, Strategie

Zu guter Letzt gibt es agile Vorgehensmodelle oder Rahmenwerke. Eines davon nennt sich Scrum. Die Modelle zeichnen sich besonders durch Iterationen, Transparenz und enges Einbeziehen des Auftraggebers aus.

Werkzeuge spielen auf allen drei Ebenen eine untergeordnete Rolle, da stattdessen Menschen und Prozesse im Mittelpunkt stehen sollen. Agile Entwickler wählen Werkzeuge für einen konkreten Einsatz aus und konfigurieren sie so, dass sie zu den Prozessen und den Anforderungen passen [3].

Agilität lässt sich auch für Community-Projekte adaptieren. Die Werte finden sich fast immer wieder, gerade weil es sich bei vitalen Projekten um eine gemeinsame, kooperative Arbeit handelt. Viele wenden bereits agile Strategien wie beispielsweise Nightly Builds an. Nicht selten halten dabei Modul-Tests, Überprüfungen auf Testabdeckung oder Audits die Qualität hoch.

Andere typische Strategien sind zwar auf die verteilte Entwicklung anwendbar, haben bei Community-Projekten aber weniger Relevanz, zum Beispiel das Pair Programming (PP). Gelegentliche Treffen oder gemeinsame Coding-Nächte bieten keine Alternative zu einem sauber konzipierten PP. Eine elektronisch verteilte Version von PP ist in Community-Projekten daher auch die große Ausnahme. Die Art der Kommunikation unterscheidet sich bei solchen Projekten stark von Entwicklergruppen, die täglich am selben Ort arbeiten.

Scrum und andere Modelle

Agile Strategien lassen sich auch in vielen Vorgehensmodellen anwenden, zum Beispiel beim Spiral- oder Wasserfall-Modell. Damit erhöhen Entwickler die Chance, ihr Projekt erfolgreich zu beenden. Darüber hinaus basiert jedes Vorgehensmodell in der einen oder anderen Form auf Iterationen - interessanterweise sogar das Wasserfall-Modell.

Vor diesem Hintergrund lassen sich "agile" Merkmale an vielen Ansätzen erkennen. Eines der populärsten agilen Vorgehen ist Scrum. Dieses Management-Rahmenwerk trifft keine Aussagen, wie Projektbeteiligte gerade Software erstellen sollen. Im Grunde kann Scrum auch dabei helfen, eine Fußballmannschaft zusammenzustellen oder einen Taubenzüchterverein zu gründen. Anwender reduzieren Scrum oft auf die eigentliche Konstruktion der Software. Dann fehlen aber bei einer Implementierung für erfolgreiche Projekte ebenfalls nötige Phasen wie Vision und Anforderungserhebung sowie Betrieb und Wartung der Software [4].

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Scrum und Kanban

    Wie organisieren moderne Firmen ihren IT-Betrieb? Das Linux-Magazin widmet dieser Frage seinen Schwerpunkt. Zu Beginn sieht sich die Redaktion in zwei Internet-Unternehmen in Berlin und München um und stieß auf die agilen Methoden Scrum und Kanban, die derzeit in Admin-Abteilungen einziehen.

  • Munteres Miteinander

    Entwickler müssen sich organisieren, agiles Vorgehen ist dabei gerade en vogue. Da fragen sich Sysadmins, ob sich Iterationen, das Arbeiten in Paaren und kurze Meetings nicht übertragen lassen.

  • Freies Werkzeug für Scrum-Prozess

    Die Berliner Firma Agile 42 hat Version 0.7 ihrer Software Agilo für Scrum veröffentlicht, die Entwickler-Teams bei der Umsetzung des agilen Entwicklungsmodells Scrum unterstützt.

  • Cebit: Agiles Dokumentenmanagement mit Agorum Core Pro

    Auch das freie Dokumentenmanagementsystem Agorum Core Pro 7.9.1 war auf der Cebit zu sehen, seine Macher zeigten, was es Neues kann.

  • Bruchlos modelliert

    Weder Anhänger des traditionellen Programmierparadigmas noch Verfechter agiler Methoden bestreiten bei Softwareprojekten die Notwendigkeit einer bruchlosen Modellierung. Das auf Eclipse aufsetzende Unicase stellt hierfür ein einheitliches Projektmodell zur Verfügung.

comments powered by Disqus

Ausgabe 06/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.