JIRA als Anforderungsmanagement-Tool

Das Anforderungsmanagement hilft Ihnen den Überblick über alle Anforderung an ein System zu bekommen und über die gesamte Dauer des Projektes zu behalten.

Das Anforderungsmanagement hilft Ihnen den Überblick über alle Anforderung an ein System zu bekommen und über die gesamte Dauer des Projektes zu behalten. Mittels der Anforderungsanalyse sollen alle Anforderungen vollständig, widerspruchsfrei, aktuell und redundanzfrei erfasst werden. Diese Eigenschaften müssen während des ganzen Lebenszyklus einer Anforderung gewährleistet werden.

Um dieses Ziel zu erreichen, gibt es verschiedene Maßnahmen innerhalb des Anforderungsmanagements:

  • Erstellen und Verwalten von Anforderungen
  • Dokumentation von Änderungen und Abhängigkeiten
  • Zentrale Kommunikation aller Beteiligten
  • Effektive Verknüpfung von Informationen
  • Definition eines Prozesses und dessen Einhaltung
  • Dezentrales Arbeiten mit verteilten Rollen und Verantwortlichkeiten
  • Aufbau einer strukturierten Spezifikation


In dem nachfolgenden Artikel wird evaluiert, wie Atlassian JIRA in Verbindung mit dem Wikisystem Atlassian Confluence diese Maßnahmen stütz. Atlassian JIRA dient hierbei lediglich zur Anforderungsverwaltung. Dazu müssen zunächst einige grundlegende Konzepte von JIRA beleuchtet werden:

Vorgangstyp

Ein Vorgangstyp ist ein Objekt, das mit JIRA verwaltet wird. Je nach Anwendungsfall kann ein Vorgangstyp z.B. einen Softwarefehler, eine Projektaufgabe, ein Supportticket oder eben eine Anforderung repräsentieren.

Projekt

Ein JIRA-Projekt ist eine Sammlung von Vorgangstypen und wird entsprechend der jeweiligen Bedürfnisse definiert. Ein Projekt kann ein Softwareentwicklungsprojekt, eine Marketingkampagne, ein Supportsystem oder eine reine Anforderungsverwaltung sein. Jeder Vorgangstyp ist einem Projekt zugeordnet. Jedes Projekt hat einen Namen und einen eindeutigen Schlüssel.

Workflow

Jeder Vorgangstyp besitzt einen Lebenszyklus in dem er von einem Status in verschiedene andere überwechselt. Dieser Lebenszyklus wird in JIRA als Workflow repräsentiert. Dabei handelt es sich nicht um eine einzelne Funktionalität, sondern um den Kern von JIRA. Durch das Erstellen und Anpassen von Workflows lässt sich JIRA komplett den eigenen Wünschen und Zwecken entsprechend konfigurieren.

Unterstützung von RE-, Qualitäts- und Softwareprozessen

JIRA besitzt nur einen vordefinierten Standard-Workflow. Der individuelle Prozess zur Anforderungserhebung kann aber auf einfache Art und Weise als Workflow abgebildet werden.

Um das Anforderungsmanagement bei Communardo durch JIRA zu unterstützen, wurde zunächst eine Übersicht der möglichen Zustände einer Anforderung erstellt:

Um das Anforderungsmanagement bei Communardo durch JIRA zu unterstützen, wurde zunächst eine Übersicht der möglichen Zustände einer Anforderung erstellt
Atlassian Jira Projekt Workflow

Darauf basierend wurde der in der Graphik dargestellte Workflow definiert.

Für jedes Projekt können unterschiedliche Workflows definiert und selektiert werden, sodass verschiedene Projekte unterschiedliche Anforderungsmanagementprozesse anwenden. Die Einhaltung dieser Prozesse wird innerhalb des Workflows durch Bedingungen überprüft und, sofern gewollt, erzwungen. Anforderungen von speziellen Qualitätsstandards werden durch die hohe Flexibilität in den Workflow integriert. Die Abnahme der einzelnen Anforderungen ist bei Communardo z.B. direkt im Workflow (Status „In Abnahme“) verankert.

Verwaltung und Darstellung von Anforderungen

JIRA bietet die Möglichkeit auch Vorgangstypen nach den individuellen Bedürfnissen anzupassen. Jede Art der Anforderungserhebung (Use Case, natürlichsprachliche, etc.) kann durch benutzerdefinierte Felder unterstützt werden.

Folgende Basisfunktionalität wird bei der Anforderungserhebung genutzt: Die Anforderungsnummer wird automatisch vergeben und setzt sich zusammen aus dem eindeutigen Projektschlüssel und einer ID. Der Autor ist der Ersteller der Anforderung und wird automatisch gesetzt. Er kann nicht geändert werden. Im Gegensatz dazu steht der Bearbeiter. Er kann durch das Bearbeiten der Anforderung oder bei einem Zustandswechsel erneut gesetzt werden. Die Priorität der Anforderung ist ein Standardfeld von JIRA. Mit dem Feld Komponente wird gekennzeichnet, welches Produkt bzw. welche Systemkomponente von dieser Anforderung betroffen ist. Um die Anforderung einer Produktversion zuzuordnen nutzen wir das Feld Lösungsversion(en). Hier ist auch eine Mehrfachauswahl möglich. Das Beschreibungsfeld kann für die Beschreibung der Anforderung genutzt werden oder aber für zusätzliche Erläuterungen. Communardo nutzt zur Anforderungsspezifikation das Wikisystem Atlassian Confluence. Grafiken und Tabellen lassen sich einfach erstellen bzw. einbinden und es bietet eine Exportfunktionalität, wodurch die Anforderungsspezifikation als Dokument exportiert werden kann. Die Verknüpfung von Spezifikation und Anforderung erfolgt über das Feld Confluence-Link.

Um die Kosten einer Anforderung zu vermerken und zu verfolgen, wird die Zeitverfolgung (rechts unten) genutzt. Zum einen wird beim Erstellen der Anforderung ein Schätzwert der benötigten Zeit zur Umsetzung dieser Anforderung angeben. Während der Umsetzung der Anforderung wird die aufgewendete Zeit protokolliert und die verbleibende Zeit wird automatisch aktualisiert. Durch den Einsatz von benutzerdefinierten Feldern können weitere Angaben hinzugefügt werden. Denkbar wären z.B. ein fachlich Verantwortlicher, die Dringlichkeit der Bearbeitung oder der Anforderungstyp (funktional/nichtfunktional).

Der Vorgangstyp „Anforderung“ kann über das Projekt „Anforderungsmanagement“ hinaus auch in anderen Projekten der JIRA-Instanz auch mit einem anderen Workflow verwendet werden. Neben Anforderungen können z.B. auch Bugs, Aufgaben, Change Requests und andere Vorgangstypen innerhalb eines Projektes verwaltet werden. Diese sind wiederum einzeln konfigurierbar und können individuelle Workflows besitzen.

Atlassian Jira. Verwaltung und Darstellung von Anforderungen

Zustände, Versionskontrolle und Nachvollziehbarkeit

Wie bereits erläutert wird der Lebenszyklus einer Anforderung durch den Workflow abgebildet. Die einzelnen Bearbeitungsschritte der Anforderung werden durch die Anforderungszustände widergespiegelt und der Zustand jeder Anforderung wird als Status festgehalten. Je nach aktuellem Status der Anforderung sind verschiedene Optionen (Übergänge in mögliche Nachfolgezustände) verfügbar. Die Zustandsübergänge und die dazugehörigen Berechtigungen sind innerhalb des Workflows konfiguriert. Nicht jeder Mitarbeiter darf z.B. eine Anforderung abnehmen.

Jede Änderung an einer Anforderung wird protokolliert und im Bereich Aktivität aufgezeigt. Unter dem Reiter Aktivitäten werden alle Änderungen zeitlich geordnet in Kurzform aufgelistet und der Nutzer hat die Möglichkeit einen Kommentar zu jedem Eintrag zu verfassen. Es kann immer nur der aktuelle Zustand einer Anforderung bearbeitet oder aber in einen anderen Zustand gewechselt werden, was einer Versionierung entspricht.

Zusätzlich werden die Änderungen in der Änderungshistorie aufgelistet. Hier wird genau protokolliert wer, was, wann geändert hat und welchen Wert das entsprechende Feld zuvor besaß.

(Verschiedene Versionen von Anforderung zur Verwendung in verschiedenen Produkten können nicht ad hoc verwaltet werden. Es wäre möglich eine Art generisches Projekt anzulegen, in dem die Basisanforderungen liegen. In den konkreten Projekten wird dann eine Anforderung angelegt, die die Basisanforderung referenziert.)

Eine baumartige Organisation der Anforderungshierarchien ist nur über eigene Vorgangstypen in Form von Unteranforderungen  oder durch Verknüpfungen möglich. Die Hierarchieebenen können nicht benannt werden. Zu einer Anforderung werden immer alle verknüpften/abhängigen Anforderungen angezeigt, wodurch Abhängigkeiten zwischen den einzelnen Anforderungen kenntlich gemacht und nachvollzogen werden können. Abhängigkeiten können zwischen allen Vorgangstypten über Hierarchieebenen, Zustände, Projekt- bzw. Releasezuordnungen hinweg hergestellt werden. Eine Verknüpfung wird über das Menüband erzeugt und ist immer bidirektional. Das bedeutet, dass die Verknüpfung sowohl in der verknüpfenden Anforderung, als auch in der verknüpften Anforderung erscheint.

JIRA als Anforderungsmanagement-Tool
Atlassian JIRA als Anforderungsmanagement-Tool

Groupwarefähigkeiten und Projektmanagement

Atlassian JIRA ist eine Webapplikation und bietet auch nur im Browser den vollen Funktionsumfang. Nutzer können unabhängig von ihrem Standort jederzeit auf die Anforderungen zugreifen. So kann z.B. der Anforderungsmanager von seinem Büro in Dresden aus die Anforderung erstellen und dem Kunden zur Freigabe zuordnen. Hat der Kunde noch Fragen zu der Anforderung kann er sie als Kommentar hinterlassen. Wird auf diesen Kommentar geantwortet, erhält der Kunde eine entsprechen Emailbenachrichtigung. Antwortet er auf diese Email, wird seine Antwort automatisch als Kommentar an die entsprechende Anforderung gesetzt. Somit dient JIRA auch als Kommunikationsmittel.

Es existiert auch ein Desktop-Client womit Anforderungen offline bearbeitet werden können. Dieser verfügt aber nicht über den vollen Funktionsumfang von JIRA. Vorgenommene Änderungen werden entweder sofort oder manuell zum Server geladen. Eine Konfliktbehebung wird unterstützt. Der Abgleich mit der Datenbank erfolgt je nach Konfiguration manuell oder per auto-refresh.

Um sofort einen Überblick über den aktuellen Stand des Projektes zu bekommen, ist die Startseite von JIRA das sogenannte Dashboard, bestehend aus einzelnen Gadgets. Je nach Bedürfnissen kann das Layout benutzerspezifisch durch Hinzufügen neuer Gadgets, Verschieben an andere Positionen und Entfernen ungewünschter Gadgets.

Atlassian JIRA bietet bereits eine große Auswahl an vordefinierten Gadgets zu Aktivitätsströmen, Administration, mir zugeordnete Vorgängen, durchschnittlichen Alter von Vorgängen und viele weitere. Diese Gadgets können benutzt werden, um Berichte und Statistiken anzuzeigen und somit z.B. den Projektfortschritt zu überwachen. Die Gadgets können so konfiguriert werden, dass sie den individuellen Bedürfnissen entsprechen und nur die Daten liefern, die für das jeweilige Projekt relevant sind.

Mittels Schnittstellen und Plugins zu Projektmanagementanwendungen, wie z.B. Microsoft Project, wird die Projektverwaltung durch JIRA unterstützt. Auch die Anbindung von CASE-Werkzeugen, wie Subversion, ist über bestehende Plugins möglich. JIRA kann durch den Einsatz von Plugins zum Testmanagement eingesetzt werden.

Import und Export, Berichtsfunktionalität

Der Vorgangsnavigator ist ein weiterer mächtiger Bestandteil von JIRA. In dieser Übersicht können die Anforderungen sortiert, gefiltert und als Sicht abgespeichert werden. Diese Sichten können dann wiederverwendet werden. Durch die entsprechenden Filtereinstellungen können individuelle Berichte erzeugt werden, wie z.B. alle Anforderungen eines Releases oder einer bestimmten Komponente. Diese Berichte können dann gedruckt oder z.B. im Word- oder Excel-Format exportiert werden.

Einzelne Workflows können ebenfalls exportiert werden und in anderen JIRA-Instanzen importiert werden.

Administration und Programmierung

JIRA bietet zwei unterschiedliche Installationsvarianten:

  1. JIRA Standalone: Dies ist die einfachere Variante, da diese Variante alle benötigten Applikationen mit sich bringt.
  2. JIRA WAR-EAR: Diese Variante ist komplizierter, ist aber für die Integration in eine bestehende Application Server Landschaft gedacht. Hier muss entsprechend der Umgebung JIRA explizit konfiguriert werden.

Das Rechtesystem bietet drei verschiedene Berechtigungsebenen: einzelne Benutzer, Gruppen und Projektrollen. Die vordefinierten Gruppen und Projektrollen sind Administratoren, Entwickler und Benutzer. Auch hier bietet JIRA wieder die Möglichkeit die eigenen Bedürfnisse abzubilden und projektspezifische Rollen und Gruppen anzulegen. Für das Anforderungsmanagement bei Communardo wurden folgende Berechtigungen für die einzelnen Übergänge des Workflows gewählt.

Zugriffskontrolle bei Atlassian JIRA von einzelnen Projekten konfigurieren

Die Zugriffskontrolle bei JIRA von einzelnen Projekten bis auf einzelne Felder in Masken ist ebenfalls konfigurierbar. Ein Projekt kann öffentlich oder nur für registrierte Nutzer nach Anmeldung sichtbar sein. Es kann allerdings nur global festgelegt werden, ob das Registrieren von neuen Nutzern zugelassen wird. Bei Communardo erfolgt die Zugriffskontrolle mittels LDAP-Authentifizierung.

Das Monitoring erfolgt über die Systeminformationen von JIRA. Der Administrator kann dort Informationen über Auslastung, Kapazität und vieles Weiteres abrufen. Bei einem Updaten von JIRA auf eine neue Version werden alle bestehenden Daten und Workflows übernommen.

Das Funktionsspektrum von JIRA kann durch bereits veröffentlichte, kostenfreie oder kostenpflichtige Plugins erweitert werden. Sollten diese aber nicht die projektspezifischen Anforderungen abdecken, bietet JIRA eine API, die eine unkomlizierte Programmierung von eigenen Plugins ermöglicht.

Ergonomie und weitergehende Softwarefunktionalität

JIRA besticht durch eine einfache Navigation und übersichtliche Oberfläche. Die Oberfläche ist klar strukturiert und Aktionen sind einheitlich gegliedert. Funktionen, für die der Nutzer keine Berechtigung besitzt, werden ausgeblendet. Die einzelnen Ansichten werden beim Seitenaufruf automatisch aktualisiert. Je nach Netzauslastung können die Antwortzeiten der einzelnen Operationen variieren.

Der Komfort bei der Anforderungsspezifikation in Atlassian Confluence variiert je nach verwendetem Texteditor. Eine Rechtschreibprüfung erfolgt meist über einen browsereigenen Mechanismus. So bietet Confluence keine Konsistenzprüfung, bei der Synonyme vereinheitlicht werden. Die Struktur aller Anforderungen ist mittels eines Makros abbildbar. Das Suchen von Anforderungen wird durch eine Volltextsuche unterstützt.

Stephanie Hoffmann
21. Februar 2011 

Sie haben Fragen oder möchten sich von uns beraten lassen?

Gerne stehen wir für Ihre Fragen zur Verfügung. Nutzen Sie einfach unser Kontaktformular.