Das klingt cool, was Sandy Kemsley kürzlich in ihrem Blog schrieb: Ravencloud verwandelt Beschreibungen von Prozessmodellen in natürlicher Sprache in grafische Prozessmodelle. Das musste ich natürlich selbst ausprobieren. Wie der Name schon vermuten lässt, handelt es sich um einen Cloud-Service. Man muss nur auf die Homepage gehen, „Try it now“ anklicken, die Beschreibung eines Prozesses (in Englisch) eingeben – und schon kann man sich das zugehörige Prozessdiagramm anzeigen lassen. Wer seinen Prozess speichern will, muss sich einen Account anlegen, der in der einfachsten Ausführung kostenlos ist.
Nach einigem Probieren gelang es mir dann, einen Prozess so zu beschreiben, dass er ganz ordentlich umgesetzt wurde. Hier ist die Beschreibung als Text:
Start process. The business department reports a job opening and hands it over to human resources. Human resources writes a job posting and hands it over to the business department.
Review. The business department reviews the job posting.
If the business department approves the job posting, the business department hands the job posting to human resources. Human resources publishes the job posting. End process.
Otherwise, human resources reworks the job posting. Return to Review.
Und das hat Ravencloud daraus gemacht (Zum Vergrößern anklicken):
Das sieht, wie ich finde, gar nicht schlecht aus. Die Darstellung ist an BPMN angelehnt, auch wenn der Standard nicht ganz eingehalten ist. Eine Kleinigkeit musste noch von Hand korrigiert werden: Im erzeugten Diagramm waren zunächst die Kanten von und zur Aktivität „Reworks Job Posting“ übereinander gelegen, so dass man den Sequenzfluss an dieser Stelle nicht erkennen konnte. Hierzu kann man die Andockpunkte der Kanten an den Aktivitäten verschieben. Ansonsten gibt es kaum Möglichkeiten, das erzeugte Diagramm nachträglich weiter zu bearbeiten. Das würde auch nicht viel bringen, denn ganz offensichtlich wird nicht das Diagramm gespeichert, sondern nur der zugrunde liegende Text. Nach dem Laden wird das grafische Modell dann jedesmal neu erzeugt. Im vorliegenden Fall muss man die Kanten also jedesmal aufs Neue so verschieben, dass sie richtig sichtbar sind.
Bevor es soweit ist, dass der eingegebene Text in ein sinnvolles Modell umgewandelt wird, muss man sich genau damit beschäftigen, wie bestimmte Sachverhalte zu formulieren sind. Hierzu gibt es eine Reihe von Videotutorials und Beispielprozesse. Schnell zeigt sich, dass die Umsetzung des Textes sehr großen Einschränkungen unterliegt. Wie das Beispiel zeigt, sind die Bezeichnungen der Aktivitäten alle in der dritten Person, was eher unüblich ist, aber im Text natürlich so steht. Jeder Übergang zu einer anderen Lane ist zwangsläufig mit der ausmodellierten Übergabe eines Objektes verbunden, was manche Modelle unnötig aufbläht.
Aufpassen muss man auch bei der Formulierung einer Entscheidung: Sie muss immer im Aktiv formuliert sein und mit yes oder no beantwortet werden können, wie z. B. „Approves Job Posting“. Eine Beschriftung des Gateways mit „Job Posting approved?“ wäre nicht möglich, da Ravencloud alle Subjekte gnadenlos in Lanes umsetzt, und eine Lane „Job Posting“ hier kaum geeignet wäre. Neben diesen Besonderheiten gibt es noch eine Reihe weiterer Einschränkungen, die die Anwendbarkeit erschweren.
Die Idee von Ravencloud hört sich zunächst toll an, praktisch einsetzen kann man die natürlichsprachige Modellierung noch nicht. Die Frage ist, ob der gewählte Ansatz überhaupt tragfähig ist. Die Umsetzung eines Textes scheint im Wesentlichen auf einer Analyse der Grammatik zu basieren. Damit das funktioniert, muss man sehr strenge Regeln einhalten. Dies hat zur Konsequenz, dass man letztlich das gewünschte Modell mit Hilfe der vorgegebenen Formulierungsregeln beschreibt. Eigentlich wäre es dann aber einfacher, gleich die Modellstruktur mit einer geeigneten (einfachen) Syntax zu beschreiben. Dann muss man nicht erst die Rückübersetzung in natürliche Sprache vornehmen, sondern könnte direkt schreiben „Aktivität X wird gefolgt von Gateway Y“, oder so ähnlich. Denn mit einem haben die Macher von Ravencloud recht: Das Heruntertippen einer Texteingabe geht wesentlich schneller als das grafische Modellieren.
Ein ganz anderer Ansatz wäre die inhaltliche Analyse eines natürlichsprachigen Textes mit Hilfe semantischer Technologien, um daraus eine mögliche Prozessstruktur abzuleiten. Damit könnte man beispielsweise vorhandene Organisationshandbücher oder Arbeitsanweisungen auswerten und den Modellierern eine Unterstützung bieten.
Naja. Also wenn ich höre dass manche Leute es schwierig finden BPMN zu lernen, um Prozesse zu modellieren, bin ich mir ziemlich sicher, dass diese Leute es noch viel schwieriger finden, solche Texte zu formulieren…
Es ist definitiv ein spannender Anfang. Aber hier zeigt sich auch, was unsere Gehirne über die Jahre an Leistungen erbringen. Und bis das ein Computer inklusive Programm, das sich entsprechend seiner neuen Erfahrungen weiterbringt, schafft, wird es hoffentlich noch viele Jahre brauchen. Andernfalls werden wir immer überflüssiger. Das kann natürlich auch schön sein, wenn die Arbeit die Roboter erledigen und wir uns nur noch den schönen Dingen des Lebens widmen dürfen. Wenn uns dann die Roboter lassen …
Ich finde die Idee ist ein guter Anfang. Jedoch ist eher die Frage wie das mit BPMN richtig funktionieren soll. Schließlich hat der Standard selbst noch offene Lücken. Ich denke, da ist es einfacher die Notation und Workarounds/Best Practice für Modellierungen zu erlernen. Als im Gegenteil dazu spezielle Formulierungen zu verwenden, bei denen man eingeschränkt ist. Letztendlich muss dann genauso viel Arbeit in eine gute Dokumentation gesteckt werden.
Anders herum wäre es doch noch viel besser. Aus der grafischen Modellierung wird die fachliche Beschreibung abgeleitet werden (für diejenigen, die mit grafischen Abläufen Schwierigkeiten haben). Über eine Komplexitätsauswahl können so Dokumentationen vom „Management Summary“ bis zur „Arbeitsanweisung“ generiert werden.
Ja, zumal es anders herum auch leichter geht. Die meisten Modellierungstools bieten ja die Möglichkeit, die Modellelemente mit beschreibenden Texten zu versehen und dann Reports daraus zu erzeugen. Allerdings sind diese dann recht schematisch aufgebaut. Wenn man es richtig macht, kann man sicher eine gut aufgebaute tabellarische Arbeitsanweisung erzeugen. Eine knackige Management Summary ist aber nicht so einfach automatisiert zu erstellen.