Die Methode CARDS+ verfolgt ein Konzept, hat Prinzipien und schlägt Praktiken vor, um die Ziele der Methode zu erreichen. Die Methode macht auch Vorgaben. Die wichtigste davon ist die Verwendung eines Wiki. Ohne dieses Werkzeug kann die Methode nicht funktionieren. Es gibt noch viele andere Werkzeuge, die wir in unseren Projekten vorfinden. Viele davon können wir im Zusammenhang mit der Methode verwenden. Aber dieses starke Abhängigkeit wie zum Wiki existiert hier nicht.

12 Effektiver Werkzeugeinsatz

Das Werkzeug für das Wiki

Das Wiki ist ein wesentlicher Bestandteil des Gesamtkonzeptes der Methode CARDS+. Es muss sehr sorgfältig gewählt werden. Die Methode stellt ganz konkrete Anforderungen an das Wiki. Auch die Nutzung der zentralen Funktionen eines Wiki – Seiten, Beiträge, Kommentare, Stichworte – ist ein wichtiger Faktor für die Qualität der Inhalte der Produktdokumentation.

Confluence ist ein sehr gutes CMS und als solches als Wiki nutzbar. Es ist als Cloud-Lösung in allen Größen bestellbar. Es gibt eine Unzahl von Plugins zur Integration verschiedener externer Dokumente (z.B. Word, Excel, PDF). Auch Plugins für Grafikprogramme wie Draw.io, Gliffy oder Balsamiq sind verfügbar.

WordPress ist ein sehr verbreitetes und bekanntes cloud-basiertes CMS. Es kann als Wiki verwendet werden.

Vorgangsverwaltung

Unter dem Titel Vorgangsverwaltung fasse ich alle Werkzeuge zusammen, deren Ziel es ist, Tätigkeiten und Aufgaben in einem Projekt zu erfassen und zu verfolgen. In diese Kategorie fallen alle Arten von Kalender oder Produkte wie JIRA oder Trello.

JIRA ist allgegenwärtig. Wir finden es in großen wie auch kleinen Projekten. Es ist als Cloud-Lösung in allen Größen bestellbar. Es gibt eine Unzahl von Addons für JIRA, mit der die Abbildung agiler Methoden wie Kanban oder Scrum möglich ist. Weitere Addons integrieren Werkzeuge der Tester (z.B. Zephyr) oder Entwickler (z.B. Git).

Trello ist ein sehr einfaches cloud-basiertes Werkzeug. Die Abbildung von Kanban und Scrum ist möglich. Die besondere Stärke von Trello ist das annähernd gleiche Nutzererlebnis auf Smartphone, Tablets, Laptops oder Desktops.

Werkzeuge für den Test

In der Methode CARDS+ sind Akzeptanz- und Regressionstests Teil der Produktdokumentation. Spezialisierte Werkzeuge erlauben die einfache häufig listenorientierte Definition und automatisierte Ausführung von Testfällen.

Fitnesse stellt ein Wiki mit einer einfachen Markup-Sprache zur Verfügung, mit der man Testtabellen erzeugen und anzeigen kann. Ein Fitnesse-Testfall besteht aus einer Testtabelle, wobei die Verbindungen zwischen den Testtabellen und Java-Testklassen durch sogenannte Fixtures realisiert werden. Diese Fixtures sind z.B. Java-Klassen, die ein bestimmtes Interface implementieren.

Im Blog von sybit gibt es eine interessante Artikelserien zur Testautomatisierung mit Fitnesse mit dem Titel “Lass testen“.

Wir wollen alle Testfälle als Teil der Produktdokumentation nutzbar zu machen. Dazu müssen wir Werkzeuge verwenden, die eine für Menschen lesbare Darstellung für die Akzeptanz- und Regressionstests haben.

Werkzeuge der Entwickler

Lesbarer Code ist ein wichtiges Nebenziel der Methode CARDS+. Artefakte der Entwicklung wie

  • Konfigurationsdateien (z.B. mit Ansible),
  • Skripte,
  • Schemadefinitionen (z.B. Avro),
  • Spezifikationen (z.B. Swagger) oder
  • Code-Kommentare

zählen zur Produktdokumentation.

Ansible ist ein Werkzeug, mit der sich IT-Systeme automatisieren lassen. Es fasst Konfigurationsmanagement,  Ad-Hoc-Befehlsausführung und Deployment von Systemkomponenten zusammen. Die Konfigurationsdateien, genannt Playbooks, sind leicht zu lesen und zu schreiben. Ansible verwendet für die Playbooks keine eigene Syntax, sondern basiert auf dem etablierten YAML-Format.

Avro ist eine von vielen Lösungen für eine sprachneutrale Datenserialisierung. Avro definiert im JSON-Format ein Schema, das die Struktur der Daten beschreibt. Es unterstützt eine Schemaevolution, d.h. eine schreibende und eine lesende Komponente können eine unterschiedliche, aber kompatible Version des Schemas verwenden.

Es gibt noch viele weitere vergleichbare Lösungen wie Protocol Buffers, Etch, Thrift oder Hessian. Einen guten Überblick gibt der Artikel mit dem Titel “Protocol Buffers, Etch, Hadoop und Thrift im Vergleich” aus dem Jahr 2010.

Swagger ist ein Format zur Beschreibung einer REST-API. Zu Swagger gehört Swagger UI , eine Benutzeroberfläche sowohl zur Dokumentation als auch zur Ausführung von Ad-hoc-Tests. Der Editor benutzt die Data-Serialization YAML , um die API zu beschreiben. Das ermöglicht die einfache und schnelle Erstellung einer Dokumentation. Die Quelle der Dokumentation ist der Code.

Im Blog von t3n gibt es einen Artikel mit dem Titel “Swagger UI räumt auf“.

Javadoc ist ein Dokumentationswerkzeug aus dem JDK, das aus Java-Code automatisch HTML-Dateien erstellt. Neben der Standardausgabe in HTML sind alternative Ausgaben durch spezielle Doclets möglich. Die Dokumentation kann durch spezielle Kommentare im Quelltext angereichert werden, hierbei kommen Tags zum Einsatz, die dazu dienen, z. B. Interfaces, Klassen, Methoden und Felder näher zu beschreiben.

Um allen Lesern der Produktdokumentation Zugriff auf dieses Produktwissen zu geben, brauchen wir Werkzeuge, um die Artefakte der Entwicklung für jeden Projektmitarbeiter lesbar präsentiert.

ktip Was genau in diesem Zusammenhang “lesbar” bedeutet, das muss die Projektorganisation festlegen.

Dokumentenverwaltung

In unserem Wiki pflegen wir mit hoher Qualität die Produktdokumentation. Wir stellen als Team sicher, dass am Ende eines Sprints neben dem Produkt (also Code, Tests, Konfigurationen) auch die Produktdokumentation (Glossar, Systembeschreibung, Architekturdefinition) potenziell auslieferbar (englisch: potentially shippable) ist.  Das Produkt ist immer in irgendeiner Form versioniert, die bekanntesten Werkzeuge sind Git und Subversion. Wollen wir auch die Produktdokumentation versionieren, benötigen wir eine Dokumentenverwaltung.

ktip In den meisten Fällen reicht es, die Produktdokumentation zu sichern, wenn das Produkt tatsächlich eingeführt wird.