Application Kata: Dropbox Workflows
Die Zusammenarbeit im Büro ist oft ad hoc. Das macht hohe Produktivität im Büro so herausfordernd. Immer wieder gibt es aber auch Gelegenheit, Zusammenarbeit zu systematisieren. Ein Mittel dafür sind Workflows (oder Protokolle, Routinen).

Workflows legen fest, welche Arbeitsschritte zu durchlaufen sind, um auf ein Ereignis zu reagieren.

Beispiele für Ereignisse: eine Rechnung trifft ein und muss vor Begleichung geprüft werden, ein Urlaubsantrag wird eingereicht und muss genehmigt werden, eine Bestellung wird aufgegeben und muss bearbeitet werden.

Als Ereignisse werden Nachrichten oder Dokumente in Form von Dateien angenommen.

Workflows definieren, wie diese Ereignisse in immer gleicher Weise behandelt werden. Sie sind codierte Praxis. Mit Workflows wird es leichter, neue Mitarbeiter einzuarbeiten, da die zu durchlaufenden Tätigkeiten nicht mehr nur in irgendwelchen Köpfen, sondern explizit festgehalten sind. Mit einer Workflow-Anwendung bringen sich dann die notwendigen Arbeitsschritte bei den relevanten Mitarbeitern selbst in Erinnerung.

Szenario “Rechnungsprüfung”

Eine Rechnung trifft ein und wird in ein spezielles Verzeichnis gescannt. Dieses Ereignis stößt den Workflow “Rechnungsprüfung” an.

Bei den relevanten Mitarbeitern - Buchhaltung, Einkäufer, Geschäftsführer - läuft die Workflow-Software. Sobald die Rechnung im Eingangsverzeichnis des Workflows ankommt, wird dafür ein Auftrag generiert; der lautet “gemeinschaftlich Rechnung prüfen”.

  • Zuerst wird die Buchhaltung benachrichtigt, um die Rechnung formal zu prüfen. Sind alle steuerlich nötigen Angaben vorhanden? Wenn ja, fließt der Auftrag weiter zum Einkäufer, falls sie unterhalb eines Grenzbetrags (z.B. 5000€) liegt. Andernfalls fließt sie sofort zum Einkaufsleiter. 
  • Einkäufer bzw. Einkaufsleiter genehmigen die Rechnung oder lehnen sie ab oder fühlen sich unerwartet überfordert. 
  • Bei Überforderung eskalieren sie die Prüfung und der Geschäftsführer hat das letzte Wort. Er lehnt ab oder genehmigt. 
  • Der Auftrag fließt zurück zur Buchhaltung, die nun entweder die Rechnung begleicht oder anders mit ihr verfährt.

Die Zusammenarbeit der Rollen wird durch die Workflow-Anwendung automatisiert. Niemand muss das Ganze im Blick behalten. Jeder schaut nur auf seinen Workflow-Client: in dem tauchen Aufträge zur Bearbeitung auf, wenn sie bei einem Arbeitsschritt ankommen, für den eine Rolle zuständig ist.

So wird die Abarbeitung von Aufträgen verlässlich gemacht. Selbst wenn ein Mitarbeiter seinen Arbeitsschritt nicht ausführt, geht das der Workflow-Anwendung nicht durch die Lappen. Jeder Auftrag ist mit einer Deadline je Arbeitsschritt versehen. Wird die nicht eingehalten, wird er automatisch eskaliert.

Die Welt der Workflows

Zu Workflows gehören:

  • Startereignis: Ein Workflow beginnt, wenn ein Ereignis eintritt. Hier ist das der Empfang einer Datei in einem Verzeichnis.
  • Auftrag: Die Datei des Startereignisses wird in einen Auftrag verpackt. Dieser Auftrag wird gemäß der im Workflow verbundenen Arbeitsschritte abgearbeitet.
  • Arbeitsschritt: Jeder Arbeitsschritt (oder auch Station) steht für eine Aufgabe, die mit dem Auftrag zu erledigen ist. Arbeitsschritte werden mit einem Ergebnis abgeschlossen. Welcher Arbeitsschritt auf den aktuellen folgt, hängt vom Ergebnis ab.

Die Elemente eines Workflows in action:
Jeder Mitarbeiter beobachtet nur “seine” Arbeitsschritte, der Einkäufer “Einkäufer.Rechnung prüfen”, die Buchhaltung “Buchhaltung.Rechnung validieren” und “Buchhaltung.Rechnung reklamieren” und “Buchhaltung.Rechnung bezahlen” usw.

In jedem Arbeitsschritt kann der zuständige Mitarbeiter Auftragsdaten erfassen (z.B. den Rechnungsbetrag). Zumindest wird aber ein Arbeitsergebnis zugewiesen, aufgrund dessen der Auftrag zum einen oder anderen nächsten Arbeitsschritt weiterfließt (z.B. “genehmigt” oder “<5000€”).

Aufträge führen ein Logbuch über die Stationen durch die sie fließen mit sich. In diesem Logbuch können Bearbeiter auch Notizen ablegen.

Arbeitsschritte werden vor allem manuell durchgeführt (Kästen mit abgerundeten Ecken im obigen Bild). Das verlässlich zu organisieren, ist der Hauptzweck einer Workflow-Anwendung.

Darüber hinaus ist es aber auch möglich, einen Arbeitsschritt durch ein Programm (Workflow-Bot) abarbeiten zu lassen (Kasten mit spitzen Ecken im obigen Bild). Die Kommunikation mit einem Bot findet über die Kommandozeile statt. Er kann auf die Workflow-Definition lesend und den in Frage stehenden Auftrag sowie zugehörige Dokumente lesend und schreibend zugreifen.

Workflow-Elemente

Jede Workflow-Definition enthält…

  • Titel (z.B. “Rechnungsprüfung”)
  • Arbeitsschritt*
  • Titel (z.B. “Buchhaltung.Rechnung validieren”)
  • mögliches Ergebnis* (z.B. “genehmigt”, “<5000€”)
  • zu erfassende Eigenschaft* (z.B. “Rechnungsnummer”)
  • max. Bearbeitungsdauer (z.B. “2 Stunden” oder “3 Tage”)