Agile und hybride Software-Entwicklung

Anforderungsartefakte in der agilen und hybriden Softwareentwicklung

Agile Entwicklung

Seit einigen Jahren verbreiten sich agile Entwicklungsmethoden immer weiter in Unternehmen. Im skandinavischen Raum wird schon fast ausschließlich agil gearbeitet. Früher wurden vor allem die Praktiken des sogenannten "Extreme Programming (XP)" mit agil assoziiert, heute steht SCRUM fast gleichbedeutend mit agiler Vorgehensweise.

Allen diesen Ansätzen ist gemeinsam, dass auch späte Änderungen möglich und erwünscht sind, um die Kundenzufriedenheit zu steigern. Diese Flexibilität ergibt sich aus Vorgehensweisen (wie XP), bei denen iterative und inkrementelle Bearbeitung von Kundenwünschen dafür sorgt, dass man nicht in die falsche Richtung entwickelt.

Bereits seit 10 Jahren bietet das Fachgebiet regelmäßig Lehrveranstaltungen zu agilen Methoden an:

Hybride Entwicklung und Anforderungsartefakte

Besonders nahe an den Bedürfnissen moderner Unternehmen steht ein ausgewogenes Verhältnis zwischen Flexibilität, Kundenzufriedenheit und Schnelligkeit auf einer Seite - aber auch Verlässlichkeit und Nachvollziehbarkeit auf der anderen. Dafür erforscht das FG Software Engineering die "hybriden Ansätze", die gute Konzepte aus agilen und aus disziplinierten Ansätzen aufgreifen und integrieren.

User Stories helfen, Kundenwünsche iterativ zu erarbeiten und Software agil zu entwickeln. Sie teilen grobe Funktionalität in kleine userorientierte Teile, die detailliert diskutiert, geschätzt und abgearbeitet werden können. Sie unterstützen somit iterative Planung und stehen daher in der agilen und hybriden Softwareentwicklung oft im Zentrum. 

Dennoch können sie nicht alle Aktivitäten optimal unterstützen, was nicht zuletzt auch an der Fülle von Aktivitäten und Rollen liegt, in denen Anforderungen eine Rolle spielen. Als Resultat werden weitere zusätzliche Artefaktarten herangezogen. Wir haben einen genaueren Blick darauf geworfen, welche Aktivitäten in der Praxis mit Anforderungen zu tun haben und welche Anforderungsartefakte dafür eingesetzt werden.

Anforderungsartefakte und ihre vielfältigen Anwendungsgebiete

In einer Interview-Studie haben wir Praktiker zu ihren Aktivitäten und Artefakten befragt. Unsere Ergebnisse haben wir im Papier How Artifacts Support and Impede Requirements Communication [1] dokumentiert. Dort haben wir festgestellt, dass User Stories selten die alleinige Artefaktform in einem Softwareprojekt sind. In weiteren Untersuchungen ([2], [3]) haben wir gesehen, dass auch innerhalb von User Stories Unterschiede in Hinblick auf deren Granularität ihre Eignung für verschiedene Aktivitäten beeinflussen.

Viele Teams verwenden neben User Stories auch GUI-Mockups, Prozessmodelle oder Use Case- bzw. Szenariobeschreibungen. Diese dienen einem besseren Gesamtüberblick sowie einem weiteren Blickwinkel auf die Anforderungen. Modelldarstellungen und GUI-Mockups werden in Gesprächen oft herangezogen, um mit Kunden leichter kommunizieren zu können und einzelne Stories in einen Gesamtkontext einzuordnen. Einige Teams schreiben sogar Spezifikationen, in denen sie einen für beide Seiten verbindlichen Zustand festhalten (müssen). Abbildung 1 zeigt die häufigsten Arten von Artefakten und deren mögliche Verwendungsziele.

Abbildung 1: Tendenz zur Verwendung mehrerer Anforderungsartefakte

Parallele Verwendung mehrerer Anforderungsartefakte

Die Verwendung mehrerer Artefakte führt wiederum zu neuen Herausforderungen in der Handhabung, wie Abbildung 2 veranschaulicht. Häufig überlappen sich Inhalte der verschiedenen Artefakte. Dies führt oft dazu, dass Informationen an mehreren Stellen vertreten sind. Projektteilnehmer müssen also auch an mehreren Stellen nachlesen, wenn sie Informationen zu einer Anforderung erhalten wollen. Auch Änderungen müssen an mehreren Stellen nachvollzogen werden, da die Dokumente sonst inkonsistent und inaktuell werden.

Meist sind die Beziehungen zudem keine trivialen 1-zu-1 Beziehungen, sondern komplexer. Das macht es schwer und aufwendig, Artefakte handzuhaben.

 

Abbildung 2: Herausforderungen bei der parallelen Verwendung mehrerer Anforderungsartefakte

In der oben erwähnten Interview-Studie [1] haben 70% der Interview-Teilnehmer Probleme im Umgang mit mehreren Artefakten erwähnt. Die Auswirkungen waren neben höheren Kosten auch die Behinderung von Aktivitäten, die auf Anforderungsartefakte zurückgreifen (wie Planung, Validierung, Klärung von Anforderungen). Außerdem berichteten Teilnehmer, dass sie Artefakten, die sich einmal als inkonsistent oder unvollständig herausgestellt hatten, schnell nicht mehr trauten und diese lieber nicht mehr verwendeten.

Visualisierung von Verknüpfungen zwischen Anforderungsartefakten

Wir suchen nach Wegen, um Projektteilnehmer bei der Handhabung von mehreren Anforderungsartefakten zu unterstützen. Indem Verknüpfungen zwischen Elementen verschiedener Artefaktarten explizit hergestellt werden, können diese dann herangezogen werden, um im Umgang mit einer Anforderung auch passende verwandte Anforderungen oder Repräsentationen im Blick zu behalten.

Am Beispiel von Story Cards und Use Cases (die die Story Cards in einen sinnvollen Anwendungskontext setzen) haben wir eine Methode zusammen mit einem Prototyp entwickelt, die dabei helfen,

Ein prototypisches Werkzeug (das IRE-Tool - mehr Infos hier) demonstriert die Handhabung der Anforderungsartefakte in der Methode. Abbildung 3 zeigt den Haupt-Bildschirm des Werkzeuges. Links sind Use Cases dargestellt, rechts Story Cards. Wenn beispielsweise eine Story Card selektiert wird, werden verknüpfte Use Case-Schritte direkt angezeigt und erlauben einen schnellen Abgleich verwandter Anforderungen bei der Verwendung sowie der Wartung der Artefakte.

Abbildung 3: Visualisierung von Verknüpfungen im IRE-Tool

Weitere Referenzen

Abschlussarbeiten

 

Publikationen

  • 2015
  • [1] Olga Liskin: How Artifacts Support and Impede Requirements Communication, In Samuel Fricker and Kurt Schneider, Requirements Engineering: Foundation for Software Quality (REFSQ 2015), pages 132-147. Springer International Publishing, 2015, Bibtex. PDF herunterladen
  • 2014
  • [2] Olga Liskin, Raphael Pham, Stephan Kiesling, Kurt Schneider: Why We Need a Granularity Concept for User Stories, In Giovanni Cantone and Michele Marchesi, Agile Processes in Software Engineering and Extreme Programming (15th International Conference, XP2014), pages 110-125. Springer International Publishing, 2014, Bibtex. Abstract. PDF herunterladen
  • [3] Olga Liskin, Fabian Fagerholm, Kurt Schneider, Jürgen Münch: Understanding the Role of Requirements Artifacts in Kanban, In Proceedings of 7th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE '14), ICSE 2014, Hyderabad, India, 2014, Bibtex. PDF herunterladen