In diesem Blog-Beitrag werden Möglichkeiten vorgestellt, wie der Standard-Projekt-Workflow in Jira konfiguriert werden kann, sodass er die tatsächliche Arbeitsweise im Projekt und die zugrundeliegenden Prozesse passgenau abbildet.

Die wichtigsten Grundlagen:

  • Ein Workflow in Jira definiert die Schritte und Status, die ein Issue während seines Lebenszyklus innerhalb des Projekts durchlaufen kann und legt ihren Ablauf fest. Bestenfalls spiegelt dieser Ablauf genau den tatsächlichen Arbeitsprozess im Projekt wider.
  • Je nach Präferenz wird innerhalb eines Projekts ein Gesamtworkflow verwendet oder für einzelne oder alle Issue-Types gesonderte Workflows eingerichtet.
  • Einen spezifischen, auf das jeweilige Projekt abgestimmten Workflow erstellt man, indem der vom System bereitgestellte Standard-Workflow kopiert und entsprechend angepasst wird.

Jeder Workflow setzt sich dabei aus zwei Kernelementen zusammen:

  • Status: Dieser stellt den Zustand eines Issues an einer bestimmten Stelle im Workflow dar. Ein Issue kann sich zu einem bestimmten Zeitpunkt nur in einem Status befinden.
  • Transition: Eine Transition ist eine Verbindung zwischen zwei Status, die es einem Issue ermöglicht, von einem Status zum anderen zu wechseln. Eine Transition ist eine einseitige Verbindung – d.h., soll ein Issue zwischen zwei Status hin und her bewegt werden, müssen dafür zwei Transitions erstellt werden.

Stellschrauben für die erweiterte Workflow-Konfiguration:

Mithilfe der folgenden Einstellungsoptionen kann jede einzelne Status-Transition in einem Workflow noch präziser gesteuert werden:

  • Properties
  • Triggers
  • Conditions
  • Validators
  • Post Functions

Um nun herauszufinden, was wie zur Zielerfüllung verwendet werden muss, folgt eine kleine Zusammenfassung der wichtigsten Eigenschaften und Nutzungsbeispielen:

Properties

Ziel: Änderungen von key-value pairs bei Transition oder Status


Was kann ich einstellen: Mithilfe der Properties können bestimmte Issue-Eigenschaften abhängig von Transition oder Status-Erreichung geändert werden. Z. B. kann die Anzahl der auswählbaren Optionen für das Resolution-Feld im Transition-Screen eingeschränkt werden. Darüber hinaus kann die Reihenfolge der Transition-Buttons angepasst werden oder der Edit-Button für ein Issue vollständig entfernt werden, sobald es einen bestimmten Status erreicht hat (jira.issue.editable = false).


Was sollte ich einstellen: Wenn sich bestimmte Issue-Eigenschaften wie z. B. Berechtigungen, Editierbarkeit oder Anordnung der Elemente in Bezug auf eine Transition oder einen Status ändern sollen.


Triggers

Ziel: Automatische Transition


Was kann ich einstellen: Trigger können in Jira-Workflows so konfiguriert werden, dass sie auf Ereignisse in verknüpften Entwickler-Tools reagieren und basierend darauf automatisch eine Transition auslösen.

Z.B. kann für die Transition vom Status „To Do“ zu „In Progress“ der Trigger „Branch created (Bitbucket Server)“ ausgewählt werden. Sobald das Ereignis dann eintritt, wird die Transition automatisch durchgeführt.


Was sollte ich einstellen: Wenn die Entwickler mit Tools wie bspw. BitBucket und GitHub arbeiten und diese mit Jira verknüpft sind. Hier muss ein Issue bei richtiger Konfiguration bspw. nicht länger manuell in den Status „In Progress“ oder „Code Review“ verschoben werden, sondern dies wird vom System automatisch in Echtzeit erledigt.


Conditions

Ziel: Einschränkung, ob Transition angezeigt wird


Was kann ich einstellen: Durch Conditions können Vorbedingungen definiert werden, die erfüllt sein müssen, damit eine Transition überhaupt für den Nutzer als mögliche Handlungsoption angezeigt wird.

Beispielsweise kann eingeschränkt werden, für welche Nutzer im Projekt eine bestimmte Transition sichtbar und dadurch möglich werden soll, (bspw. nur für Assignee oder Reporter). Eine weitere Einschränkung wäre, dass ein bestimmtes Issue-Feld einem vordefinierten Wert entsprechen muss, damit die Transition für ein Ticket als Option sichtbar wird.

! Mehrere Conditions können hierbei auch miteinander verknüpft und gruppiert werden, bis die gewünschte Logik erreicht ist. !


Was sollte ich einstellen: Wenn es Transitions im Workflow gibt, die nur unter spezifischen Bedingungen, wie z. B. Rolle des Nutzers oder bei Erreichung bestimmter Werte durchführbar werden sollen.


Validators

Ziel: Prüfung, ob Transition durchgeführt wird


Was kann ich einstellen: Durch Validators können Eingabewerte auf Gültigkeit überprüft werden. Schlägt die Prüfung fehl, wird die Transition nicht durchgeführt. Beispielsweise kann überprüft werden, ob alle Pflichtfelder ausgefüllt sind, die Werte gültig sind oder ob der jeweilige Nutzer eine bestimmte Berechtigung besitzt.

Die Prüfung berücksichtigt auch Felder, die im zugehörigen Transition-Screen ausgefüllt wurden.

! Ohne weitere Jira-Add-on oder Plugins sind standardmäßig nur der „Permission Validator“ und der „User Permission Validator“ verfügbar. !


Was sollte ich einstellen: Wenn für die Transition ein Transition Screen verwendet wird und die vorgenommenen Eingaben auf Gültigkeit überprüft werden müssen.


Post Functions

Ziel: Automatische Aktion nach Transition


Was kann ich einstellen: Mithilfe von Post Functions kann eingestellt werden, was passieren soll, nachdem eine Transition erfolgreich durchgeführt wurde. Z. B. Aktualisierung eines bestimmten Feldes, Hinzufügen eines Kommentars oder Senden von E-Mail-Benachrichtigungen.

Zu beachten ist, dass jede Jira-Transition bereits 5 grundlegende Post Functions hat, die nicht verändert, neu geordnet oder gelöscht werden können.


Was sollte ich einstellen: Wenn nach einer Transition eine Aktionen durchgeführt werden sollen, die nicht durch die 5 bereits standardmäßig vorhandenen Funktionen abgedeckt sind.