(Beitragsbild: Berger, OVGU-Pressebild) In agilen Methoden steht die Integration des Kunden stark im Vordergrund. So wird in Scrum der Product Owner (der Kundenvertreter) als Teil des Projektteams angesehen, die Verfügbarkeit vor Ort wird empfohlen. Die starke Einbeziehung des Kunden sollte auch bei der Dokumentation erfolgen. Es macht daher Sinn, dem Kunden einen Zugang zur Projektdokumentation zu ermöglichen. Dabei sollte der Kunde jedoch nur sein Projekt sehen können und nicht die Projekte anderer Kunden. Eine logische Trennung der Projekte in einzelne Wikis mittels Farming kann dabei sinnvoll erscheinen.
Allerdings ist das Aufsetzen und Administrieren verschiedener Wikis aufwändig und unübersichtlich. In welchem Wiki sind welche Plugins zu aktualisieren? Welche internen Nutzer müssen für das neue Kundenprojekt wieder frei geschaltet werden? Im sprintDoc-Projekt setzen wir auf das Farming-Konzept. Dabei wird eine Wiki-Installation – der sogenannte Farmer – aufgesetzt, die ihre Eigenschaften an neue Wiki-Instanzen weiter vererben kann. Die neuen Wiki-Instanzen – genannt Animals – sind logisch voneinander getrennt und liegen auf dem Webserver in verschiedenen Ordnern.
Unterstützung des Farming-Konzeptes für DokuWiki
CosmoCode hat für das Aufsetzen und Verwalten einer DokuWiki-Farm ein neues Plugin entwickelt. Mit diesem Farmer-Plugin wird ein bestehendes Wiki zum Farmer ernannt. In der zentralen Konfiguration kann festgelegt werden, welche Eigenschaften vererbt werden können, bspw.:
- Plugins
- Templates
- Nutzer
- Zentrale Konfigurationseigenschaften
Die vererbten Eigenschaften können lokal überschrieben werden. Im Farmer werden Updates eingespielt oder neue Plugins installiert und für eines oder mehrere Animals frei geschaltet. Die einzelnen Animals sind über eigene Subdomains erreichbar, wie bspw. das Demo-System (https://demo.projekt-wiki.sprintdoc.de/) auch ein Animal des sprintDoc-Prototyps (http://projekt-wiki.sprintdoc.de/) darstellt.
Synchronisation von Inhalten
Manchmal ist es jedoch auch notwendig auch Inhalte über Wiki-Animals hinweg auf einem gleichen Stand zu halten. Im sprintDoc-Prototyp wird bspw. die Beschreibung der Methode zur „Dokumentation in agilen Softwareprojekten“ ebenfalls in Form von Wiki-Seiten eingebunden. Ändert sich die Methodenbeschreibung, sollte diese in allen Animals nachgezogen werden. Für diesen Anwendungsfall hat CosmoCode ein Synchronisationsplugin entwickelt. Über den Synchronisationsmechanismus können Seiten oder ganze Namensräume (inkl. zugehöriger Mediendateien) zwischen Animals auf den gleichen Stand gebracht werden. Im Konfliktfall kann sich der Nutzer die Unterschiede zwischen den jeweiligen Instanzen anzeigen lassen und sich für oder gegen eine Übernahme der Quelldaten entscheiden. Zusätzlich können inzwischen auch die mit dem struct-Plugin erzeugten Strukturen zwischen einzelnen Wiki-Animals synchronisiert werden.
Mit den beschriebenen Plugins lässt sich eine DokuWiki-Farm einfach aufsetzen und komfortabel administrieren. Updates des Wikis und seiner einzelnen Plugins können mit einem Bruchteil der ursprünglich notwendigen Zeit eingespielt werden, da sie nicht manuell für jedes einzelne Wiki wiederholt werden müssen. Dies spart wertvolle Administratorenzeit und ungewollte, stupide, manuelle Eingriffe.