Strukturen

Flexible Dokumentationsstrukturen mit dem struct-Plugin

Einige strukturierte Wikis – wie auch das im Projekt verwendete DokuWiki – ermöglichen die Integration strukturierter Daten. Dabei gibt es sehr unterschiedliche Anwendungsmöglichkeiten, denn mit der Verknüpfung von Wikiseiten und den darin enthaltenen Daten lassen sich verschiedenste Dokumentationsstrukturen realisieren. So lassen sich beispielsweise Projektdokumentationen mit den zugehörigen Meetings oder auch den wichtigsten Anforderungen verknüpfen.

Verbesserungspotenzial bisheriger Dokumentationsstrukturen

Aus der bisherigen Umsetzung strukturierter Wikis mit dem Data-Plugin lassen sich folgende Verbesserungspotenziale identifizieren:

  • Flexibilität der Strukturen durch eine zentrale Verwaltung der Datenstrukturen und -abfragen,
  • Vereinfachung der Anwendung durch Vermeidung irritierender, komplizierter Syntax innerhalb der Wiki-Seiten,
  • Nutzerfreundliche Unterstützung bei der Generierung von Datenstrukturen und abfragen,
  • Dynamisierung von zentralisierten Abfragen durch Rückgriff auf bestehende Inhalte der Datenstrukturen sowie
  • Trennung von Datenpflege und Seiteninhalt.

Im sprintDoc-Projekt haben wir versucht die Strukturierung von Dokumenten neu zu denken. Dafür haben wir ein neues Werkzeug – das struct-Plugin – entworfen und umgesetzt. Mit diesem Ansatz können wir nun sehr flexible Dokumentationsstrukturen aufbauen und umsetzen. Dies ist gerade für die Dokumentation in agilen Projekten enorm wichtig, da eben kein vordefiniertes Konzept der umzusetzenden Software besteht, alles ist im Fluss und verändert sich. Entsprechend flexibel muss die Dokumentation gestaltbar sein.

Wie arbeitet das struct-Plugin

Wir haben die Pflege der Strukturen zentralisiert. Über einen Schema-Editor können privilegierte Nutzer ein Dokumentationsschema definieren, welches verschiedene Datentypen aufnehmen kann, von einfachem Text bis hin zu Bilddateien. Die Datenstrukturen können umfangreich konfiguriert werden. Im Assignment-Editor kann anschließend definiert werden für welche Seiten/Namensräume das Schema nutzbar sein soll. Einmal definiert können an der zugeordneten Seite entsprechende Daten angefügt werden. Die Dateneingabe und die inhaltliche Bearbeitung der Seite sind dabei getrennt, aber im gleichen Schritt durchführbar. Schemata, Assignments und Daten werden in einer SQLite-Datenbank gespeichert und können für Datenabfragen in Aggregationen genutzt werden. Die Aggregationen können wiederum durch einen separaten Editor entworfen und gepflegt werden. So kann bspw. bestimmt werden, welche Spalten der Tabelle in welcher Reihenfolge gepflegt oder gefiltert werden können. Die Zusammenhänge sind in der nachfolgenden Grafik beschrieben.

Zusammenspiel strukturierter Daten mittels struct-Plugin
Zusammenspiel strukturierter Daten mittels struct-Plugin

Dokumentationsstrukturen aus einfachen Mustern

Dennoch lassen sich ein paar einfache Muster (patterns) von zusammengehörigen Dokumenten aufstellen und bei Bedarf kombinieren. Meeting-Protokolle lassen sich bspw. einfach vordefinieren und mit dem Projekt verknüpfen. Eine Projektseite hat dann bspw. eine automatische Auflistung aller im Projekt durchgeführten Meetings mit den zugehörigen Protokollen. Im sprintDoc-Projekt entwickeln wir daher derartige Beispieldokumentationen, die sich bedarfsorientiert im Projekt verbinden lassen sollen. Erste Pattern haben wir zusammen getragen.

Zukünftig wollen wir mit Unternehmen in den Austausch treten, welche Pattern in der Praxis gebraucht werden. Mittelfristig werden wir daher einen Workshop zur Entwicklung derartiger Dokumentationsmuster organisieren und interessierte Unternehmen dazu einladen. Möchten Sie an einem Workshop zur Entwicklung von Mustern teilnehmen, dann melden Sie sich bitte bei Herrn Voigt von der Otto-von-Guericke-Universität.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.