Pro­zesse

Scrum

Sie setzen auf Scrum zur Organi­sation ihrer agilen Ent­wick­lung. Der An­satz von Scrum ist empi­risch, inkre­men­tell und itera­tiv. Schritt für Schritt wird ihr Team besser und schneller. Selbst­organi­siert. Maxi­mal Moti­viert. Ihr Fokus liegt auf Quali­tät und Exzel­lenz. In kur­zen Zyk­len ent­wickeln Sie kunden­wirk­same Inkre­mente.

Wo volle Flexi­bili­tät ver­langt ist, braucht es mög­lichst voll­stän­dige und zuver­lässige doku­men­tierte Infor­matio­nen. Beson­ders wich­tig in einem agi­len Umfeld ist es, die Tätig­keit des Doku­men­tie­rens als Auf­gabe in das Dev-Team zu bekom­men. Der Bedarf an Wissen und die Art der Doku­men­tation am Beginn und am Ende eines Sprints unter­schei­den sich. Am Beginn des Sprints ist umfang­reiches Wissen über die ange­strebte Ver­änderung des Pro­duktes not­wen­dig, damit das Scrum-Team die “rich­tige” Lösung für jede Story im Sprint findet. Während des Sprints wird dieses Wissen vom Dev-Team zu gro­ßen Teilen in Code ver­wan­delt: Ein Algo­rithmus wird angepasst oder neue Geschäfts­regeln werden imple­men­tiert, eine Kon­figu­ration wird ver­ändert, ein Konz­ept wird umge­setzt. Am Ende des Sprints muss nur mehr das Ergeb­nis der Ver­änderun­gen doku­men­tiert werden. Die Spezi­fika­tion ent­hält jetzt eine Beschrei­bung des ange­pass­ten Algo­rith­mus und die neuen Geschäfts­regeln. System­test­fälle ent­stehen als Ergeb­nis der Akzep­tanz­kri­terien einer Story. Sie über­prüfen die neue Fähig­keit der Soft­ware und werden auto­matisch aus­ge­führt. Gleich­zeitig beschrei­ben System­test­fälle die neue Fähig­keiten. Sie sind aus­führ­bare Doku­men­tation.

Ein wich­tiges Ele­ment von Scrum ist das Sprint-Review am Ende eines Sprints. Dort zeigt das Dev-Team, was es erreicht hat, in der Regel als Demon­stration am aktu­ellen Inkre­ment. Sie berich­ten über erle­digte und nicht-erle­digte Auf­gaben, aber nur erle­digte Auf­gaben werden gezeigt und anhand der Akzep­tanz­krite­rien geprüft. Eine ange­messene Doku­men­tation ist bei jedem einiger­maßen kom­plexen Pro­dukt gefor­dert und in den all­gemeinen Fertig­stellungs­kri­terien (engl. definition of done) gere­gelt. Da ist der Umfang nicht immer klar.

Mit dem Ein­satz von cards+ werden große Teile der Doku­men­tation im Wiki durch auto­matisier­bare Ver­öffent­lichung aus der Code-Basis aktu­ali­siert. Ohne spür­baren zusätz­lichen Auf­wand. Übrig bleibt ganz wenig Doku­men­tation, die direkt im Wiki ange­legt oder dort geän­dert werden muss: Ein neuer Begriff im Glos­sar, ein neuer Dienst oder ein neuer Daten­fluß im IT-System. Je reifer eine Soft­ware, desto stabiler ist die Struk­tur im Wiki. Der Fort­schritt wird sicht­bar durch die klei­nen Ver­ände­rungen in den Spezi­fika­tionen. Dort ein Attri­but mehr im Nach­richten­objekt, da eine neue Opera­tion im REST-API eines Diens­tes.

Mit dem Ein­satz von cards+ ent­steht ein Wiki, in dem alle Infor­matio­nen zum Inkre­ment stehen, z.B.:

  • Das Glos­sar der gemein­samen Sprache der Anwen­dungs­domäne.
  • Funda­men­tale Ent­schei­dungen im Baustein Decision und daraus abge­leitete Kon­zepte mit ihren Quali­täts­merk­malen im Baustein Spec.
  • Die Fähig­keiten im Bau­stein Case mit den ver­öffent­lichten System­test­fällen.
  • Dienste und ihre Daten­flüsse in einem Kom­ponen­ten­über­blick.
  • Aktu­elle, aus der Code-Basis stam­mende Spezi­fika­tionen der Dienste im Baustein Service und Objekte in den Bausteinen Entity und Event.

Leser sind natür­lich alle Mit­glieder des Scrum-Teams, aber auch alle interes­sierten Par­teien. Sie alle können ihr speziel­les Pro­dukt­wissen nutzen, um Feed­back zu geben, konti­nuier­lich, ziel­gerich­tet und moderiert vom Pro­dukt­ver­ant­wort­lichen oder einem Gärtner in seinem Auf­trag.

Mit dem Ein­satz von cards+ wird klar zwischen der Prä­sen­tation des Inkre­mentes im Wiki und der Bear­bei­tung von Spezi­fika­tionen als Teil der Code-Basis unter­schie­den. Das Wiki zeigt immer einen frei­gege­benen, gül­tigen Stand der Doku­men­tation – in der Regel passend zum kunden­wirk­samen Pro­dukt. Eine Spezi­fika­tion wird zusam­men mit dem Code und wie Code ent­wickelt, geprüft, frei­gegeben und “instal­liert”.