Eine Kollegin und ich waren schon mehrere Wochen als Business-Analysten (BA) in einem großen Software-Projekt (im weiteren Projekt A) unterwegs, in engem Austausch mit einem Entwicklerteam. Wie in agilen Projekten üblich gab es dann eine gemeinsame Retro, in der wir unsere Zusammenarbeit auf den Prüfstand stellen und gegebenenfalls Verbesserungen anstoßen wollten. Bis dahin hatten wir den Eindruck eines erfolgreichen Miteinander gewonnen. Zudem waren meine Kollegin und ich beim gleichen Kunden in einem anderen Projekt (im weiteren Projekt B) schon vorher als BAs tätig gewesen und hatten dort ebenfalls positives Feedback vom Entwicklungsteam bekommen.
Die Retro hielt eine Überraschung bereit
In der Retro erfuhren wir, dass es seitens der Entwickler tatsächlich Änderungsbedarf an unserer Vorgehensweise als BA gab: unsere Ablaufdiagramme, die wir ergänzend zu den User Stories als Unterstützung der Spezifikation erstellt hatten, führten bei den Entwicklern eher zu Verwirrung als dass sie sie unterstützt hätten. Im Ergebnis der Retro verständigten wir uns auf ein angepasstes Vorgehen: die User Stories sollten keine detaillierten Abläufe und dafür mehr „fachliches Wollen“ enthalten.
Soweit, so gut. Mich hat diese Retro aber nicht in Ruhe gelassen. Nicht wegen der – berechtigten – Kritik, sondern weil ich nicht recht verstand, warum etwas in dem einen Projektkontext B gut funktioniert hatte und in dem anderen Projektkontext A jetzt nicht. Als Business Analyst bin ich davon ausgegangen, dass sich meine Methoden der Anforderungsanalyse gut übertragen und (fast) überall anwenden lassen. Also ging ich auf die Suche…
Ein Argument der Entwickler war, dass sie versucht hatten, die Implementierung entlang unseres Ablaufes vorzunehmen. Dabei stießen sie auf Probleme, da der schon vorhandene Code nicht zu unserem Ablauf passte. Zugegeben, unser Ablauf war sehr detailliert, stellte jedoch zunächst mal nur den für uns fachlich gewollten Ablauf dar und hatte nicht den Anspruch, die Software im Detail zu beschreiben. Aber er sollte natürlich nicht für Verwirrung sorgen. Das war aber ein erster Hinweis, der mich dazu brachte, die beiden Projekte A und B etwas näher unter die Lupe zu nehmen.
Prozess-getrieben versus Ereignis-getrieben
Beide Projekte wurden bzw. werden bei dem Kunden agil entwickelt, und zwar nach dem Scaled Agile Framework®, kurz SAFe®. Die Anforderungen werden durch Business Analysten getrennt von den Entwicklungsteams in Form von Features spezifiziert und dann in einzelne User Stories heruntergebrochen. Methodisch gibt es also keine Unterschiede. Anders sieht es bei der technischen Architektur aus und das führte mich auf die erste Spur.
Projekt B kann man mit dem Begriff Prozess-getrieben (neudeutsch Process-driven) belegen. Es wurde mit einer zentralen Workflow Engine umgesetzt, welche Nachrichtenflüsse zwischen verschiedenen IT-Systemen orchestriert. Die Besonderheit dabei: die Spezifikation erfolgte mit Hilfe von BPMN (Business Process Model and Notation). Die von uns als BAs modellierten Prozessmodelle wurden von den Entwicklern nur noch leicht adaptiert und flossen dann als XML direkt in den Source-Code der Software ein. Ergänzungen der Entwickler, welche sich auf das Prozessmodell bezogen, waren für uns als BA direkt in dem technischen Prozessmodell sichtbar, das gleichzeitig als technische Dokumentation diente. Hier gab es also eine sehr große Nähe zwischen fachlicher Spezifikation und technischer Umsetzung (siehe Abbildung 1).