3 Syntaktische Checks

3.1 Hat der Prozess einen Start und ein Ende?

Jeder Prozess benötigt ein Startereignis. Ohne ein solches Ereignis kann der Prozess niemals starten.

Genauso benötigt jeder Prozess auch mindestens ein Endereignis.

  • Ist ein Startereignis vorhanden?
  • Ist mindestens ein Endereignis vorhanden?

3.2 Funktioniert der Flow im Prozess?

Manchmal sieht man einzelne Tasks in Prozessen, durch die der Prozess nicht weiter laufen kann (Deadlock). Diese müssen korrigiert und verbunden werden.

  • Sind alle Elemente verbunden und keines ist verwaist?
  • Kommt ein Token zu diesem Task?
  • Kommt ein Token auf irgendeinem Weg vom Start zu diesem Task?
  • Kann ein Token von diesem Task im Prozess weiterlaufen?
  • Kommt ein Token von diesem Task zu einem Endereignis?
  • Bleiben Tokens im Prozess hängen, laufen sie im Kreis (Livelock)?
  • Ist ein Default-Sequenzfluss markiert? Der Default muss übrigens nicht der häufigste Pfad sein. Z.B. können gemeldete Probleme in einem Incidentprozess überwiegend Wünsche nach neuen Features sein.

3.3 Komplizierte Gateways vermeiden

Die BPMN enthält auch Gateways, die nur im absoluten Ausnahmefall eingesetzt werden sollten.

  • Ist das datenbasierte inklusive Gateway im Prozess? Lässt es sich durch eine andere Modellierung vermeiden?
  • Ist das komplexe Gateway im Prozess? Lässt es sich durch eine andere Modellierung vermeiden?

3.4 Sind alle Elemente beschriftet?

Alle Elemente im Prozess müssen beschriftet sein.

  • Hat jedes Ereignis einen sinnvollen Namen, der nicht zu generisch aber auch nicht zu speziell ist?
  • Hat jeder Task eine Beschriftung mit einem Verb und einem Nomen, was in ihm geschieht?
  • Sind alle Events mit Namen versehen?
  • Sind alle Gateways mit geeigneten Fragen beschriftet? Außer parallele Gateways, die sollten ohne Beschriftung sein.
  • Sind die Ausgänge der Gateways beschriftet?
  • Sind Rollen in Pools und Participants benannt?
  • Sind alle Datenspeicher beschriftet und Informationsobjekte auch?

3.5 Typisierte Tasks

Tasks können eine Vielzahl von Arten (Typen) haben. Ganz ohne Markierung handelt es sich um generische Tasks. Darüber hinaus gibt es unter anderem manuelle Tasks, User Tasks oder Service Tasks.

  • Sind alle Tasks typisiert?
  • Sind alle Tätigkeiten von Hand oder außerhalb von interaktiven Systemen als manuell typisiert?
  • Sind alle Tätigkeiten mit einem Workflowsystem als User Tasks typisiert?
  • Sind alle Aktionen des Systems als Service Tasks typisiert?
  • Werden alle Nachrichten an andere Participants aus Message Tasks oder aus Message Events (Zwischen- oder Endereignisse) versandt?
  • Werden automatische Tasks korrekt eingesetzt, z.B. zur Generierung von E-Mails (keine Message Tasks an Participants), zur Berechnung von Ergebnissen oder ähnlichem?

3.6 Daten, Datenobjekte und Datenspeicherung

Daten werden über einen Datastore über die Prozessgrenze hinaus gespeichert. Datenobjekte existieren nur innerhalb einer Prozessinstanz und lösen sich mit Erreichen eines Endereignisses auf.

  • Sind Datastores als Datenspeicher (Ablage, Datenbank, Dateisystem, (e-)Akte) in Verwendung? Oder wurden sie fälschlich zur Beschreibung von Anwendungen eingesetzt?
  • Sind Daten aus Datenobjekten für Prozesse im Anschluss des aktuellen Prozesses notwendig? Wie werden sie langfristig gespeichert?
  • Sind Datastores für angebundene Anwendungen eingesetzt, aus denen Daten gelesen werden müssen? Oder in die Daten geschrieben werden müssen?
  • Sind Medienbrüche sichtbar gemacht, falls mehrere Anwendungen und/oder Papier häufig einen Wechsel im Prozess erzwingt?
  • Wurde zusätzlich dokumentiert, welche Daten gelesen/geschrieben werden? Sind diese in einem Datenschutzkonzept berücksichtigt?

3.7 Rollen und Prozesse

An einem Prozess sind fast immer mehrere Rollen beteiligt, die Aufgaben nacheinander bearbeiten. Müssen mehrere Beteiligte orchestriert werden handelt es sich um Participants.

  • Sind alle Rollen einheitlich über alle Prozesse bezeichnet?
  • Sind alle Lanes mit Rollen beschriftet?