[SL] Eine gemeinsame Sprache für IT und Business

Eines der frühen Großprojekte der Menscheit scheiterte an Kommunikationsproblemen: Das überhebliche Vorhaben “Turmbau zu Babel” provozierte Gott, woraufhin er die babylonische Sprachverwirrung auslöste. Die Menschen mussten dann wegen unüberwindbarer Verständigungsschwierigkeiten das Projekt aufgeben.

Apropos Fachbereich und IT reden aneinander vorbei: Ich möchte Ihnen eine Technik vorstellen, die hilft, eine gemeinsame Sprache zu entwickeln.

Über konkrete Beispiele zu reden fällt uns oft leichter, als mit abstrakten Spezifikationen zu hantieren. Hier ist ein Szenario, das Rabattaktionen beschreibt (aus Punkt 10 in unserem Flow Check):


Szenario: Rabattaktionen lassen sich nicht kombinieren,
    es wird aber automatisch der günstigste Rabatt übernommen
    
Angenommen, es gibt eine Rabattaktion für 10% mit dem Gutscheincode "springsale"
Und ich bin ein Neukunde, der 10C Rabatt für die Erstbestellung bekommt
Wenn ich für 50 Euro einkaufe
Dann bekomme ich nur den Neukundenrabatt
Und ich bezahle 40 Euro

Das ist in der Sprache des Business geschrieben, so dass sich beide Seiten gut darüber verständigen können. Andererseits folgen diese Beispiele einer vorgegebenen Struktur (Gherkin), die ihre Ausführung als automatisierte Akzeptanz-Tests möglich macht.

Erfahrene Software-Entwickler haben oft ein gutes Gespür für Ausnahmefälle, es ist also sehr hilfreich, sie von Anfang an bei der Zusammenstellung von Beispielen einzubeziehen. Ein Entwickler wird beim obigen Szenario vielleicht stutzig: Was ist, wenn der Neukunde für weniger als 10 Euro bestellt? Bekommt er dann einen negativen Betrag (Gutschrift)? Zahlt er 0 Euro? Oder nehmen wir die Bestellung garnicht erst an?

Für den Fachbereich mag die Antwort so selbstverständlich sein, dass man gar nicht daran gedacht hätte, sie in irgendeine Spezifikation hineinzuschreiben. Das Szenario wird diskutiert, das Ergebnis wird zu einem weiteren Beispiel:


Szenario: Für Neukunden gilt ein Mindestbestellwert von 20 Euro

Angenommen, ich bin ein Neukunde, der 10C Rabatt für die Erstbestellung bekommt.
Wenn ich für 19 Euro einkaufe
Dann bekomme ich den Hinweis "Mindestbestellwert 20 Euro"
Und ich kann die Bestellung nicht abschließen

Es ist wesentlich leichter, vom Fachbereich Antworten zu konkreten Beispielen zu bekommen, als ein allgemeingültiges in sich widerspruchsfreies Regelwerk zu verlangen. Eine Handvoll Beispiele scheint auf den ersten Blick nicht so gut zu sein wie eine “richtige” Spezifikation, aber wenn eine kritische Masse an Beispielen vorhanden ist, wird damit auch die Implementation hinreichend genau festgelegt. Da die Beispiele als automatisierte Akzeptanz-Tests laufend überprüft werden können, bleiben sie über die gesamte Projektlaufzeit wertvoll als Regressionstests.

Sie sollten diese Tests auch als Kommunikationsmittel sehen. Denn wenn wir eine Reihe solcher Beispiele entwickeln, stehen die Chancen gut, dass Worte wie Neukundenrabatt, Mindestbestellwert und Rabattaktion sich auch im Code wiederfinden werden. Damit bildet sich eine gemeinsame Sprache heraus (“Ubiquitous Language” im Domain-Driven Design), die von den abstraktesten Anforderungen bis in’s kleinste Details des Codes verwendet wird. Alle Projektbeteiligten benutzen und beherrschen das Vokabular: Analysten, Tester, Entwickler, und Vertreter der Fachbereiche.

Und der HERR sprach: Siehe, ein Volk sind sie und eine Sprache haben sie alle. Und das ist erst der Anfang ihres Tuns. Jetzt wird ihnen nichts mehr unerreichbar sein, wenn sie es sich zu tun vornehmen. (1. Mose 11)

Matthias Berth

Alle Emails