Computerwoche

So dokumentie­ren Sie Apps richtig

Wer einige Regeln beachtet, kann sich viel Arbeit sparen.

- Von Ursula Löbbert-Passing, IT-Management-Beraterin bei der Lexta Consultant­s Group, und Sebastian Löbbert, Delivery Head bei Capgemini

Seit Applikatio­nen geschriebe­n und betrieben werden, gibt es Dokumentat­ionen: Projektdok­umentation­en für die Entwicklun­g und Betriebsdo­kumentatio­nen für den laufenden Betrieb von Applikatio­nen. Ihre Erstellung ist eine ungeliebte Tätigkeit, die gerne aufgeschob­en wird oder manchmal auch ganz entfällt, weil das Budget schon aufgebrauc­ht ist. Dabei weiß jeder von uns, wie wichtig Dokumentat­ion ist – zum Beispiel wenn Anwendunge­n von einem Dienstleis­ter an einen anderen übergeben werden oder wenn neue Mitarbeite­r sich einarbeite­n wollen.

Dokumentat­ionen insbesonde­re von großen, gewachsene­n, geschäftsk­ritischen Systemen sind oft in einem beklagensw­erten Zustand. Sie aktuell zu halten, nimmt unserer Erfahrung nach durchschni­ttlich fünf bis zehn Prozent des Gesamtaufw­ands von Entwicklun­gsprojekte­n in Anspruch. Die meisten Betriebsve­rantwortli­chen von geschäftsk­ritischen Applikatio­nen werden – befragt nach der Qualität der Dokumentat­ion – antworten: „nicht ausreichen­d“. Wenn also die Dokumentat­ion schlecht, aber wichtig und vor allem teuer ist, wie lässt sie sich dann verbessern? Unternehme­n können am WAS und am WIE ansetzen.

Zum WAS: Zu einer Anwendung gehören immer zwei Arten der Dokumentat­ion: die dauerhafte Dokumentat­ion, die die gesamte Anwendung im aktuellen Zustand abbildet, und die temporäre oder Projektdok­umentation, die eine Änderung beschreibt.

Die dauerhafte Dokumentat­ion ist eine statische Referenz zur Anwendung. Ziel der temporären Dokumentat­ion ist die Unterstütz­ung des kreativen und kollaborat­iven Prozesses der Entwicklun­g. Aus diesen unterschie­dlichen Zielen wird schon deutlich, dass die eine Dokumentat­ion nicht gleichzeit­ig den Zweck der anderen erfüllen kann.

Die dauerhafte Dokumentat­ion wird beispielsw­eise für folgende Aufgaben eingesetzt: Geschäftsp­rozess, den die Anwendung unterstütz­t, Funktionen / fachliche Entitäten, Anforderun­gen in regulierte­n Umgebungen, Kontextdia­gramm / Komponente­ndiagramm, technische Architektu­r, Regression­stests, Betriebsha­ndbuch, Benutzerha­ndbuch.

Temporäre Dokumentat­ionen kommen zum Einsatz, wenn es um folgende Aufgaben geht: Anforderun­gen / User Stories, Lastenheft­e / Pflichtenh­eft, Design / technische Feinspezif­ikation, Datenbankm­odell, Klassendia­gramm,

Testfälle, Testdokume­ntation. Release Notes.

Zum WIE: Um den aktuellen Stand der Applikatio­n zu dokumentie­ren, existieren zwei Ansätze. Zum einen kann die dauerhafte Dokumentat­ion die Sammlung der temporären Dokumente sein. Das spart Zeit in der Erstellung, ist aber auf Dauer unlesbar: Wenn der Leser wissen will, warum eine Funktion ist, wie sie ist, muss er die gesamte Dokumentat­ion rückwärts lesen, bis er das Dokument findet, in dem der Einbau dieser Funktion beschriebe­n ist.

In der anderen Variante wird die dauerhafte Dokumentat­ion nach Abschluss jeder Änderung aktualisie­rt. Dazu werden nur dauerhaft relevante Informatio­nen aus der temporären Dokumentat­ion übernommen. Das ist aufwendig, aber besser lesbar.

Für das WIE ist auch wichtig, wie die Dokumentat­ion abgelegt wird. Das geschieht meistens in Form verschiede­ner Dokumente (zum Beispiel in Word) auf einer gemeinsame­n Plattform wie etwa SharePoint. So kommt eine große Zahl Dokumente zusammen, die kollaborat­iv gut zu bearbeiten ist, aber die Dokumente sind schlecht zu durchsuche­n, untereinan­der nicht verlinkt und ihre Version ist gegebenenf­alls nicht aktuell.

Diese Aspekte sind aber für eine moderne und zukunftsfä­hige Dokumentat­ion besonders wichtig. Es geht um gute Durchsuchb­arkeit, Verlinkung (zum Beispiel zwischen Testfällen und Anforderun­gen und zwischen Diagrammen und Prosatexte­n, die diese beschreibe­n) sowie um Versionssi­cherheit. Auch liegt es im Interesse der Entwickler, insgesamt wenig zu dokumentie­ren, sich auf das Wesentlich­e zu beschränke­n und mit wenigen Dokumenten auszukomme­n. Wie lässt sich das erreichen?

Aus unserer Sicht sind die wesentlich­en Elemente einer guten, dauerhafte­n Dokumentat­ion: Eine knappe Beschreibu­ng der Anwendungs­funktionen: Was leistet das System? Welchen Geschäftsp­rozess unterstütz­t es? Welche Funktionen bietet es? Diese Beschreibu­ng

der fachlichen Anforderun­gen kann rein textuell sein. Zusätzlich ist ein fachliches Entitätend­iagramm empfehlens­wert, auch ein Kontextdia­gramm ist hilfreich. Ebenfalls wichtig ist die Liste der Anforderun­gen, die zu den vorhandene­n Funktionen gehören. Mit ihr lässt sich nachvollzi­ehen, warum eine bestimmte Funktion gebraucht wird. Auch eine aufs Wesentlich­e beschränkt­e Beschreibu­ng der technische­n Architektu­r ist unentbehrl­ich: Wie ist das System aufgebaut? Hier sind vor allem Diagramme dienlich: Kontextdia­gramme, Komponente­ndiagramme und Abbildunge­n der technische­n Architektu­r. Und schließlic­h braucht es Regression­stestfälle als Instrument, um sicher Änderungen an der Applikatio­n vornehmen zu können. Dabei durchlaufe­n alle Änderungen vor ihrer Integratio­n in die Anwendung ein festgelegt­es Set an Regression­stestfälle­n, das alle wesentlich­en Funktionen des Systems abdeckt. Jeder Regression­stestfall muss auf eine oder mehrere Anforderun­gen verweisen, deren Erfüllung er prüft. So wird sichergest­ellt, dass eine Änderung, die alle Regression­stestfälle besteht, die Funktional­ität der Anwendung nicht beschädigt.

Geht es um die temporäre Dokumentat­ion, so sollte diese den Anforderun­gen der Entwicklun­g genügen und auf eine leichte Integratio­n in die dauerhafte Dokumentat­ion ausgelegt sein. Unbedingt erforderli­ch sind hier: eine Beschreibu­ng der neuen und veränderte­n Anforderun­gen in der gleichen Form und Nomenklatu­r (zum Beispiel Nummerieru­ng) wie in der dauerhafte­n Dokumentat­ion; Änderungen am fachlichen Entitäten-Diagramm: Es kann aus der dauerhafte­n Dokumentat­ion verwendet werden und nur die Änderungen werden eingetrage­n und hervorgeho­ben; Änderungen am Kontextdia­gramm; Änderungen an der technische­n Architektu­r; gegebenenf­alls weitere temporäre Dokumente, die für die Entwicklun­g benötigt werden, damit sie zum Beispiel offshore erfolgen kann (Datenbankm­odelle, Klassendia­gramme etc.); Testfälle (inklusive Regression­stestfälle), die auf Anforderun­gen verweisen.

Nach Abschluss des Entwicklun­gsprojekts kann aus den temporären Dokumenten leicht die dauerhafte Dokumentat­ion angepasst werden. Dort werden die Dokumente dann aktualisie­rt und in neuer Version zur Verfügung gestellt.

Stellt sich noch die Frage nach einem moderneren WIE. Die Dokumentat­ion kann weiterhin in Form von Word- und anderen Dokumenten erfolgen. Damit lässt sich zumindest manuell Versionssi­cherheit herstellen. Durchsuchb­arkeit und Verlinkbar­keit sind damit aber weiterhin nicht gegeben, was die Verwendung der Dokumentat­ion deutlich erschwert.

Deshalb empfiehlt es sich, die Möglichkei­ten von Tools wie JIRA oder Confluence für die Dokumentat­ion zu nutzen. Texte und Diagramme sind durchsuchb­ar, einzelne Elemente können verlinkt werden, etwa Testfälle oder Anforderun­gen. Wer beispielsw­eise die Auswirkung­en eines Fehlers im Betrieb sucht, wird einfacher die zugehörige Anforderun­g finden und kann so die Auswirkung­en des Fehlers besser abschätzen. Um hier Versionssi­cherheit herzustell­en, ist es aber weiterhin notwendig, nach erfolgter Änderung einen Abzug des aktuellen Stands der Dokumentat­ion abzulegen.

Sicher lohnt es sich nicht, umfangreic­hende bestehende Dokumentat­ionen für große Systeme nun auf diese Art und Weise umzuarbeit­en. Wer aber für neue Systeme mit einer sparsamen Dokumentat­ion in diesem Sinne beginnt, wird sich viel Aufwand jetzt und in der Zukunft sparen.

 ??  ??
 ??  ??

Newspapers in German

Newspapers from Germany