dokumentation in agilen projekten - dpunkt.verlag...typische vertreter dieser methoden sind die...

14
1 1 Einleitung 1.1 Motivation Agile Methoden legen in Softwareentwicklungsprojekten großen Wert auf direkte Kommunikation von Angesicht zu Angesicht und nehmen gegenüber umfangreicher schriftlicher Dokumentation eine eher kriti- sche Haltung ein. Sie erkennen aber an, dass Dokumentation sinnvoll sein kann und manchmal auch benötigt wird. Daraus resultiert die Frage, wie die Dokumentation in einem agi- len Kontext sinnvoll gestaltet werden kann. Die Möglichkeiten dafür auszuloten ist Gegenstand dieses Buchs. Das Ziel dabei ist, bei der Pla- nung, der Erstellung und der Nutzung von Dokumentation Strategien zu entwickeln, die sich am besten mit dem Wort bedarfsgerecht beschreiben lassen – die sich also an den tatsächlichen Bedürfnissen eines Projekts orientieren [Rüping 2011]. Ein bedarfsgerechtes Vorgehen bezieht sich zum einen darauf, was in einem Projekt schriftlich dokumentiert werden sollte (und was nicht). Es betrifft zum anderen die Frage, wie eine angemessene Doku- mentation gestaltet werden kann. Beiden Fragen werden wir in diesem Buch nachgehen. 1.2 Historie der agilen Entwicklung Um die Sichtweise der agilen Methoden verstehen zu können und spe- ziell auch, was zu der betont kritischen Sicht auf umfangreiche Doku- mentation geführt hat, lohnt sich ein Rückblick auf die 1990er-Jahre. In dieser Zeit haben die ersten agilen Verfahren ihren Ursprung. Bli- cken wir also einmal auf die damals gängigen oder zumindest doch empfohlenen Methoden in der Softwareentwicklung. Prozesslastige Methoden in den 1990er-Jahren Die 1990er-Jahre waren geprägt von einer Reihe von Methoden, die großen Wert auf definierte Prozesse und umfangreiche Dokumen- tation legten. Diese Methoden waren durch das Ziel gekennzeichnet, Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2 D3kjd3Di38lk323nnm

Upload: others

Post on 13-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1

1 Einleitung

1.1 Motivation

Agile Methoden legen in Softwareentwicklungsprojekten großen Wertauf direkte Kommunikation von Angesicht zu Angesicht und nehmengegenüber umfangreicher schriftlicher Dokumentation eine eher kriti-sche Haltung ein. Sie erkennen aber an, dass Dokumentation sinnvollsein kann und manchmal auch benötigt wird.

Daraus resultiert die Frage, wie die Dokumentation in einem agi-len Kontext sinnvoll gestaltet werden kann. Die Möglichkeiten dafürauszuloten ist Gegenstand dieses Buchs. Das Ziel dabei ist, bei der Pla-nung, der Erstellung und der Nutzung von Dokumentation Strategienzu entwickeln, die sich am besten mit dem Wort bedarfsgerechtbeschreiben lassen – die sich also an den tatsächlichen Bedürfnisseneines Projekts orientieren [Rüping 2011].

Ein bedarfsgerechtes Vorgehen bezieht sich zum einen darauf, wasin einem Projekt schriftlich dokumentiert werden sollte (und wasnicht). Es betrifft zum anderen die Frage, wie eine angemessene Doku-mentation gestaltet werden kann. Beiden Fragen werden wir in diesemBuch nachgehen.

1.2 Historie der agilen Entwicklung

Um die Sichtweise der agilen Methoden verstehen zu können und spe-ziell auch, was zu der betont kritischen Sicht auf umfangreiche Doku-mentation geführt hat, lohnt sich ein Rückblick auf die 1990er-Jahre.In dieser Zeit haben die ersten agilen Verfahren ihren Ursprung. Bli-cken wir also einmal auf die damals gängigen oder zumindest dochempfohlenen Methoden in der Softwareentwicklung.

Prozesslastige Methoden

in den 1990er-Jahren

Die 1990er-Jahre waren geprägt von einer Reihe von Methoden,die großen Wert auf definierte Prozesse und umfangreiche Dokumen-tation legten. Diese Methoden waren durch das Ziel gekennzeichnet,

Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2

D3kjd3Di38lk323nnm

Page 2: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1 Einleitung2

den Ablauf eines Projekts im vorhinein detailliert zu planen und sichbei der anschließenden Umsetzung streng am Plan zu orientieren.

Fast alle diese Methoden basieren auf dem klassischen Wasserfall-modell, das den Prozess der Softwareentwicklung in verschiedene Pha-sen unterteilt (Grobspezifikation, Feinspezifikation, Entwurf, Realisie-rung, Test, Auslieferung), die typischerweise streng sequenziell durch-laufen werden. Dokumentation spielt beim Wasserfallmodell insoferneine große Rolle, als die Ergebnisse einer Phase in der Regel gründlichdokumentiert werden und die Dokumentation als Input für die nächstePhase bereitgestellt wird.

Typische Vertreter dieser Methoden sind die folgenden:

■ Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten, dessen Ursprünge insJahr 1979 zurückgehen. Es erweitert das traditionelle Wasserfall-modell, indem es jeder der ursprünglichen Phasen eine Test- oderAbnahmephase gegenüberstellt. Während das originale V-Modelldurch relativ starre Prozesse gekennzeichnet war, lässt die 2005 inDeutschland eingeführte Variante XT bereits eine gewisse Anpas-sung der Prozesse an spezifische Gegebenheiten zu.

■ Das 1986 erstmals vorgestellte Spiralmodell ist ein Vorgehensmo-dell, das ebenfalls auf dem Wasserfallmodell beruht, es aber bereitsum die Idee der iterativen Entwicklung erweitert. Es sieht vor, typi-sche Phasen wie Analyse, Entwurf, Realisierung und Test immerwieder zu durchlaufen und sich so schrittweise dem Projektziel zunähern.

■ Der 1998 erstmals veröffentlichte Rational Unified Process (RUP)[Kruchten 1998] umfasst ein Vorgehensmodell zur Softwareent-wicklung, das zur Modellierung die bekannte Unified ModelingLanguage (UML) [Rumbaugh/Jacobsen/Booch 1998] einsetzt. Auchder Rational Unified Process weicht bereits deutlich vom klassi-schen Wasserfallmodell ab und empfiehlt stattdessen ein iterativesVorgehen.

Ebenso prägend für die 1990er-Jahre waren Bemühungen, durch dieVerbesserung der zugrunde liegenden Prozesse die Qualität von Soft-ware zu erhöhen. Resultat dieser Bemühungen waren verschiedeneProzessframeworks, die zwar kein spezielles Verfahren vorschreiben,aber doch dazu auffordern, innerhalb eines bestimmten Rahmens Pro-zesse und Vorgehen zu definieren. Zu den oben genannten Soft-wareentwicklungsmethoden sind diese Prozessframeworks in demSinne orthogonal, dass sie unterschiedliche Schwerpunkte setzen und

Page 3: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

31.2 Historie der agilen Entwicklung

sich mit diesen kombinieren lassen. Bekannte Prozessframeworks sinddie folgenden:

■ Das Capability Maturity Model Integration (CMMI) ist ein Modellzur Beurteilung des Reifegrads sämtlicher Prozesse eines Unterneh-mens im Zusammenhang mit der Entwicklung und dem Betriebvon Software. Ziel ist die Definition, Planung, Implementierungund Qualitätssicherung dieser Prozesse. Das relativ starre ursprüng-liche Modell (CMM) wurde 2003 durch den flexibleren Nachfol-ger (CMMI) abgelöst.

■ Die Normenreihe ISO 9000 ff. legt Mindestanforderungen für dieQualitätssicherung fest. Die Normen beziehen sich auf Produkt-herstellung und Dienstleistungen generell und werden gelegentlichauch auf die Softwareentwicklung angewendet. Seit Mitte der1990er-Jahre sind manche Softwareunternehmen bestrebt, sich inBezug auf ihre Qualitätsstandards nach ISO 9000 zertifizieren zulassen.

Sowohl die genannten Softwareentwicklungsmethoden als auch dieProzessframeworks zur Qualitätssicherung sind im Laufe der Zeit wei-terentwickelt worden. In einigen Fällen drückt sich dies in derNamensgebung aus. So trat zum Beispiel an die Stelle des ursprüngli-chen V-Modells die Variante XT, und CMM wurde durch CMMIabgelöst.

Die traditionellen Entwicklungsmethoden, die ursprünglich aufdem Wasserfallmodell basierten, haben sich dabei tendenziell auf einstärker iteratives Vorgehen hin bewegt. Die Prozessframeworks habenim Laufe der Zeit an Flexibilität gewonnen und tragen mittlerweile derTatsache Rechnung, dass Projekte individuell geprägt sind und dassProzesse an die individuellen Gegebenheiten angepasst werden müs-sen. Dementsprechend befinden sich Prozessframeworks wie beispiels-weise CMMI heutzutage nicht mehr unbedingt im Widerspruch zu agi-len Methoden [Glazer/Dalton/Anderson/Konrad/Shrum 2008].

Ende der 1990er-Jahre stellte sich die Situation allerdings nochanders dar. Die genannten Entwicklungsmethoden waren damals nochbestrebt, allgemeingültige Modelle für die Softwareentwicklung aufzu-stellen, und begannen sich nur langsam vom Wasserfallmodell zu lösen.Sie wurden zunehmend als starr, schwergewichtig und wenig flexibelwahrgenommen. Mit dem Aufkommen der Prozessframeworks rück-ten Prozessdefinitionen noch mehr in den Mittelpunkt der Software-entwicklung, was den Eindruck von Schwergewichtigkeit und man-gelnder Flexibilität weiter verstärkte.

Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2

Page 4: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1 Einleitung4

Die Kombination aus wasserfallbasierten Entwicklungsmethodenund vergleichsweise starren Prozessdefinitionen hat in der Praxisimmer wieder zu massiven Problemen geführt, die in manchen Fällenauch für das Scheitern großer Projekte ursächlich waren:

■ Der Overhead, der durch die Prozesslastigkeit und die häufig damitverbundene Bürokratie dieser Methoden entsteht, kann immenssein und kann die Kreativität und Produktivität des Entwicklungs-teams regelrecht ersticken. In manchen, nach schwergewichtigenVerfahren durchgeführten Projekten wurde mehr Aufwand darininvestiert, den formalen Kriterien des Softwareentwicklungspro-zesses zu genügen als tatsächlich Software zu entwickeln.

■ Der Wunsch, jede noch so kleine Anforderung, aber auch jedenEntwicklungsschritt im Projekt zu dokumentieren, hat häufig zuBergen von Dokumentation geführt, die niemand mehr hat lesenkönnen.

■ Die exakte Planung eines Projekts für mehrere Monate oder garJahre in die Zukunft ist schwierig bis unmöglich. Das Geschehenim Projekt ist schlecht vorhersehbar. Anforderungen ändern sichim Laufe der Zeit, und auch eine gutgemeinte Planung hat sich oftals unzuverlässig herausgestellt.

■ Die häufig mit prozesslastigen Verfahren einhergehende sequenzi-elle Abfolge der einzelnen Projektphasen führt dazu, dass derKunde die entstandene Software erst gegen Ende des Projekts zusehen bekommt. Zu einem so späten Zeitpunkt ist es sehr schwer,das Feedback des Kunden auf die entwickelten Systeme noch zuberücksichtigen und möglicherweise noch eine Kurskorrektur vor-zunehmen.

Als Konsequenz aus diesen Problemen kam gegen Ende der 1990er-Jahre immer häufiger die Forderung auf, sich von starren, schwerge-wichtigen Prozessen zu lösen und stattdessen mehr Wert auf Flexibi-lität zu legen.

Forderung nach mehr

Flexibilität

Unter Flexibilität wird dabei die Fähigkeit verstanden, sich anwechselnde Bedingungen und Anforderungen anzupassen. In der Evo-lutionsbiologie ist diese Fähigkeit eine Grundvoraussetzung für dasÜberleben von Arten. Analog dazu ist diese Flexibilität auch in Ent-wicklungsprojekten ein entscheidendes Kriterium, das für den Erfolgoder Misserfolg eines Projekts ausschlaggebend sein kann. Im gleichenZug wurde gefordert, die eigentliche Erstellung der Software wiedermehr in den Mittelpunkt des Projektgeschehens zu stellen und hinge-gen Prozesse und Methoden als Mittel zum Zweck zu betrachten und

Page 5: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

51.2 Historie der agilen Entwicklung

immer wieder auf ihren Sinn und Zweck hin zu überprüfen. Die Ideeeines agilen Vorgehens war geboren.

Agiles ManifestIn der Folge haben einige der frühen »Agilisten« begonnen, Prakti-ken agilen Vorgehens zu entwickeln und in ihrer alltäglichen Projekt-praxis anzuwenden. Im Februar 2001 trafen sich 17 dieser Experten zueinem Workshop mit dem Ziel, ihre Erfahrungen mit dem neuen Vor-gehen auszutauschen. Bei den Diskussionen im Rahmen dieses Work-shops hat sich dann das herauskristallisiert, was heute als die Prinzi-pien agiler Entwicklung verstanden wird. Das Ergebnis des Workshopsist später als das Agile Manifest bekannt geworden [Agile Alliance2001]. Abbildung 1–1 zeigt die Kernaussage des Agilen Manifests inder deutschen Übersetzung.

Neben diesen grundlegenden Prinzipien benennt das Agile Manifestauch eine Reihe von Kernpraktiken, die sich für die konkrete Anwen-dung in der täglichen Projektpraxis eignen. Einige davon sind die fol-genden:

■ Software wird inkrementell entwickelt. Das Team liefert kontinu-ierlich die jeweils entwickelten Inkremente an den Kunden aus.

■ Die Menge funktionierender Software dient als primäres Fort-schrittsmaß.

Abb. 1–1Agiles Manifest

Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2

Page 6: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1 Einleitung6

■ Fachexperten und Entwickler kooperieren eng miteinander, idea-lerweise auf täglicher Basis.

■ Die wichtigste Kommunikationsform der Projektbeteiligten ist dasGespräch von Angesicht zu Angesicht.

■ Einfachheit ist ein Prinzip. Einfachen Lösungen wird der Vorzugvor komplizierten Lösungen gegeben.

■ Das Team reflektiert regelmäßig sein Vorgehen und passt das Vor-gehen gegebenenfalls an.

Wenngleich das Agile Manifest diese und eine Reihe weiterer Prakti-ken empfiehlt, so beschreibt es dennoch keine spezifische Entwick-lungsmethode. Durch die Formulierung grundlegender Prinzipien gibtes vielmehr den Rahmen vor, in dem sich die agile Softwareentwick-lung bewegt. Für die konkrete Ausgestaltung einzelner Methodenbleibt dabei noch viel Spielraum. Dieser Spielraum ist auch notwendig,weil Projekte sehr unterschiedlich sind, zum Beispiel im Hinblick aufAnzahl der beteiligten Personen, Laufzeit, Umfang der Funktionalität,Komplexität, Technologie und Kritikalität. Nicht alle Projekte könnennach derselben Methode durchgeführt werden. Verschiedene agileMethoden interpretieren daher den Rahmen, den das Agile Manifestvorgibt, auf durchaus unterschiedliche Art und Weise. Viele derMethoden weisen durchaus Ähnlichkeiten auf und können auch gutmiteinander kombiniert werden, dennoch gibt es auch eine Vielzahlvon Unterschieden.

Verschiedene agile

Methoden

Im Laufe der Zeit hat sich eine Reihe von agilen Methoden zurSoftwareentwicklung etabliert, die in ihrer konkreten Ausgestaltungunterschiedliche Akzente setzen und auch unterschiedliche Verbrei-tung erfahren haben.

■ Eine der frühesten agilen Methoden ist eXtreme Programming,häufig auch einfach als XP bezeichnet [Beck 2000; Wolf/Roock/Lippert 2005]. Seit dem Jahr 2000 hat XP einige Popularitäterreicht. XP basiert auf einer Reihe bewährter Praktiken, zu denenbeispielsweise inkrementeller Entwurf, testgetriebene Entwicklungsowie kontinuierliche Integration gehören. Bekannt geworden istXP vor allem für die Einführung von Pair Programming.

■ Bei Crystal [Cockburn 2002] handelt es sich um eine Familie vonMethoden, die abhängig von der Anzahl der Projektbeteiligten undvon der Kritikalität des Projekts verschiedene Strategien zur Kom-munikation und zur Qualitätssicherung vorschlagen.

■ Scrum ist mittlerweile die bekannteste agile Methode, zumindestim deutschsprachigen Raum [Schwaber/Beedle 2008; Pichler 2007;Cohn 2010; Wolf/van Solingen/Rustenburg 2010; Gloger 2011;

Page 7: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

71.2 Historie der agilen Entwicklung

Wirdemann 2011; Röpstorff/Wiechmann 2012]. Kennzeichen vonScrum ist ein iteratives Vorgehen, das sich in regelmäßigen Inter-vallen, den sogenannten Sprints, ausdrückt. In diesen Sprints wer-den jeweils Inkremente der Software entwickelt und ausgeliefert.Am Ende jeden Sprints steht unter anderem eine Retrospektive zurÜberprüfung des eigenen Vorgehens.

■ Feature-Driven Development (FDD) ist ein leichtgewichtiges Ver-fahren, das ausgehend von einem Gesamtmodell eine Liste einzel-ner Features entwickelt und die gesamte Entwicklung dann in dieImplementierung der einzelnen Features herunterbricht [Palmer/Felsing 2002]. FDD ist vielleicht weniger »revolutionär« als bei-spielsweise XP oder Scrum, befindet sich aber durchaus im Ein-klang mit den Prinzipien agiler Entwicklung.

■ Eine der neueren agilen Methoden ist Kanban [Anderson 2011],das seinen Ursprung in den Prinzipien des Lean Development hat[Poppendieck/Poppendieck 2003]. Kanban versucht durch dieReduktion paralleler Arbeit den gesamten Fluss aller Projekttätig-keiten zu erhöhen.

Einige dieser Methoden haben mittlerweile einen großen Bekanntheits-grad erlangt und gehören zum Standardrepertoire heutiger Software-entwicklung. Insbesondere mit XP, Scrum und Kanban sind bereitsviele Projekte erfolgreich durchgeführt worden [Wolf 2011].

Neben diesen Methoden haben noch weitere Techniken aufgrundihres agilen Charakters eine gewisse Bekanntheit erlangt. Zu nennensind hier insbesondere die folgenden:

■ Bei testgetriebener Entwicklung (Test-Driven Development) han-delt es sich um eine Strategie, die das Testen von Software in denVordergrund stellt (nachdem es über lange Zeit hinweg in vielenProjekten nur ein Schattendasein gefristet hatte). Das Prinzip istdabei, der Entwicklung bestimmter Funktionen immer die Ent-wicklung entsprechender Tests vorausgehen zu lassen [Westphal2005]. Testgetriebene Entwicklung ist als Einzeltechnik Bestandteilvieler agiler Verfahren.

■ Agile Modeling ist ein Verfahren, das sich auf die Modellierungsas-pekte in Projekten konzentriert und dafür leichtgewichtige unddurch starke Interaktion geprägte Prozesse empfiehlt [Ambler2002].

■ DevOps ist ein vergleichsweise neuer Ansatz, der das Ziel verfolgt,ein agiles Vorgehen auf den Betrieb von Software auszudehnen[Peschlow 2011]. Schwerpunkt ist dabei die enge Kooperation zwi-schen Entwicklern und Betriebsabteilung. Durch die regelmäßige

Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2

Page 8: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1 Einleitung8

Auslieferung von Software geht deren Inbetriebnahme in einen ein-fachen, erprobten und reproduzierbaren Prozess über.

Zum Thema Dokumentation gibt es im Agilen Manifest keine Vor-schriften, was das konkrete Vorgehen im Projekt angeht. Hingegenvermittelt das Agile Manifest eine grundsätzliche Haltung, die zwarden Wert von Dokumentation anerkennt, diesen Wert aber auchgegenüber anderen Projektzielen relativiert. Gerade vor dem histori-schen Hintergrund ist dies nur zu verständlich.

Die schwergewichtigen Methoden der 1990er-Jahre hatten alle-samt ein gehöriges Maß an Dokumentation mit sich gebracht. Ziel wardamals gewesen, jegliche Information, die in einer bestimmten Projekt-phase benötigt wird, vorher schriftlich zu fixieren. In manchen Projek-ten wurden über einen Zeitraum von Jahren nur Spezifikationen undKonzeptpapiere erstellt, bevor überhaupt eine einzige Zeile Code pro-grammiert wurde. Dabei sind in der Regel große Mengen an Doku-mentation entstanden, die in ihrer Fülle gar nicht gelesen werdenkonnten und außerdem schneller veraltet sind, als es jedem Projektbe-teiligten recht sein konnte. Insider sprechen in einem solchen Fall vonwrite-only documentation.

Dokumentation als Mittel

zum Zweck

Ein gemeinsames Merkmal aller agiler Methoden ist, dass sie der-artige Szenarien vermeiden wollen. Der Grund hierfür liegt in derErkenntnis, dass Dokumentation nicht automatisch zum Verständnisder Materie führt, wie auch Abbildung 1–2 andeutet. Beim Schreibenwandert nur ein Teil des in den Köpfen vorhandenen Wissens tatsäch-lich auch ins Dokument, manches hingegen bleibt unausgesprochen.Gleichermaßen erfassen auch gründliche Leser nicht immer alles, wasin einem Dokument beschrieben ist.

Abb. 1–2Dokumentation vs.

Verständnis

Verständnisbeim Autor

Verständnisbeim LeserDokumentation

Page 9: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

91.2 Historie der agilen Entwicklung

Ein bisschen ähnelt schriftliche Dokumentation damit dem Prinzip derstillen Post, was die Schlussfolgerung zulässt, dass Wissen mithilfe vonschriftlicher Dokumentation eben nicht vollständig weitergegeben wer-den kann und sich beim Leser nicht automatisch ein Verständnis derMaterie einstellt. Weil Verständnis der Materie aber das ist, worauf esim Projekt letztlich ankommt, ist eine kritische Haltung gegenüber derDokumentation nur folgerichtig. In manchen Fällen ist Dokumentationzweifellos sinnvoll, in anderen Fällen gibt es andere Kommunikations-kanäle, die für den Transfer von Wissen eben besser geeignet sind.

Diese Erkenntnis hat die 17 Teilnehmer des Workshops, auf demdas Agile Manifest entstanden ist, dazu gebracht, umfassende Doku-mentation auf der rechten Seite anzusiedeln (vgl. Abb. 1–3), also dort,wo diejenigen Dinge beschrieben sind, die zwar einen Nutzen für einProjekt haben, die aber als ein Mittel zum Zweck (und eben nicht alsSelbstzweck) betrachtet werden müssen.

Leider gibt es auch immer wieder Projekte (manchmal auch solche, diesich agil nennen), die die Frage nach der Notwendigkeit möglicherDokumentation erst gar nicht stellen. In diesen Projekten wird nurrudimentär dokumentiert oder auf die Erstellung von Dokumentationfast vollständig verzichtet – aber eben nicht, weil gute Gründe dafür

Abb. 1–3Agiles Manifest mit

Hervorhebung der

Dokumentation

Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2

Page 10: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1 Einleitung10

sprechen, auf bestimmte Dokumente zu verzichten, sondern weil dasThema Dokumentation einfach ignoriert wird. Die Problematik diesesAnsatzes wird spätestens dann deutlich, wenn Wissensträger das Pro-jekt verlassen haben, die Funktionsweise der Software nicht mehrnachvollziehbar ist und ihre Wartung oder Weiterentwicklung nahezuunmöglich wird, ohne ein umfangreiches Reverse-Engineering zubetreiben, was letztlich eine aufwendige und wenig dankbare Angele-genheit ist. Das ist natürlich kein kluges Vorgehen, und tatsächlich hatdas mit Agilität auch nichts mehr zu tun.

Bedarfsgerechte

Dokumentation

Beide Extrempositionen helfen uns also nicht weiter: Gar nichts zudokumentieren ist ebenso unsinnig wie der Versuch, alles dokumentie-ren zu wollen. Ein vernünftiger Ansatz besteht darin, die Dokumenta-tion auf ihren Nutzen hin kritisch zu prüfen und den Aufwand für dieErstellung transparent zu machen, um letztlich das richtige Maß zufinden.

Hierfür müssen wir die Dokumentation immer auch anderen For-men der Kommunikation gegenüberstellen, insbesondere der direktenKommunikation von Angesicht zu Angesicht, die aufgrund ihreshohen Interaktionsgrads bei agilen Methoden einen hohen Stellenwertgenießt. Allerdings gibt es keine generell beste Kommunikationsform –in unterschiedlichen Situationen können verschiedene Kommunikati-onsformen jeweils ihre unterschiedlichen Vorzüge ausspielen, wieTabelle 1–1 verdeutlicht.

Die Punkte auf der rechten Seite dieser Tabelle beschreiben sehr gut dieMotivation dafür, warum und in welchen Situationen wir im ProjektDinge schriftlich dokumentieren sollten. Wir werden viele dieser

Direkte Kommunikation Dokumentation

Interaktion■ kurze Frage-Antwort-Zyklen■ informeller Informationsfluss

Individuelle Geschwindigkeit■ Wissensaufnahme im persönlichen

Tempo

Einschluss nonverbaler Kommunikation■ Körpersprache■ Gestik

Schriftliche Ausdrucksmöglichkeit■ Vorteil für introvertierte Personen■ möglicher Erkenntnisgewinn beim

Schreiben

Unterstützung für Prozesse im Team■ persönlicher Umgang der beteiligten

Personen

Skalierbarkeit■ Nutzung durch viele Personen■ Nutzung durch räumlich verteilte

Teams

Schnelle Verfügbarkeit■ Ansprechpartner im Team

Langfristige Verfügbarkeit■ Verfügbarkeit nach Abschluss eines

Projekts

Tab. 1–1Vergleich von direkter

Kommunikation und

Dokumentation

Page 11: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

111.3 Muster

Punkte später im Detail aufgreifen, insbesondere in Kapitel 2, in demes um die Grundlagen agiler Dokumentation geht.

1.3 Muster

Projekte sind individuell geprägt. Was in einem Projekt gut funktio-niert, ist in einem anderen Projekt weniger angebracht. Es ist illuso-risch zu glauben, man könne konkrete Prozesse definieren, die sichorganisations- und projektübergreifend immer wieder erfolgreich ein-setzen lassen. Die Rahmenbedingungen sind einfach zu unterschied-lich. Dies gilt insbesondere auch für Dokumentation, weshalb diesesBuch auch gar nicht den Versuch macht, eine einheitliche und allge-meingültige Dokumentationsstrategie zu entwickeln.

Praxiserprobte MusterStattdessen möchte ich in diesem Buch eine Reihe einzelner Techni-ken und Strategien vorstellen, die sich in der Praxis immer wiederbewährt haben. Ich habe diese Techniken und Strategien als Muster(englisch Patterns) formuliert, ganz im Sinne der Entwurfsmuster (eng-lisch Design Patterns), die in den letzten Jahren eine weite Verbreitungin der praxisorientierten Literatur zur Softwareentwicklung erfahrenhaben. Entwurfsmuster beschreiben bewährte Lösungen für immerwiederkehrende Probleme, und genau das tun die Muster in diesemBuch auch, nur mit dem Unterschied, dass sie sich nicht auf Program-mierpraktiken, sondern auf Dokumentationspraktiken beziehen.

Die Formulierung von Mustern bietet eine Reihe von Vorteilen:

■ Muster sind praxiserprobt und geeignet, tatsächliche Erfahrungenzu transportieren.

■ Die Struktur als Problem-Lösungs-Paar ist für einen praktischenEinsatz geeignet.

■ Muster analysieren die verschiedenen Faktoren, die Einfluss aufmögliche Lösungsszenarien haben, und tragen so zu ausbalancier-ten Lösungen bei.

■ Muster referenzieren sich gegenseitig, was in diesem Buch typogra-fisch durch die Verwendung von Kapitälchen ausgedrückt ist.Muster können so leicht miteinander kombiniert werden.

Sämtliche Muster in diesem Buch (in den Kapiteln 2 bis 7) folgeneinem einheitlichen Aufbau:

■ Der Kontext beschreibt, in welcher Situation ein Muster angewen-det werden kann.

■ Das Problem wirft eine Frage (im Zusammenhang mit Dokumen-tation) auf, die sich im beschriebenen Kontext immer wieder stellt

Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2

Page 12: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1 Einleitung12

und deren Nichtbeantwortung spürbare Nachteile mit sich bringenwürde.

■ Die Analyse beleuchtet mögliche Lösungsansätze, vergleicht siemiteinander und nennt ihre Vor- und Nachteile.

■ Die Lösung beschreibt eine prinzipielle Strategie oder Technik, mitder sich das Problem vermeiden oder zumindest abmildern lässt.

■ Die Details beschreiben, wie die Lösung umgesetzt werden kann,und schlagen dafür konkrete Schritte vor.

■ Die Diskussion nennt weiter gehende Aspekte im Zusammenhangmit der beschriebenen Lösung, insbesondere auch den Zusammen-hang zu anderen Mustern.

Zum besseren Verständnis werden die Muster in diesem Buch noch umweiteres Material ergänzt. Da dieses Material über die eigentlichenMuster hinausgeht, ist es in grauen Kästen dargestellt.

■ Zunächst stelle ich gelegentlich Beispiele vor, die jeweils einbestimmtes Muster verdeutlichen. Diese Beispiele stammen aus»echten« Projekten, haben sich also in der Realität so abgespielt(wenngleich ich aus Gründen des Kundenschutzes die Beispieleanonymisiert habe).

■ Außerdem ergänze ich die Muster gelegentlich um Hintergrundin-formationen, die tiefer gehende oder auch kontroverse Aspekte zueinem bestimmten Thema beleuchten.

Wie bereits angedeutet, beziehen sich die Muster in diesem Buch aufein agiles Vorgehen im Allgemeinen und sind nicht spezifisch fürirgendeine agile Methode. Zur Erläuterung verweise ich allerdingsgelegentlich auf Scrum, weil Scrum aktuell das am weitesten verbrei-tete agile Verfahren ist. Trotzdem sind die in diesem Buch beschriebe-nen Muster problemlos auch im Kontext anderer Methoden anwend-bar. Tatsächlich sind sie auch dann anwendbar, wenn überhaupt keineagile Methode im Einsatz ist, aber das Projektteam den Wunsch hat,agiler zu werden, und diesen Wunsch am Beispiel der Dokumentationin die Tat umsetzen möchte.

Dabei ist es wichtig zu verstehen, dass das Wort »agil« primär eineHaltung, nicht aber eine Technik oder einen Prozess beschreibt. Nichtohne Grund stehen im Agilen Manifest Prozesse (genau wie die Doku-mentation) auf der Seite der Dinge, die eher ein Mittel zum Zweck alsein eigenständiges Ziel darstellen. Die Muster in diesem Buch verfol-gen daher nicht den Zweck, einen bestimmten Dokumentationspro-zess zu formulieren. Stattdessen können Sie diese Muster als Bausteinenutzen, wenn Sie für Ihre Projekte und die dort bestehenden Rahmen-

Page 13: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

131.4 Nutzung des Buchs

bedingungen ein bedarfsgerechtes Vorgehen in puncto Dokumentationentwickeln.

1.4 Nutzung des Buchs

Der Aufbau des Buchs orientiert sich weitgehend am iterativen Vorge-hen in agilen Projekten. Die Kapitelstruktur spiegelt daher in etwa denLebenszyklus von Dokumenten in einem agilen Kontext wider.

Kapitel 2■ Einstieg in ein agiles VorgehenBei agilen Verfahren ist die prinzipielle Haltung zur Dokumenta-tion schon ein Stück weit anders als bei traditionellen Methodender Softwareentwicklung. Das erste Kapitel stellt daher ein paargrundlegende Prinzipien vor, die essenzieller Bestandteil eines agi-len Vorgehens sind.

Kapitel 3■ Infrastruktur und WerkzeugeDie Erstellung von Dokumenten erfordert eine geeignete Infra-struktur. Dieses Kapitel beschreibt, wie eine solche Infrastrukturaussehen kann und welche Werkzeuge sich als nützlich herausge-stellt haben.

Kapitel 4■ Planung der DokumentationIn diesem Kapitel steigen wir in die konkrete Planung der Doku-mentation ein. Das Kapitel gibt konkrete Tipps, wie diese Planunggestaltet werden kann, und beschreibt, welche Art von Dokumen-tation in einem agilen Kontext typischerweise benötigt wird.

Kapitel 5■ Auswahl der richtigen InhalteNachdem wir geplant haben, welche Dokumente wir benötigen,handelt dieses Kapitel davon, welche Inhalte für diese Dokumentesinnvoll sind. Der Schwerpunkt liegt darauf, Inhalte zu identifizie-ren, die es Wert sind, schriftlich festgehalten zu werden.

Kapitel 6■ Gestaltung einzelner DokumenteGute Dokumentation ist logisch aufgebaut und vernünftig struktu-riert. Die Muster in diesem Kapitel adressieren dieses Thema undgehen auch kurz auf Aspekte des Layouts ein. Tatsächlich sinddiese Muster auch außerhalb eines agilen Kontexts sinnvoll, abersie gelten natürlich auch hier.

Kapitel 7■ Umgang mit der DokumentationDieses Kapitel ist der Frage gewidmet, was mit der Dokumentationgeschehen soll, wenn sie denn geschrieben ist. Ziel ist es sicherzu-stellen, dass die Dokumentation nicht »verstaubt«, sondern sinn-voll genutzt werden kann.

Andreas Rüping, Dokumentation in agilen Projekten, dpunkt.verlag, ISBN 978-3-86490-040-2

Page 14: Dokumentation in agilen Projekten - dpunkt.verlag...Typische Vertreter dieser Methoden sind die folgenden: Das V-Modell ist ein Vorgehensmodell zur Planung und Durchfüh-rung von Softwareentwicklungsprojekten,

1 Einleitung14

Leitfaden zum Lesen

des Buchs

Generell gibt es zwei verschiedene Möglichkeiten, dieses Buch zu lesen.Die erste ist die übliche Methode: Sie können das Buch ganz traditio-nell von vorn bis hinten durchlesen und dabei den Lebenszyklus vonDokumenten im Projekt nachempfinden.

Alternativ können Sie das Buch aber auch einfach durchblättern,sich dabei auf die (kursiv gesetzten) Kernaussagen der einzelnen Mus-ter konzentrieren, und dort tiefer einsteigen, wo Sie ein Thema beson-ders interessiert. Dadurch, dass die Muster jeweils Verweise auf andereMuster enthalten (in Kapitälchen gesetzt), können Sie auf diese Artund Weise durch das Buch »navigieren«.