Agiles Anforderungsmanagement mit Jama

Nächste Woche Mittwoch halte ich gleich zwei Vorträge in Berlin, auf zwei Konferenzen, aber beide über Jama Software. Jama ist ein webbasiertes Werkzeuge für die Produktentwicklung.

Am Vormittag des 20.9. halte ich auf der Modern RE statt mit dem Titel So leicht, dass man das Werkzeug gar nicht sieht: Jama in der agilen Entwicklung.

Am Nachmittag des 20.9. halte ich auf der medini analyze European User Conference den Vortrag Turning your product development process into a competitive advantage.

Für die Leser von SE-Trends ist wahrscheinlich der Inhalt des ersten Vortrags interessanter. Warum sich Jama für agiles Anforderungsmanagement eignet werde ich im Folgenden erläutern.

Jama Software

Der eine oder andere kennt Jama vielleicht schon: Wie DOORS und Polarion ist es eine Software, die für das Anforderungsmanagement eingesetzt wird. Die Software ist webbasiert. Neben RE wird auch Test-, Workflow- und Produktlinienmanagement unterstützt. Aber für den agilen Bereich ist sie meiner Meinung nach aus zwei Gründen geeignet: Zum einen lässt sich schnell und einfach ein passendes Datenmodell konfigurieren, welches ein solides und leicht verständliches Traceabilitykonzept nutzt. Zum anderen ist eine soziale Kommunikationsplattform eingebaut, die auf allen Ebenen greift. Beides ist für agiles RE unerlässlich.

Ich selbst habe Jama vor ca. einem Jahr entdeckt und halte es für eines der besten RE-Werkzeuge, die es zur Zeit auf dem Markt gibt. Ich arbeite zur Zeit als freiberuflicher Berater für Jama Software.

Datenmodell und Traceability

In Jama können mehrere Datenmodelle definiert werden, die dann für Projekte eingesetzt werden können. Alle Aspekte des Datenmodells können konfiguriert werden. Im Folgenden ist ein Datenmodell für die agile Entwicklung zu sehen:

Es gibt eine Anzahl von Elementtypen, in diesem Fall fünf. Zwischen diesen Elementen bestehen durch Pfeile dargestellte Beziehungen. Im Gegensatz zu manch anderen Werkzeugen gibt es keine klare Semantik der Beziehungen bezüglich der Daten im Modell:

Vollständigkeit: Durchgezogene Linien werden für die Vollständigkeitsanalyse herangezogen: Im Modell muss es dann zwingend mindestens ein Kindelement geben, bzw. genau ein Elternelement. Also muss bspw. ein konkretes Epic mindestens einen Test Case haben, und es darf keinen Test Case ohne Elternelement geben.

Für gestrichelte Beziehungen wird keine Vollständigkeitsanalyse durchgeführt, jedenfalls nicht automatisch.

Änderungen: Dieser Aspekt von Traces ist besonders wichtig für agiles Arbeiten. Die Elemente einer Beziehung werden mit „Upstream“ und „Downstream“ bezeichnet. Wenn sich das Upstream-Element ändert, dann wird das Downstream-Element als suspekt markiert. Warum das wichtig ist, werden wir gleich sehen.

Traceability für agiles Arbeiten einsetzen

Wie im Artikel über agile Systementwicklung bereits erwähnt wurde, muss man agil schnell auf Änderungen reagieren können. Aber natürlich nicht auf jede Änderung. Nehmen wir uns ein elektrisches Auto als Beispiel. Dort gibt es vielleicht die Nutzeranforderung „Reichweite: 200 km“. Basierend auf dieser Anforderung wird vielleicht entschieden, dass eine Batterie mit 30 kWh eingesetzt. Wenn die Batterie auf 35 kWh verändert wird, so ist diese Änderung für die Nutzeranforderung unwichtig (Upstream). Wenn jedoch die Reichweite auf 250 km erweitert wird, so muss die Kapazität der Batterie unbedingt geprüft und ggf. angepasst werden (Downstream). Daher werden bei Änderungen alle Elemente, die Downstream sind, als suspekt markiert.

Da dieser Mechanismus bei Jama konsistent bei allen Verknüpfungen greift, ist das Verhalten für die Nutzer leicht zu verstehen und macht den Umgang mit Änderungen sehr robust. Übrigens kann konfiguriert werden, welche Attribute ein suspekt auslösen. Zum Beispiel sollte das nicht passieren, wenn sich bspw. die Priorität eines Elements ändert. Wenn sich der Anforderungstext ändert, dann hingegen schon.

Soziale Kommunikation

Der zweite Aspekt, der für agiles RE wichtig ist, ist Kommunikation. In Jama kann an jedes Element eine Diskussion angeknüpft werden. Hilfreich ist dabei, dass Diskussionen auch kategorisiert werden können, zum Beispiel als Frage oder Entscheidung. Dabei verfolgt das System, ob Entscheidungen offen oder Fragen unbeantwortet sind. Dadurch ergeben sich aus den Diskussionen automatisch Aufgabenlisten.

In dem Screenshot ist zu sehen, wer alles in der Vergangenheit eine Anforderung bearbeitet und kommentiert hat, oder wer in der Kommunikation erwähnt wurde. Rechts ist die gesamte Kommunikation aufgeführt, wobei hier eine beantwortete Frage zu sehen ist (daher das blaue Dreieck, das bei unbeantworteten Fragen gelb ist).

Durch die gute Integration gibt es bei der Kommunikation kaum Reibungsverluste, und abgeschlossene Fragen und Entscheidungen bleiben erhalten und sind leicht zu finden. Dies hilft nicht nur bei der agilen Entwicklung, sondern hilft auch bei der Einhaltung von Vorschriften bei der Entwicklung sicherheitskritischer Systeme, zum Beispiel durch die automatische Dokumentation von Entscheidungen.

Die Kommunikation löst natürlich auch Benachrichtigungen per E-Mail aus. Antworten auf die E-Mail werden automatisch in die Kommunikation eingepflegt. Die hier gezeigte Kommunikation ist informell und kann spontan zur Diskussion genutzt werden. Es können auch formelle Reviews eingeleitet werden, bei denen der Reviewprozess über eine ähnliche Kommunikation abläuft (ebenfalls nützlich für sicherheitskritische Entwicklungen).

Weitere Features

Die zwei hier gezeigten Eigenschaften von Jama haben eine zentrale Bedeutung, um agil arbeiten zu können. Es gibt viele weitere. Ein solides Testframework ermöglicht es, zügig manuelle oder automatische Testzyklen zu durchlaufen. Und nicht zuletzt helfen die gute Benutzeroberfläche und intuitive Bedienung dabei, dass das Werkzeug bei der Arbeit nie im Weg ist.

Jama in der Systementwicklung

Besonders spannend (zumindest für SE-Trends) ist jedoch, dass Jama auch für die Entwicklung nach IEC 61508 eingesetzt werden kann, also für die Entwicklung sicherheitskritischer Systeme. Alle dafür benötigten Features sind vorhanden. Damit ist Jama hervorragend für agile Systementwicklung geeignet, und wird auch entsprechend eingesetzt.

 

 

Dieser Artikel erschien zuerst bei se-trends.de.