Wir bei re:thinc setzen als Planungs- und Projekt Management Tool die bekannte Software JIRA aus dem Hause Atlassian ein. Mit einigen einfachen Konfigurationen konnten wir schnell unsere Arbeitsvorgänge in dieser Software abbilden. Die Verwaltung von Projekten, Sprints und Tasks bietet uns einen grossen Mehrwert und helfen uns die Projektabwicklung effizient zu gestalten. Aber die eierlegende Wollmilchsau ist JIRA auch nicht. Zwar bietet JIRA eine «Time Tracking» Funktion an, welche uns erlaubt unsere Aufwände für ein Issue zu hinterlegen, jedoch ist die Funktionalität eher beschränkt.
Zeiten erfassen ja, aber auswerten?
Das Erfassen der Aufwände geht sehr einfach: Beim entsprechenden Task «Log Work» auswählen und ein Overlay für die Zeiterfassung erscheint. Nach Eingabe der Stunden wird ein «Worklog» mit dem aktuellen Datum dem entsprechenden Issue angehängt. Soweit so gut. Möchte man aber eine Auswertung der Aufwände haben, z.B. für eine Rechnungsstellung, kommt man sehr schnell an seine Grenzen. Zuerst haben wir versucht mit benutzerdefinierten Filtern eine Auswertung zu erstellen. Dafür hinterlegten wir in der Filteransicht eine Abfrage, welche alle Issues mit einem Worklog Eintrag in einer definierten Zeitspanne anzeigt. Nach kurzer Freude über diese Möglichkeit kam aber sehr schnell die Ernüchterung. Die summierten Aufwände in der Liste waren immer alle erfassten Aufwände eines Issues, daher auch Einträge ausserhalb der definierten Zeitspanne. Eine aussagekräftige Auswertung war aus diesem Grund nicht möglich. Jedoch wäre es für uns ideal direkt beim Issue im JIRA seine Aufwände zu erfassen und dafür nicht extra ein weiteres zusätzliches Tool zu verwenden. Aber ohne bequeme Auswertung der erfassten Aufwände würde uns die Zeiterfassung im JIRA nichts bringen. Was nun?
Plugin to the rescue!
Aber halt! Es gibt doch Plugins? Für genau diesen Zweck hat JIRA einen Marketplace für Plugins in ihrer Software integriert. Doch aufgepasst: Bei unserer Recherche fiel uns auf das einige der Plugins nicht für die Cloud Version von JIRA zur Verfügung stehen. Dieser Umstand reduzierte schon mal die Zahl der in Frage kommenden Plugins. Nachdem wir zwei bis drei Erweiterungen testen konnten fiel uns auf, dass alle eine eigene Datenstruktur für die Zeiterfassung benötigen. Dies obwohl JIRA eine geeignete Struktur für uns bieten würde. Würden wir eines dieser Plugin einsetzen müssten wir alle bisher erfassten Aufwände übertragen und wären an den Anbieter des Plugins gebunden. Der aktuelle Marktführer Tempo bietet zwar einen grossen Funktionsumfang an, welches einen Wechsel rechtfertigen würde. Jedoch benötigen wir nur einen winzigen Teil dieser Funktionen und ein Wechsel kam deshalb schlussendlich nicht in Frage. Was aber wenn wir ein Plugin hätten welches unseren Anforderungen entspricht?
Wir entwickeln den Time re:port!
Hier sind wir jetzt. Unser erste Version des Plugins sollte folgende Funktionen bieten:
- Auflistung der Aufwände für ein Projekt
- Auflistung der Aufwände von einem Mitarbeiter
- Die Zeitspanne der Auswertung sollte beliebig bestimmbar sein
Ausserdem wollen wir folgende Kriterien erfüllen:
- Es muss mit der JIRA Cloud kompatibel sein
- Es soll keine Änderung an der bestehenden JIRA Datenstruktur vorgenommen werden
- Daten sollen nicht ausserhalb der JIRA Cloud gespeichert werden (ausser fürs Caching)
- Visuell soll es dem neuen Design von JIRA entsprechen
Aber wie schreiben wir ein Plugin?
Atlassian bietet hierfür eine Schnittstelle (Atlassian Connect) für die Plugin Entwicklung an. Mit dem Starter Kit, welches für Node.js Express und Spring Boot bereit gestellt wird kann man nach kurzer Zeit ein «Hallo Welt!» Plugin in der eigenen JIRA Instanz betrachten. Nach einigen kurzen Test haben wir uns für folgende Architektur entschieden:
- Spring Boot als Plugin Instanz und REST Schnittstelle für unseren Client.
- Reactjs als Client Software, damit wir die Jira Guidelines mit dem AtlasKit umsetzen können.
Und wie sieht es jetzt aus?
Die ersten Hürden mit der REST API sowie der Einarbeitung in React sind genommen. Wir können neu in unsererem JIRA die gewünschten Auswertungen machen und verwenden diese als Basis für unsere Rechnungsstellung.
Neben den Aufwänden für die Projekte können wir zudem in einer Mitarbeiteransicht unsere Aufwände einsehen...
... und die Zeitspanne lässt sich bequem und flexibel einstellen. Mit einem Klick erhalten wir die gewünschten re:ports
Der aktuelle Stand erfüllt bereits unsere Grundanforderungen, doch wir sehen einige Möglichkeiten welche aufgrund der gelegten Basis in Frage kommen. Wir möchten nun Schritt für Schritt das Plugin weiter ausbauen und bald eine erste Version im JIRA Marketplace veröffentlichen.