Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Prozesse Test-Driven digitalisieren

Die Digitalisierung aller Prozesse ist ein medial und unternehmerisch zentrales Thema – und wird es auch in Zukunft bleiben. Prozesse digitalisieren klingt nach einem reinen IT-Thema – was es aber im Sinne der Digitalisierung nicht länger sein darf. Je agiler und selbstorganisierter eine Organisation sein will, desto stärker müssen die Fachbereiche in der Lage sein, die Digitalisierung und Automatisierung der eigenen Prozesse beherrschen zu können. Durch diese neue Form der Selbstorganisation ergeben sich Chancen, aber auch Herausforderungen – beispielsweise im Bereich der Qualitätssicherung. Denn es existiert keine zentrale Stelle mehr, die für die Qualität aller Prozesse verantwortlich ist. Die Fachbereiche übernehmen die Verantwortung für die digitalisierten Prozesse und liefern die automatisierten Tests.

  • 18.07.2019
  • Lesezeit: 15 Minuten
  • 83 Views

Digitalisierte Geschäftsprozesse sind für Unternehmen das, was für Flugzeuge der Autopilot ist. Autopiloten sorgen dafür, dass Piloten sich auf anspruchsvolle Aufgaben wie Landungen und Planänderungen konzentrieren können, anstatt permanent korrigierend in den Flug eingreifen zu müssen. Der Autopilot reagiert auf Daten aus unterschiedlichen Quellen und informiert die Piloten über relevante Ereignisse. Genau das wird auch von digitalisierten Geschäftsprozessen erwartet. Die Digitalisierung soll Mitarbeiter von repetitiven Tätigkeiten entlasten, damit sie sich auf anspruchsvolle Tätigkeiten konzentrieren können.

Fachexperten automatisieren ihre Prozesse

Digitalisierung und Prozessautomatisierung sind keine reinen IT-Themen mehr. Das zeigt auch eine Studie zur „Arbeitswelt 4.0“ [IAP17], bei der 75 Prozent der befragten Organisationen angaben, dass Digitalisierung für sie „Automatisierung und Digitalisierung von Arbeitsprozessen“ bedeutet. Daraus folgt die Konsequenz, dass auch die Verantwortung über die Digitalisierung von Arbeitsprozessen immer stärker von den betroffenen Fachbereichen wahrgenommen werden wird. Herbert Kindermann sagt zu dieser Entwicklung in einem Interview treffend: „Selbstorganisiert, dezentralisiert, kollaborativ, agil, kunden- und fachseitengetrieben. Die Fachabteilung kann nur durch disruptive digitale Ansätze, die sie selbst beherrscht, Verantwortung für die Prozessdigitalisierung übernehmen und schnell und kundenorientiert agieren.” [Kin]

Prozesse digitalisieren, muss einfach und intuitiv möglich sein, um nachhaltig umgesetzt zu werden. Eine wichtige Voraussetzung für die fachseitengetriebene Prozessdigitalisierung ist daher, dass sich Prozesse auch ohne Programmierkenntnisse modellieren und bis zu einem gewissen Grad automatisieren lassen. Die Rolle der IT-Abteilungen wandelt sich durch die Digitalisierung hin zum „Digitalisierungs-Enabler“. Die IT sorgt für eine Enterprise-Architektur, in der Services bereitgestellt werden, die direkt in den Prozessen genutzt werden können. Diese Services werden in Form von Prozessbausteinen zur Verfügung gestellt und können dadurch von den Fachbereichen direkt in den grafischen Modellen genutzt werden. Durch diese technischen Bausteine ist eine direkte Interaktion mit verschiedenen Systemen und Applikationen möglich.

Digitalisierung von Prozessen in der Praxis

Wenn wir nach Potenzialen für digitalisierte Prozesse suchen, so finden wir sie in fast allen Bereichen. Egal, ob wir an die Beantwortung von alltäglichen Anfragen denken, ob wir vom „Mitarbeiter tritt ins Unternehmen ein“-Prozess sprechen oder ob wir automatisiert Bestellungen und Rechnungen verarbeiten möchten. Immer dann, wenn wir manuelle Tätigkeiten mehrfach ausführen und dafür viel Zeit aufwenden oder die Aufgabe fehleranfällig ist, besteht die Chance für Automatisierung.

Prozesse übernehmen bei der Digitalisierung die zentrale Aufgabe, manuelle Aktivitäten und automatisierte Services zu orchestrieren. Sowohl die Benutzeraktivitäten als auch die technischen Services können innerhalb oder außerhalb eines Unternehmens laufen. Dadurch können beispielsweise Kunden oder Lieferanten direkt in die Prozesse eingebunden werden und selbst Aufgaben ausführen – beispielsweise Belege anhängen oder eine Freigabe erteilen. Digitalisierte Prozesse verbinden somit Menschen, Tools und Unternehmen.

Zwei Beispiele verdeutlichen, in welcher Form Unternehmen die Prozessautomatisierung einsetzen. Die Bandbreite reicht vom reinen Autopilotmodus ohne Benutzerinteraktion bis hin zur Koordination von rein manuellen Aufgaben.

Beispiel: Prozesse verbinden Tools und Unternehmen

Eine typische Situation: Ein Unternehmen nutzt verschiedene IT-Tools von unterschiedlichen Herstellern. Die Tools sind spezialisiert auf bestimmte Aufgaben und tief in Arbeitsabläufe und Teams integriert. Um jedoch alltägliche Aufgaben erfüllen zu können, pflegen Mitarbeiter manuell Statusinformationen oder Stammdaten in den verschiedenen Tools. Das Wissen darüber, welche Daten in welchen Tools wann geändert werden müssen, haben die Mitarbeiter im Kopf. Dies stellt bei Bearbeiterwechseln oder Vertretungen eine häufige Fehlerquelle dar und führt insgesamt zu Unverständnis und Unzufriedenheit bei Kunden und Mitarbeitern.

Im vorliegenden Kundenprojekt sorgen digitalisierte und automatisierte Prozesse dafür, dass Planungsdaten in den verschiedenen Tools synchron und konsistent sind. Früher wurden die Daten manuell abgeglichen – das ist jetzt nicht mehr notwendig. Die modellierten Prozesse zeigen in einer grafischen Darstellung, wann welche Daten übertragen werden und von wem welche Tätigkeit ausgeführt werden muss. Dadurch werden die technischen Regeln gemeinsam mit den Tätigkeiten sichtbar und können jederzeit flexibel vom Fachbereich eigenständig angepasst werden, ohne dafür aufwendig ein Programm schreiben zu müssen. Durch die direkte Ausführung der Prozesse ergibt sich eine transparente Nachvollziehbarkeit der Aktivitäten, wann welche Daten in welchem System geändert wurden und wie lange die Durchlaufzeit war.

Die Anzahl der verwendeten Tools im Unternehmen wächst stetig. Neuen Tools können direkt integriert werden, indem ein technischer Adapter für das Tool eingespielt wird und die Prozesse angepasst werden. Somit kann sichergestellt werden, dass alle relevanten Daten zur richtigen Zeit in allen Tools synchron sind.

Im Beispiel wird mit mehreren BPMN 2.0-Prozessen der Datenaustausch zwischen Systemen orchestriert (siehe Abbildung 1). Die Prozesse laufen im Autopilotmodus im Hintergrund. Durch die Plattform Cockpit365 werden Datenänderungen in den verschiedenen Tools identifiziert und an die Prozesse übergeben. Im Prozess wird entschieden, ob die Datenänderung relevant ist und ob diese zu Aktionen in anderen Tools führen soll.

Abb. 1: Prozess zur Synchronisation der Tools in zwei Unternehmen in Cockpit365

Der Einsatz der modellierten Prozesse für die Synchronisation ermöglicht es erstmals, dass alle Beteiligten sehen, welche Aktionen unter welchen Bedingungen ausgeführt werden. Dies fördert das Verständnis und erhöht die Akzeptanz. Die Prozesse agieren transparent im Hintergrund, solange alle Aktionen erwartungsgemäß laufen. Manuell eingreifen muss der Mitarbeiter nur, wenn unvorhergesehene Situationen eintreten oder wenn im Prozess eine manuelle Aktivität (z. B. Freigabe) vorgesehen ist.

Beispiel: Prozess ergänzt ERP-Funktionalitäten

In einem anderen Kundenszenario orchestrieren digitalisierte Prozesse zahlreiche manuelle Aufgaben eines komplexen Artikelanlageprozesses in einem Industrieunternehmen (siehe Abbildung 2). Die Prozesse wurden eingeführt, weil in den verwendeten Systemen eine entsprechende Unterstützung fehlt und auch nicht umgesetzt werden soll.

Abb. 2: Prozess zur Koordination eines Artikelanlageprozesses in Cockpit365

Durch den digitalisierten Prozess werden die Schritte zur Artikelanlage koordiniert, anstatt Formulare und Excel-Dokumente per E-Mail zu versenden. Am Prozess sind unterschiedliche Rollen beteiligt, darunter Produktmanager, Einkäufer, Controller und Stammdatenverantwortliche. Direkt im Prozess ist hinterlegt, welche Rolle welche Aufgabe ausführen muss. Während der Prozess läuft, werden die einzelnen Aufgaben dann gemäß dem Organigramm den richtigen Personen zugewiesen. Somit ist der Prozess unabhängig von der konkreten Aufbauorganisation und kann an jedem anderen Standort auch eingesetzt werden.

Im vorliegenden Szenario werden die Aufgaben über die Weboberfläche sowie die Mobile App ausgeführt. Durch diese Art der prozessgesteuerten Aufgabenabwicklung konnte die Durchlaufzeit von komplexen Artikelanlagen stark reduziert werden. Beispielsweise kann der Produktmanager durch den digitalisierten Prozess nun ortsunabhängig die Freigabe erteilen, und der Prozess läuft ohne Verzögerung weiter.

Testgetrieben Prozesse automatisieren

Die Digitalisierung von Prozessen ist ein langfristiges Thema, das Unternehmen fortan begleiten wird. Prozesse werden sich mit Unternehmen verändern und mitwachsen. Sie werden System- und Toolwechsel überdauern. Deshalb ist es wichtig, beim Thema Digitalisierung konsequent auf Standards zu setzen. Im Bereich der Prozessdigitalisierung hat sich der Standard BPMN 2.0 etabliert. Unternehmen, die auf diesen Standard setzen, haben die Möglichkeit, einmal definierte Prozesse auch auf Tools anderer Hersteller zu übertragen und die Prozesse dort zu nutzen, sofern diese BPMN 2.0 unterstützen.

Prozesse digitalisieren und automatisieren erfolgt in vielen Schritten. Das Ziel des ersten Schrittes ist es, sich mit der Digitalisierung vertraut zu machen und eine erste Version der Prozesse zu entwerfen. Mit modernen Plattformen wie Cockpit365 lassen sich die grafisch modellierten Prozesse ohne Aufwand direkt ausführen und per Browser oder Mobile App nutzen. Erst im zweiten Schritt werden manuelle Aufgaben durch Services ergänzt und dadurch automatisiert. Das ermöglicht kürzere Durchlaufzeiten und verringert die Anzahl manueller Interaktionen.

Das schrittweise Vorgehen hin zum digitalisierten Unternehmen birgt bei allen Potenzialen auch Gefahren. Prozessveränderungen sind sehr einfach und schnell möglich. Aber jede vermeintliche Verbesserung kann das gesamte Prozesskonstrukt verändern – und damit in Gefahr bringen. Da sich die Verantwortung von der IT hin zu den Fachbereichen verlagert, existiert keine zentrale Stelle mehr, die für die Qualität aller Prozesse verantwortlich ist. Das erfordert zwingend entsprechende Maßnahmen zur automatisierten Qualitätssicherung.

In den vergangenen Jahren gewannen iterativ-inkrementelle Vorgehensmodelle wie Scrum oder Kanban stark an Popularität.

Diese agilen Methoden ermöglichen es, in kurzen Iterationen funktionierende Software zu liefern. Im Zentrum steht dabei die automatisierte Qualitätssicherung. Sie gewährleistet, dass die gesamte Applikation auch nach einer Erweiterung noch zuverlässig funktioniert.

Digitalisierte Prozesse lassen sich mit Software vergleichen. Beispielsweise ist ein BPMN 2.0-Prozessmodell eine Art von Code, der ausgeführt wird. Aktivitäten werden ausgeführt, Services aufgerufen, Variablen deklariert usw. Das Prozessmodell wird sich mit der Zeit verändern und immer stärker mit anderen Prozessen und Services interagieren. Jede Änderung an einem Prozess entspräche in der Softwareentwicklung einem Release, das in Produktion geht.

In der Softwareentwicklung ist es Stateof-the-Art, dass alle kleinen Änderungen automatisiert getestet werden, bevor sie integriert und ausgeliefert werden. Dies muss auch für digitalisierte Prozesse gelten. Da fachlich orientierte Prozesse nicht zwingend von Softwareentwicklern umgesetzt und automatisiert werden, benötigen wir ein Vorgehen, das es auch „Nicht-Entwicklern“ ermöglicht, Prozesse automatisiert zu testen.

Kent Beck hat das Konzept des „Test-Driven Development (TDD)“ [Beck03] beschrieben, das sich sehr gut in die Prozesswelt übertragen lässt. TDD besagt, dass man niemals eine Änderung an einem Stück Code vornehmen darf, solange man nicht einen Test hat, der fehlschlägt. Anders formuliert bedeutet dies, dass wir erst mit der Anpassung eines Prozesses beginnen dürfen, wenn wir einen Prozesstest haben, der fehlgeschlagen ist. Jede Variante des Prozessdurchlaufs ist somit in einem oder in mehreren Tests abgebildet.

Für den Aufbau von automatisierten Prozesstests, die ohne Programmierung auskommen, nutzen wir Behaviour-Driven Development (BDD) mit [Cucumber]. Durch den BDD-Ansatz können Testfälle in natürlicher Sprache beschrieben und direkt ausgeführt werden. Die automatisierten Tests entstehen parallel zu den Prozessen. Die Prozesse werden grafisch mit BPMN 2.0 abgebildet, die automatisierten Tests in Form von sogenannten Feature Files. In jedem Feature File lassen sich mehrere Testdurchläufe in Form von Szenarien beschreiben. Mit jedem zusätzlichen Szenario wird eine weitere Variante des Prozessdurchlaufs abgedeckt und dadurch automatisch getestet.

Testautomatisierung muss intuitiv funktionieren, um genutzt zu werden. Für viele Mitarbeiter in den Fachbereichen wäre ein Versionskontrollsystem oder eine Entwicklungsumgebung wie Eclipse eine Hürde – und würde abgelehnt werden. Daher sind wir dazu übergegangen, die Anforderungen an die Prozesse sowie alle Testfälle in Atlassian Jira zu verwalten. Das Xray-Plug-in [Xray] stellt die notwendige Funktionalität zur Erfassung, Verwaltung und Ausführung von BDD-Tests zur Verfügung. Mitarbeiter erfassen so die umzusetzenden Storys und ordnen diese direkt den Testfällen zu, wodurch sie automatisch eine Traceability von der Anforderung bis zu den Testergebnissen erhalten, wie Abbildung 3 zeigt.

Abb. 3: Prozessanforderung und Testabdeckung in Atlassian Jira

Ein Prozesstest setzt sich aus einer Reihe von Schritten zusammen, die dann später automatisiert ausgeführt werden. Die verfügbaren Schritte werden im Editor direkt zur Verfügung gestellt (Abbildung 4). Die Mitarbeiter wählen die jeweils passenden Schritte aus und müssen diese nur noch durch entsprechende Parameter ergänzen. Dadurch können automatisierte Tests ohne Programmierkenntnisse aufgebaut werden.

Abb. 4: BDD Step Editor des Xray­-Plug-­ins in Atlassian Jira

Die erstellten BDD-Tests werden dann direkt von einem CI-Environment heruntergeladen und ausgeführt. Die Testergebnisse werden nach Abschluss des Testdurchlaufs automatisch hochgeladen und den Tests zugewiesen. Direkt bei den Prozessanforderungen wird dann sichtbar, ob nach wie vor alle Varianten erfolgreich ausgeführt werden können, wie in Abbildung 3 gezeigt wird. Der Ablauf ist vollständig automatisiert, sodass die Prozesstests ohne manuelle Interaktion ausgeführt werden können.

Aus technischer Sicht durchläuft ein Interpreter der Reihe nach die Zeilen des Szenarios (siehe Abbildung 5). Er sucht dabei zu jeder Textzeile im Szenario die im Quellcode hinterlegte Methode und führt diese aus, wie Abbildung 6 zu entnehmen ist. Jede Textzeile führt also zu einem Codeaufruf, der beispielsweise über ein API mit dem Prozess interagiert, eine Toolaktion ausführt oder auch über einen Webbrowser oder die Mobile App mit dem Prozess interagiert.

Abb. 5: Cucumber BDD Test in Atlassian Jira und dem Xray-Plug-in

Abb. 6: Java-Code für BDD Steps in Eclipse - ausgeführt durch Cucumber

Automatisierte BDD-Prozesstests benötigen eine Bibliothek sogenannter Steps, um die verschiedenen Varianten der Systeminteraktion oder der Benutzertätigkeiten zu testen. Die Steps können direkt im Testeditor eingefügt werden, wie in Abbildung 4 zu sehen ist. Wichtige Steps sind beispielsweise:

  • Prozess starten,
  • Benutzeraktivität übernehmen,
  • Benutzerformular prüfen,
  • Formulardaten absenden,
  • den aktuellen Status des Prozesses abfragen und
  • Daten des Prozesses prüfen.

Durch die verschiedenen Steps lassen sich auch komplexe Interaktionen zwischen Prozessen und Menschen automatisiert testen. Digitalisierte Prozesse interagieren jedoch häufig über Services mit Tools, wie in Abbildung 1 zu sehen ist. Daher müssen auch die umgebenden Services in die automatisierten Tests einbezogen werden können. Dies lässt sich auf zwei Arten erreichen: Entweder indem die Services simuliert werden oder indem die Services mit realen Applikationen interagieren und diese fernsteuern. In der Praxis zeigt sich, dass die Simulation von Services meistens weniger gut geeignet ist, da es für Fachbereiche kaum möglich ist, Varianten während der Entwicklung des Prozesses zu testen. Eine Anforderung an die Digitalisierungsplattform ist daher, dass sie direkt mit den umgebenden Tools interagieren und diese fernsteuern kann. Dies verbessert die Aussagekraft der Testergebnisse stark.

Eine Fernsteuerung von Tools ist deshalb sinnvoll, da Prozesse beispielsweise durch Datenänderung in den Tools ausgelöst oder fortgesetzt werden. Dadurch müssen Daten in angebundenen Tools verändert werden, um den Test indirekt weiterlaufen zu lassen. Ein einfaches Beispiel dafür: Der Prozess wartet darauf, dass eine E-Mail-Bestätigung von einem Kunden eintrifft. Nach dem Empfang der Nachricht wird der Prozess automatisiert fortgesetzt. Im automatisierten Test kann nun entweder das Eintreffen der E-Mail-Nachricht simuliert werden (z. B. Sende Event „E-Mail empfangen“ an Prozess) oder es wird eine E-Mail an ein Postfach gesendet, das tatsächlich abgefragt wird und zu einem Event führt, das an den Prozess gesendet wird.

Fazit: DevOps für Prozessautomatisierung

Eine langfristig erfolgreiche Digitalisierung durch den Fachbereich erfordert professionelle Qualitätssicherung. Digitalisierte Prozesse müssen vor der Produktivsetzung automatisiert in mehreren Stufen geprüft werden, bis sie in Produktion gehen dürfen.

In der Praxis werden für das Prozessdeployment mehrere Systeme genutzt:

  • Test,
  • Stage und
  • Produktion.

Auf einer dedizierten Entwicklungsinstanz werden die Prozesse entwickelt und getestet. Im Idealfall interagieren diese Prozessemit Testsystemen der angebundenen Tools. Sobald die automatisierten Tests auf der Entwicklungsinstanz erfolgreich durchlaufen, können die Prozesse an eine weitere Umgebung übergeben werden – Stage. Auch dort werden die Tests ausgeführt, jedoch gemeinsam mit allen anderen Prozessen der anderen Fachbereiche. Erst wenn diese Tests erfolgreich sind, kann das Deployment in die Produktivumgebung erfolgen.

Auf jeder Stufe des Deploymentprozesses werden dieselben Tests ausgeführt. Nur so lässt sich sicherstellen, dass Änderungen an Prozessen zuverlässig funktionieren. Durch das automatisierte Deployment und die automatisierten Tests wird sichergestellt, dass auf jeder Ebene (Stage) die gleichen Prozesse mit den gleichen Parametern eingespielt sind und mit den Tests getestet wurden. Eine manuelle Prüfung ist immer empfehlenswert, denn es lässt sich nicht alles automatisieren. Am Ende steht die nachhaltige Digitalisierung mit modellierten Prozessen, getrieben durch die Fachbereiche in den Unternehmen. Oder anders ausgedrückt: Der Autopilot für Unternehmen wird Realität. Willkommen an Bord.

Referenzen

[Beck03]
K. Beck, Test-Driven Develoment by Example, Addison-Wesley, 2003

[Cockpit365]
https://www.cockpit365.com

[Cucumber]
https://cucumber.io/

[IAP17]
IAP Studie 2017, Der Mensch in der Arbeitswelt 4.0, Institut für Angewandte Psychologie, ZHAW, siehe:
https://www.zhaw.ch/storage/psychologie/upload/iap/studie/IAP_STUDIE_2017_final.pdf

[Kin]
Interview mit H. Kindermann: Digitalisierung, Agilität oder „Irgendwas mit 4.0“, siehe:
https://www.metasonic.de/aktuelles/interview-digitalisierung/

[Xray]
Verwaltung der BDD-Testfälle mit Atlassian Jira, siehe:

. . .

Author Image
Zu Inhalten
ist Gründer und Geschäftsführer der österreichischen ProMind GmbH. Der passionierte Prozess- und Softwarearchitekt unterstützt Unternehmen als Coach beim Aufbau und der Führung von großen agilen Projekten. Seit mehr als 20 Jahren beschäftigt er sich mit der Frage, wie Unternehmen durch Prozesse und IT stärker profitieren können. Seine Erfahrungen gibt er als Vortragender auf Konferenzen sowie als Lehrbeauftragter an mehreren Hochschulen weiter.

Artikel teilen