cards+
Methode

cards+ unter­stützt eine Projekt­­organi­sation, Wissens­management in einem agilen Entwick­lungs­­projekt rich­tig zu organi­sieren. cards+ tritt mit dem Ver­sprechen an, die Erstellung und langfristige Pflege einer hochwertigen und hilfreichen Pro­dukt­doku­men­tation in einem Wiki zu ermög­lichen. Viele Prinzi­pien und Prak­tiken der Entwickler gelten auch für Autoren in einem Wiki.

cards+ ist eine agile Methode

cards+ unter­stützt eine Projekt­­organi­sation, Wissens­management in einem agilen Entwick­lungs­­projekt rich­tig zu organi­sieren. Der Produktverant­wortliche setzt cards+ ein, um ziel­­gerich­tet und inkrementell sein Produkt angemessen zu dokumentieren, unterstützt durch ein selbstorganisiertes Team.

Es gilt die Prä­misse, dass eine angemessene Pro­dukt­doku­men­tation not­wendig ist. Eine solche Produktdokumentation wächst mit dem Produkt. Sie ist ein Ergebnis des agilen Entwicklungs­prozesses. Sie muss daher mit dem gleichen Maßstab für die Qualität, mit dem gleichen Ansatz für empi­rische, inkremen­telle und iterative Arbeitsweise und mit den gleichen Werten hergestellt wird, wie auch das Produkt ent­wickelt wird. An diesem Punkt kommt die Methode cards+ ins Spiel.

Dokumente werden agil entwickelt.

cards+ tritt mit dem Ver­sprechen an, die Erstellung und Pflege einer qualitativ hochwertigen Pro­dukt­doku­men­tation in einem Wiki zu ermög­lichen. Viele Prinzi­pien und Prak­tiken der Entwickler gelten auch für Autoren in einem Wiki, in den meisten Fällen in nur leicht abgewandelter Form.

cards+ ist kein geschlossenes Vor­gehens­modell, kein isolierter Prozess. Aus diesem Grund kann cards+ sehr gut in bestehende Prozesse integriert werden. Autoren im Wiki planen und steuern ihre Tätigkeiten weiterhin mit Techniken aus dem Projekt­management. Sie verwenden die Methode ihrer Wahl für die Anforderungs­analyse. cards+ ist als zusätzliches Werkzeug für Autoren zu ver­stehen, mit dem sie ihre Ergebnisse im Wiki organisieren.

Für Leser ist cards+ die Chance, im Wiki jede relevante dokumentierte Information zum Produkt zu finden. Das Wiki unterstützt sie durch die Verknüpfung von Seiten, die Kategorisierung der Seiten mit Stichworten und umfangreiche Suchfunktionen.

Dokumente agil entwickeln.

Pro­fessionell visu­­ali­­­sie­­ren

Visu­ali­sie­rung hilft, kom­plexe Zusam­men­hänge zu ver­deut­lichen. Durch gut gemachte Bil­der wird die Auf­merk­sam­keit der Leser deut­lich erhöht. Es ent­steht eine gemein­same Sprache: Die Bild­sprache. Wich­tige Begriffe werden sicht­bar. Sie bekom­men ein «icon» mit hohem Wieder­erken­nungs­wert. Der Kompo­nenten­über­blick gibt — wie der Name schon sagt — einen Über­blick über die Kompo­nenten des IT-Sys­tems. Die Abbil­dung zeigt abstrakt Dienste und Daten­flüsse und zieht Gren­zen. Hier wird deut­lich, dass cards+ und Domain-Driven Design (kurz DDD) sehr ähn­liche Ansätze ver­fol­gen.

Das wich­tigste Element im stra­tegi­schen Design von DDD ist die Kon­text­grenze (engl. bounded context), rein formell eine Gültig­keits­grenze für ein fach­liches Modell einer Domäne. Domänen unter­schei­den sich in ihrer Rele­vanz für den Erfolg des IT-Systems. DDD unter­scheidet wich­tige Domänen (engl. core domains), die den Unter­scheid machen, und unter­stützende Domänen (engl. generic domains), für die es häufig Stan­dard­lösungen gibt. Die Kontext­land­karte (engl. context map) ist eine abstrakte Sicht auf alle Domänen des IT-Systems. Wechsel­wirkungen und die Ein­fluss­nahme von Domänen unter­einan­der werden durch eine Reihe von Inter­aktions­arten doku­men­tiert. Im tak­tischen Design von DDD gibt es die Grund­elemente Service, Event, Entity und Value. Für die Modellierung kom­plexer Daten­struk­turen gibt es das Ele­ment Aggregate.

cards+ erfin­det DDD nicht neu. cards+ ist ein Ange­bot, ein agiler Ansatz, um die Ergeb­nisse der Modellierung aus dem DDD in einem Wiki zu sichern. Im stra­tegi­schen Design kann der Kompo­nenten­über­blick von cards+ mit der Kon­text­land­karte von DDD gleich­gesetzt werden. Kon­text­grenzen werden durch den Bau­stein Domain reprä­sen­tiert. Im tak­tischen Design mit DDD ist cards+ eine opti­male Ergän­zung. DDD legt dabei das Vor­gehen bei der Ana­lyse fest. Für die Beschrei­bung der Ergeb­nisse gibt es passende Bau­stei­ne bei cards+. Der Bau­stein Entity wird für die Ele­mente Value, Aggre­gate und Entity ver­wendet. Für die Ele­mente Service und Event gibt es die gleich­namigen Bau­steine Service und Event.

Pro­fessionell dokumen­tie­ren

Dokumentieren ist ein erlernbares Handwerk. Prinzipien der Methode cards+ unterstützen die Autoren dabei. Ihre praktische Umsetzung ist ein wichtiger Teil der Methode.

 Scrum oder  XP haben die Arbeitsweise der Entwickler nachhaltig verändert. Die Initiative der  «clean code developer» beinhaltet einen Katalog von Prinzipien und Praktiken für mehr Professionalität in der Software-Entwicklung. Als Hilfestellung bekommen Entwickler ein Wertesystem, an dem sie sich orien­tieren können. Das gilt auch für das Dokumentieren im Wiki. Die gleichen Prinzipien machen auch die Arbeit von Autoren besser.

«Convention over documentation» hat das Ziel, Doku­mentation durch Konven­tionen zu ver­meiden oder zu redu­zieren.

«Convention over documentation» hat das Ziel, Doku­mentation durch Konven­tionen zu ver­meiden oder zu redu­zieren.

Eine «Definition of done» verkörpert ein explizites und geteiltes Ver­ständnis davon, unter welchen Bedingungen ein Produkt fertig ist.

«Don´t repeat yourself» hat zum Ziel, jede unnötige Wieder­holungen von Inhalten im Wiki zu ver­meiden.

«Invest in good stories» defi­niert sechs Kri­terien, die uns helfen, fach­liches Wissen so kompakt und voll­ständig wie mög­lich zu ver­mitteln.

«Keep it simple, stupid» besagt, dass wir eine mög­lichst ein­fache Beschrei­bung für Inhalte wählen sollen. «Weniger ist mehr» sagt schon ein Sprich­wort. Einfachheit ist die Kunst, die Menge nicht getaner Arbeit zu maximieren.

«Principle of least astonishment» spiegelt sich im Aufbau der Seiten im Wiki wider. Jeder Baustein hat genau einen Zweck, festgelegte Abschnitte und ist das Ergebnis eines bestimmten Prozesses.

«Single level of abstraction» spiegelt sich in der Struk­tur des Wiki wider. Für jede Seite ist klar defi­niert, was in einer Seite beschrieben wird und was nicht in diese Seite gehört.

«Separation of concerns» führt dort zu einer Trennung fach­licher und tech­nischer Doku­mentation, wo es Sinn macht.

«Single responsibility principle» regelt die Verantwortung für den Inhalt im Wiki. Eine Seite hat immer genau einen Autor. Er ist für den Inhalt der Seite verantwortlich, bis sie «fertig» ist.

Pro­fessio­nell zusamm­men­arbei­ten

Jede an einem IT-System inter­essierte Par­tei hat ihre eigene Vor­stel­lung von guter Doku­men­tation. Diese Vor­stellung ist ganz maß­geb­lich von ihren per­sön­lichen Schwer­punk­ten bestimmt. «Viele Köche ver­der­ben den Brei» ist ein Sprich­wort, das wahr wird, wenn jede an der Pro­dukt­doku­men­tation be­teilig­te Per­son so schreibt, wie sie es aus per­sön­licher Sicht für rich­tig hält. Leser und Auto­ren brau­chen ein Grund­gerüst, an dem sie sich orien­tie­ren können. cards+ bie­tet dafür die feste Struktur mit den Berei­chen Sys­tem­be­schrei­bung, Sys­tem­struk­tur und Archi­tekur­ent­wurf. In jedem Be­reich gibt es vor­defi­nierte Bau­stei­ne mit festem Auf­bau.

cards+ unter­schei­det drei Rollen, die wesent­lich zum Gelin­gen einer Pro­dukt­doku­men­tation bei­tra­gen: Leser, Autoren und Gärtner. Auf­grund der Tren­nung von Doku­men­tation im Wiki und Spezifi­kation durch das Team im Code-Reposi­tory bezieht sich die Defi­niton der Rollen von cards+ nur auf die Per­sonen, die direkt im Wiki arbei­ten.

Alle Gärtner und Ver­tre­ter der Autoren sind Teil einer Exper­ten­runde (engl. community of practice) und Spre­cher der Ziel­gruppen der Pro­dukt­doku­men­tation.

Leser ist jede am Pro­dukt inter­essierte Par­tei. Ein Leser nutzt das Wiki als Hilfs­mittel zur Erfül­lung seiner Auf­gaben im agilen Ent­wick­lungs­pro­zess. Das Wiki ist für ihn eine unver­zicht­bare Quelle für Pro­dukt­wissen. Jeder Leser ist berech­tigt, im Wiki Sei­ten zu lesen und zu kommen­tie­ren.

Produktverantwortliche, Analys­ten, IT- und UX-Exper­ten, Redak­teure und Ver­treter des Realisierungsteams sind Autoren. Interessierte Parteien unter­stützen sie als Co-Autoren. Ein Autor ist berech­tigt, neue Seiten im Wiki anzu­legen und beste­hende Seiten zu ändern oder zu löschen. Seine Auf­gabe ist es, Seiten im Wiki inkre­mentell mit Pro­dukt­wissen zu füllen.

Gärtner sind Experten für Doku­men­tation und Adminis­tra­tor für das Wiki. Sie sind ver­ant­wort­lich für die Aus­wahl der Werk­zeuge für die Erstellung der Dokumentation. Als Trainer für cards+ ist er für Autoren und Leser greif­bar und hilft ihnen bei der Bewälti­gung von all­täg­lichen wie auch spezi­ellen Prob­lemen im Zusam­men­hang mit Doku­men­tation.

Kommentare im Wiki erfolgreich moderieren.

Konti­nuier­lich ver­bessern

Wie beim Pro­gram­­mieren gehört die Anwen­­dung der Pfad­finder­regel auch beim Doku­men­tieren zum Funda­ment pro­­fessio­neller Arbeit. Leser können jeder­­zeit einen ent­spre­chen­­den Hin­­weis als Kommen­­tar in der Seite hin­ter­lassen. Autoren grei­­fen diese Hin­weise wert­schätzend auf. Nach dem Abschluss der Ver­­besse­­rung wird der Kommen­­tar gelöscht.

Jeder Autor im Wiki kann bereits beim aktiven lesen einer beliebigen Seite kleine, aber wich­­tige Korrek­turen durch­füh­ren. Kleine Korrek­turen sind bei­spiels­weise die Ver­besse­rung von Recht­schreib­­feh­lern oder die Ver­knüpfung von Begriffen im Text mit Ein­trägen im Glossar. Durch diese eben­falls recht ein­fache Maß­nahme erkennt der Autor auto­matisch wieder­holt auf­tre­tende Erklärun­gen im Text, die er ohne Ver­lust von Wissen­ aus der Seite ent­fernen kann. Gege­­benen­falls ergänzt er Schlag­worte in der Seite. Schlag­worte sind Begriffe aus einem kontrol­lier­ten Voka­bular. Bei cards+ wird dieses Voka­bular durch das Glossar defi­niert. Mit dieser Maß­nahme wird die Suche im Wiki für Leser deut­lich ver­bessert.

Ziel­gerich­tet ver­bessern

Code-Reviews sind beim Pro­gram­­mieren nicht mehr weg­zuden­ken. Das Vor­gehen eig­net sich nicht nur dazu, die Quali­tät der Soft­ware zu ver­bessern. Es unter­stützt auch den Wissens­trans­fer inner­halb des Teams. Das Gesagte gilt auch für das Doku­men­tieren mit cards+. Bei der Durch­führung eines Reviews einer Seite im Wiki prüft der Reviewer sowohl die Richtig­keit als auch die Voll­ständig­keit der Inhalte.

Die Rich­tig­keit der Seite schätzt der Reviewer anhand seines eigenen Wissens ein. Die Ver­knüpfung von Begrif­fen im Text mit Ein­trä­gen im Glossar unter­stützt ihn dabei. Beim Lesen korri­giert er offen­sicht­liche Feh­ler in der Recht­schrei­bung. Der Editor des Wiki hilft dabei. Bei allen anderen Feh­lern oder Lücken nutzt er die Kommen­tar­funk­tion, um Hin­weise für den Autor in der Seite zu hinter­lassen.

Eine Seite ist voll­stän­dig, wenn

  • die vor­bereitete Seiten­vor­lage des Bau­­steins ver­wen­det wurde.
  • alle Abschnitte aus der Seiten­vor­lage des Bau­­steins ausge­füllt sind.
  • passende Schlag­worte in der Seite gesetzt sind.

Diese rein for­malen Prüfun­gen sind mög­lich, weil die Seiten­vor­lagen einen festen Rah­men für jeden Bau­stein vor­geben.

Konti­nuier­lich ver­öffent­lichen

Ein Wiki ist opti­mal geeig­net für die Erfas­sung, Pflege und vor allem Präsen­tation von Pro­dukt­wissen. Die Pflege von Seiten direkt im Wiki kommt dort an seine Gren­zen, wo regel­mäßig und in kurzen Abstän­den Ver­ände­rungen gemacht werden. Das ist vor allem dort der Fall, wo eine Lösung für eine Fähig­keit der Soft­ware von den Ent­wick­lern sehr genau beschrie­ben wird. Diese Art doku­men­tier­ter Infor­mationen sind ganz eng an die Imple­men­tierung gekop­pelt und werden in der Konse­quenz zusam­men mit dem Code ver­sio­niert.

In einer Spezifi­kation halten Ent­wick­ler die Struk­tur eines Objek­tes, Geschäfts­regeln und Algo­rith­men eines Dienstes oder den Auf­bau und das Ver­hal­ten einer Bedien­ober­fläche fest. cards+ macht keine Vor­gaben für eine Spezifi­kation. Mit der Frei­gabe der Soft­ware für das Pro­dukt­inkre­ment wird jede damit ver­bun­dene Spezifi­kation im Wiki in den Bau­steinen Service, Entity, Event oder Layout ver­öffent­licht.

Eine ähn­liche Situa­tion gibt es bei den Test­plänen in einer Test­pyra­mide. Die Test­fälle eines System­tests sind sehr gut als zusätz­liche Doku­men­tation geeig­net, wenn sie sich an den Fähig­keiten der Soft­ware orien­tie­ren. cards+ macht keine Vor­gaben für einen Test­plan. Mit der Frei­gabe der Soft­ware für das Pro­dukt­inkre­ment werden die durch­geführ­ten Test­fälle im Wiki ver­öffent­licht. Abhän­gig vom Auf­bau der Test­pläne bieten sich die Bau­steine Epic oder Case an.

Sowohl Spezifi­katio­nen als auch Test­pläne sind wie Code Teil des Pro­dukt­inkre­men­tes und damit ein Ergeb­nis des Teams. Es ist Auf­gabe des Teams, für die doku­men­tier­ten Infor­matio­nen ein geeig­netes For­mat zu wäh­len, das im Wiki ver­öffent­licht werden kann. Am besten auto­mati­sier­bar.

Konti­nuier­lich schät­zen

Der Pro­dukt­ver­ant­wort­liche hat eine Vision des Pro­duk­tes. Den Bau­stein Epic gibt einer ange­­for­der­ten Funktio­­nali­tät des Pro­duk­tes einen ein­­deu­tigen Namen und grup­piert die neuen Fähig­keiten der Soft­ware. Den Bau­stein Case legt er an, um jeder neuen Fähig­keit der Soft­ware einen Titel zu geben und die Aus­gangs­lage kurz zu beschrei­ben. Die Lösung bleibt auf jeden Fall offen. Kann der Pro­dukt­verant­wort­liche mit seiner Vision einen Auf­trag­geber begeis­tern, bekommt er häu­fig die Frage gestellt, was das den unge­fähr kos­tet. Agil hin oder her, er braucht eine realis­tische Zahl, an die er selbst glaubt. Für eine Exper­ten­schät­zung durch sein Team muss er sehr viel Arbeit in das Back­log inves­tieren. Und selbst dann ist die Schät­zung in der Regel mit einer hohen Unge­nauig­keit ver­bun­den.

cards+ eröff­net eine neue Option mit dem Ein­satz der Schätz­methode  «Use-Case-Points» von Stephan Frohnhoff. Der Bau­stein Case erfüllt alle Bedin­gungen als Ein­gangs­größe für die Schätz­methode. Jeder Case wird auf einer Skala von ein­fach, nor­mal oder kom­plex mit Punk­ten bewer­tet. Die Punkte aller Fähig­keiten der Soft­ware werden addiert und mit Fak­toren gewich­tet. Es gibt Fak­toren für tech­nische Kom­plexi­tät, das Pro­jekt­umfeld und die Pro­duktivi­tät des Teams. Das Ergeb­nis sind Per­sonen­stunden. Der geschätzte Wert ist natür­lich mit einer Unge­nauig­keit ver­bun­den. Mit der Reali­sierung von Fähig­keiten kann die Schät­zung kali­briert werden.

Der Pro­dukt­ver­ant­wort­liche wird in die Lage ver­setzt, die die Schätzung konti­nuier­lich zu aktuali­sie­ren. Fügt er einen neuen Bau­stein Case hinzu, ergänzt er die Schätzung um eine Bewer­tung der neuen Fähig­keit der Soft­ware. Er orien­tiert sich dabei an den bereits vor­hande­nen Fähig­keiten. Der Auf­trag­geber bekommt in sehr kur­zer Zeit eine erste grobe Indi­kation der Kos­ten für die Reali­sierung.

Doku­men­tation nach­hal­tig organi­sie­ren.

Doku­mente agil ent­wickeln

Die Werte aus dem  «Mani­fest für agile Soft­ware-Ent­wick­lung» bil­den das Funda­ment agiler Ent­wicklung. Mit cards+ kann auch Pro­dukt­doku­men­tation agil ent­wickelt werden. Agil Doku­mentieren bezeich­net ein schritt­weises Erfas­sen von Ent­schei­dungen und Wissen in einem agilen Ent­wicklungs­prozess. Die Struk­tur der Produkt­doku­mentation ist so gestal­tet, dass Ergeb­nisse schritt­weise mit einem geeig­neten Bau­stein gesichert werden kann. Autoren schrei­ben nur das auf, was sie jetzt wissen. Keine Wünsche. Keine Vermutungen.

Aufgrund der maß­geschnei­derten Struk­tur können Autoren trotz­dem jeden Bau­stein in kurzer Zeit abschlie­ßen. Eine wich­tige Bedingung für ein agi­les Ent­wick­lungs­pro­jekt, um Doku­men­tation als ein weiteres Ergeb­nis einer Iteration zu fordern. In einem agilen Entwicklungsprozesses nutzt ein Pro­dukt­ver­ant­wort­licher die Regel­ter­mine, um Feed­back auch zur Pro­dukt­doku­men­tation einzu­sam­meln. Mit dem Ein­satz von cards+ gilt:

Doku­mentation wird wie Code ent­wickelt!

Eine Pro­dukt­doku­men­tation hat eine innere Struk­tur. Sie besteht aus Bau­stei­nen mit einem klar formu­lierten und prüf­baren Inhalt. Es bietet sich ganz ein­fach an, die Pro­dukt­doku­men­tation im gleichen agi­len Pro­zess zu schrei­ben, in dem auch das Pro­dukt pro­gram­miert und getes­tet wird. Sie hat das Ziel, den Zustand eines Pro­dukt­inkre­mentes so exakt wie mög­lich zu beschrei­ben. Sie exis­tiert im Wiki und wird genutzt, um Spezifi­kationen und Test­pläne zu ver­öffent­lichen. Sie bildet das zen­trale Ver­zeich­nis der für das Pro­dukt rele­vanten Doku­mente.

Eine Pro­dukt­doku­men­tation wird über die gesamte Lebens­zeit eines Pro­duktes gebraucht. Bei sehr erfolg­reichen Pro­dukten sind das Jahr­zehnte. Ein Pro­dukt ent­steht oder wächst, indem Visi­onen und Ideen eines Pro­dukt­ver­ant­wort­lichen durch sein Team in Soft­ware trans­formiert werden. Test­pläne, organi­siert in einer Test­pyra­mide, sichern die Quali­tät der Soft­ware ab. Hand­bücher geben Ein­blick in die Fähig­keiten der Soft­ware, erklären den Nutzern, wie sie ver­wendet werden. In den Bau­stei­nen der System­beschrei­bung wird der Pro­blem­raum des Pro­duktes beschrie­ben. Sie geben Ant­wort auf die Fra­gen wer, wann und warum etwas mit dem Pro­dukt tut. Die Bau­steine der System­beschrei­bung beant­worten hin­gegen die Frage, wie das Pro­dukt reali­siert wurde. Zusam­men mit den Bau­steinen des Archi­tektur­ent­wurfs beschrei­ben sie den Lösungs­raum.

Doku­mente nach ihrer Art unter­scheiden

Eine einiger­maße komplexe Soft­ware ohne Doku­men­tation ist für mich nicht vor­stell­bar. Ein Pro­dukt­ver­ant­wort­licher kann oder besser muss sich über den Pro­zess der Erstel­lung einer Pro­dukt­doku­men­tation Gedan­ken machen. Im all­gemeinen Sprach­gebrauch werden Doku­mente geschrie­ben. Mit cards+ werden Doku­mente ent­wickelt. Das geht aber nicht mit jeder Art von Doku­ment.

Eine Pro­dukt­doku­men­tation ist unver­zichtbar für das Auf­recht­erhal­ten des agilen Ent­wick­lungs­prozesses und unter­stützt die Kommuni­kation in der Pro­jekt­organi­sation. Sie beschreibt Ergeb­nisse. Abstim­mungen führen zu Ent­schei­dungen. Anfor­derungen werden ana­lysiert und umge­setzt oder abge­lehnt. Auf­gaben werden erle­digt, damit ein neues Pro­dukt­inkre­ment ent­steht.

Der Begriff Pro­dukt­doku­men­tation fasst jene doku­men­tierte Infor­matio­nen zusam­men, die für das Auf­recht­erhal­ten von Pro­zessen, also Pla­nung und Steue­rung von Auf­gaben, not­wen­dig sind. cards+ bietet für die Pro­jekt­doku­men­tation kei­nen Bau­stein! Die Arten­viel­falt ist ein­fach zu groß. Die Bedürf­nisse der inter­essier­ten Par­teien sind zu unter­schied­lich. Die Lebens­dauer der Doku­mente ist oft zu gering für einen wirt­schaft­lich ver­tret­baren An­satz zur Stan­dardi­sie­rung.

Was zählt zur Projekt­doku­mentation?
Auf­gabe

Für die Erfas­sung und Steue­rung von Auf­gaben in einem Back­log bietet cards+ keinen Bau­stein an. Mit den Bau­steinen von cards+ wird jedoch wich­tiges Wissen für eine Auf­gabe recht­zeitig und struktu­riert in der Pro­dukt­doku­men­tation vorbe­reitet.

Anfor­derung

Die Ver­waltung und Bewer­tung einer Anfor­derung ist nicht Teil der Methode cards+. Das Ergeb­nis der Anfor­derungs­analyse wird jedoch mit den Bau­steinen Topic, Epic und Case ange­messen in der Pro­dukt­doku­men­tation doku­mentiert.

Abstim­mung

Im Projekt­alltag finden laufend Abstim­mungen statt. Jede Abstim­mung mit großer Trag­weite führt zu einer begrün­deten Ent­schei­dung, die es wert ist, nach­haltig doku­mentiert zu werden. cards+ bietet dafür den Bau­stein Decision an.

Richt­linie

Eine Richt­linie ist eine Verein­barungen, die die Zusammen­arbeit im Ent­wicklungs­projekten und in den Teams regelt. Ist die Richt­linie rele­vant für das Produkt, kann sie natür­lich mit den Bau­stein Concept für Kon­zepte in die Pro­dukt­doku­men­tation aufge­nommen werden.

Lasten­heft

In der agilen Welt unge­liebt, aber häufig not­wendig, um ein Gewerk zu präzi­sieren und einen Ver­trag zu schließen. Mit cards+ erstellen wir inkre­mentell eine System­beschrei­bung mit den Bau­steinen Topic, Epic und Case. Die gleichen Bau­steine können wir als Lasten­heft aus dem Wiki expor­tieren. Jeder­zeit.

Experten­schätzung

Schätzen ist ein sehr häu­fig sehr kontro­vers disku­tiertes Thema in Ent­wick­lungs­pro­jek­ten, beson­ders in agi­len. Der Bau­stein Case ist eine geeig­nete Basis für die Schätz­methode  «Use-Case-Points» von Stephan Frohnhoff. Sie lässt sich prak­tisch direkt ein­setzen.

Kommen­tare erfolg­reich mode­rieren

Die Methode cards+ ver­folgt ein sehr wich­tiges Ziel: Eine leben­dige Pro­dukt­doku­men­tation. Sie lebt u.a. durch das Feed­back der Leser. Feed­back als Kommen­tare in den Seiten im Wiki ist für alle sicht­bar, auch eventuell daraus ent­stehende Diskus­sionen.

Feed­back ist im Wiki jeder­zeit will­kommen.

Die Erstel­lung und Pflege von Inhalten im Wiki ist Auf­gabe der Autoren. Dazu trägt ganz wesentlich die wertschätzende Verwendung des Feedbacks der Leser bei. Im Sinne der Nach­haltig­keit moderiert der Autor die Kommentare, d.h. er entfernt jene Kommen­tare, die bereits zur Korrek­tur der Doku­mentation ver­wendet wurden. Nicht mehr rele­vante oder sachlich nicht korrekte Kommen­tare löscht er nach Abschluss der Klärung mit dem Ersteller des Kommen­tars. Durch dieses aktive Manage­ment der Kommen­tare schaffen wir Transpa­renz bei den Änderungen der Inhalte. Autoren können Kommen­tare auch als Indi­kator für die Quali­tät der Doku­mentation heran­ziehen. Eine Seite im Wiki ohne Kommen­tare ist eine gute Seite. Anderer­seits ist eine Seite im Wiki mit Kommen­taren schlicht und ein­fach nicht fertig. Sehr viele Kommen­tare aus einer von mehreren Lesern kontro­vers geführten Diskus­sion sind ein klares Indiz für den Autor, das Thema der Seite noch einmal inten­siver zu betrach­ten.

Welche Kate­gorien von Kommen­taren gibt es?
Verbesserung

Leser nutzen einen Text­kommen­tar, um eine redaktio­nellen Ver­besserung zu melden. Dazu zählen Recht­schreib- oder Grammatik­fehler in einem Text. Auch eine fehlende Ver­knüpfung eines Begriffes im Text mit einer Seite im Glossar ist hier gemeint. Die Korrek­tur der Seite kann ein Autor jeder­zeit und ohne umfang­reiche Abstimmung durch­führen.

Lücke

Eine interessierte Partei (z.B. ein Nutzer) findet als Leser eine Lücke in einer Beschrei­bung und meldet sie mit einem Seiten­kommen­tar. Bei einer Lücke reden wir nicht von einem Fehler. Trotzdem ist jeder Hin­weis sehr will­kommen, wenn er einem Autor hilft, die Beschrei­bung besser zu machen. Die Korrek­tur der Seite kann ein Autor jeder­zeit nach erfolg­reicher Prüfung durch­führen.

Offener Punkt

Eine inter­essierte Partei (z.B. ein Ent­wickler) hat als Leser den Ein­druck, dass eine Beschrei­bung nicht voll­ständig ist. Solche Unklar­heiten bezeichnen wir als offene Punkte, bis sie geklärt sind. Offene Punkte ver­sucht der Autor der Seite so rasch wie mög­lich zu klären. Das Ergeb­nis der Klärung nutzt der Autor, um den Inhalt der Seite zu ver­bessern.

Fehler

Eine inter­essierte Partei (z.B. ein Ent­wickler) hat als Leser den Ein­druck, dass eine Beschrei­bung offen­sichtlich fehler­haft ist. Die Ein­schätzung ist subjek­tiv, bedeutet aber, dass die kommen­tierte Seite nicht mehr fertig ist. Fehler muss der Autor der Seite so rasch wie mög­lich klären. Das Ergeb­nis der Klärung nutzt der Autor, um den Inhalt der Seite zu ver­bessern.

Der Gärtner trägt Verant­wortung

Es gibt das Phäno­men, dass intelli­gente Menschen gegen Regeln ver­stoßen, obwohl sie von ihrer Wirk­sam­keit im Allge­meinen über­zeugt sind. Trotz­dem vertei­digen sie die Abweichung von der Regel mit dem Argu­ment, dass es eine not­wendige Ver­besserung oder gar Inno­vation ist. Manche tun es sogar im guten Glau­ben, dass ihr Weg besser ist, diese Änderung schon lange not­wen­dig war. Das ist eine Gefahr für die Quali­tät einer Pro­dukt­doku­men­tation. Indivi­duell gestal­tete Seiten sind prak­tisch nicht prüf­bar. Es ist schwerer, die Bearbei­tung einer Seite an einen anderen Autor zu über­geben. Die Bau­steine bilden ein abge­stimmtes Kon­zept. Abweichungen gefähr­den die Konsis­tenz. Abgren­zung ist eine hilf­reiche Methode, um diesem Prob­lem zu begeg­nen.

Die Gol­dene Regel der Gärtner besagt, dass eine Infor­mation, für die es keinen Bau­stein in der Pro­dukt­doku­men­tation gibt, ganz auto­matisch zur Pro­jekt­doku­men­tation gehört — und damit anderen Regeln unter­liegt. Das hat natür­lich Konse­quen­zen bezüg­lich Nach­haltig­keit und Quali­tät. Eine Heraus­forderung für einen Gärt­ner ist, Stärke zu zeigen. Stärke, Auto­ren auf die Ein­haltung der Regeln der Pro­dukt­doku­men­tation einzu­schwö­ren.

Der Gärtner ist ver­ant­wortlich für die Aus­wahl der Werk­zeuge und der tech­nischen Infra­struk­tur für das Wiki. Das ist sozu­sagen die Ent­wick­lungs­umge­bung für die die Auto­ren. Er ist Experte im Zusam­men­hang mit Doku­men­tation. Seine Auf­gaben sind die Formu­lierung und Durch­setzung von Doku­men­tations­richt­linien, ähn­lich den Pro­gram­mier­richt­linien der Ent­wick­ler. Er sorgt für die Ein­hal­tung der Regeln der Methode cards+, ver­gleich­bar dem Scrum-Master als Hüter des Scrum-Pro­zesses oder einem IT-Experten für den Archi­tektur­stil. Aus dieser Argu­men­tation heraus ergibt sich zwangs­läufig, dass für die Pflege einer Pro­dukt­doku­men­tation ein Gärtner in der Art eines IT-Experten für Doku­men­tation gebraucht wird.

Der Gärtner ist Trainer für die Methode cards+. Er ist greif­bar für Auto­ren und Leser und hilft bei der Bewälti­gung von all­täg­lichen wie auch spezi­ellen Prob­lemen im Zusam­men­hang mit der Doku­men­tation. Ähn­lich wie beim Ver­hältnis von IT-Experte und Ent­wick­ler (Stich­wort Elfen­bein­turm­archi­tekt) ist es für einen Gärt­ner sehr hilf­reich, selbst auch Autor zu sein. Zumin­dest muss er akti­ver Leser sein.

Robert Bruckbauer beant­wor­tet Fra­gen und unter­stützt als Gärt­ner.

Schutz vor Wissens­verfall

Eine große Gefahr für die Leis­tungs­fähig­keit eines Teams sind Kopf­mono­pole und Wissens­inseln. Eine Per­son sammelt über lange Zeit wert­volles Wissen über das Pro­dukt. Sie nutzt dieses Wissen, um erfolg­reich Auf­gaben im Team zu erfül­len. Dann ver­lässt sie das Team. Wich­tiges. Nicht schrift­lich erfass­tes Wissen geht unwider­bring­lich ver­loren. Selbst bei einem gut vor­berei­teten Aus­stieg mit Über­gabe oder einer schrift­lichen Nach­doku­men­tation gehen Infor­mationen ver­loren.

Ein Grund für Wissens­verfall ist die Träg­heit des mensch­lichen Gehirns und das damit ver­bun­dene Ver­gessen von Infor­mationen. Ein Mensch erinnert sich gut an die aktu­ellen Auf­gaben. Aber an alle länger zurück­liegen­den, in der Regel abge­schlos­sene Auf­gaben kann er sich weni­ger gut erinnern. Wich­tige Details blei­ben uner­wähnt.

Die Ver­gemein­schaf­tung von Wissen (engl. shared knowledge) ist eine Maß­nahme, die diesem Ver­fall ent­gegen­wirkt. Jeder im Team teilt sofort sein Wissen. Er tut dies nach­haltig, also schrift­lich. Mit cards+ ist das Erfas­sen sehr ein­fach. Durch das Wiki gibt es keine Hür­den. Inter­net und ein Brow­ser reicht.

Fach­liche Schul­den

Das  «Mani­fest für agile Soft­ware-Ent­wick­lung» ver­langt nicht den Ver­zicht auf Doku­mentation, sondern will, dass das eigent­liche Ziel, ein funktio­nieren­des Pro­dukt, nicht darun­ter lei­det. Doku­mentieren im All­gemei­nen wird trot­zdem von so man­chem Ent­wick­ler als Auf­gabe abge­lehnt. Sie wollen nur das doku­men­tieren, was für ihre Arbeit als Ent­wickler oder Tester einen Wert dar­stellt. Doku­men­tieren wird in beson­deren Situa­tionen gerne auch auf später ver­scho­ben. Andere Ent­wick­ler doku­men­tieren in der “heißen” Phase der Reali­sierung sehr gerne und aus­gie­big ihre aktu­elle Lösung. Es ent­stehen sehr genaue Beschrei­bungen und detail­getreue Bil­der. Sobald aber die Soft­ware eine gewisse Reife erreicht, sinkt die Moti­vation, diese Doku­mente zu aktuali­seren.

Beide Vor­gehens­weisen füh­ren zu fach­lichen Schul­den. Das Pro­dukt ist unvoll­stän­dig. Die Pro­dukt­doku­men­tation ent­hält sprich­wört­lich «ver­dor­bene» Doku­mente. Leider können Leser die «faulen» Stellen in der Doku­men­tation nicht immer erken­nen. Sie werden in die Irre geführt und ver­lieren das Ver­trauen in die Doku­men­tation. Damit beginnt ein Teu­fels­kreis. Weni­ger Leser bedeu­tet weni­ger Feed­back für die Auto­ren. Fehlen­des Feed­back führt zu sinkender Quali­tät. Sinkende Quali­tät ver­treibt weitere Leser.

Spezifi­kation ist Team­auf­gabe

Mit cards+ wird mit den Begriffen System­beschrei­bung, System­struktur, Spezifi­kation und Test­plan eine klare Auf­gaben­teilung zwischen Pro­dukt­ver­ant­wort­lichen und seinem Team ange­strebt.

Der Pro­dukt­ver­ant­wort­liche bewegt sich im Wiki. Er nutzt die Bau­steine der System­beschrei­bung, um seine Vision bis hinunter zu einer kon­kreten Fähig­keit der Soft­ware zu doku­men­tieren. Er nutzt die Bau­steine der System­struk­tur, um Diensten und Objekten in Abstimmung mit dem Team ein­deutige Namen und einen fach­lichen Zweck zu geben. Für jede gefor­derte Fähig­keit schreibt er einen Arbeits­auf­trag (engl. story) für die Ent­wickler. Dort konkre­tisiert er einen unvoll­ständigen Bau­stein Case durch Akzep­tanz­kri­terien. Unvoll­ständig heißt in diesem Fall ohne Lösung.

Das Team nimmt ent­sprechend der Priori­sierung des Pro­dukt­ver­ant­wort­lichen einen Arbeits­auf­trag an. Es ist voll­kommen unstrit­tig, dass Pro­gram­mieren und Testen beides Auf­gaben des Teams sind. Sie suchen eine Lösung für die gefor­derte Fähig­keit der Soft­ware im Rahmen des gewähl­ten Archi­tektur­stils. Die Akzep­tanz­kri­terien im Arbeits­auf­trag sind Grund­lage für die Test­pläne. Die Ergeb­nisse des agilen Ent­wick­lungs­pro­zesses, also Code, code-nahe Arte­fakte, Test­pläne und Spezifi­kationen, werden in einer quell­text-basier­ten Ver­sions­ver­wal­tung nach­voll­zieh­bar gespei­chert.

In der Methodik von cards+ erge­ben die Bau­steine im Wiki als auch die Ergeb­nis­doku­mente der Ent­wickler und Tester zusam­men eine voll­stän­dige Pro­dukt­doku­men­tation. Eine Doku­men­tation wirkt aber nur dann voll­stän­dig, wenn alle doku­men­tier­ten Infor­mationen in einem Medium präsen­tiert wird. Das ist im Fall von cards+ das Wiki. Dort befin­den sich bereits die Bau­steine. Durch geeig­nete Konver­tierung werden Spezifi­kationen der Ent­wickler und Test­pläne der Tester im Wiki ver­öffent­licht.