In the Code: RPA – brauchbar oder nur ein neues Schlagwort?

Was ist RPA und was ist es nicht? Ein Gastbeitrag von Oliver Gramberg von Erni.
 
Robotic Process Automation (RPA) ist die Automatisierung von IT-basierten Prozessen, die bisher von einem menschlichen Benutzer durchgeführt wurden. Die Automatisierung simuliert softwaremässig die Nutzeraktionen in der tatsächlichen UI der automatisierten Systeme, daher die Bezeichnung "robotisch".

RPA ist also nicht Anlagenautomatisierung, es geht nicht um Fertigungslinien und Industrieroboter. RPA ist auch nicht "klassische" Systemintegration: Diese hat zwar die gleichen Ziele und erzielt die gleichen Resultate wie RPA, verwendet allerdings APIs oder Datenschnittstellen wie Enterprise-Service-Busse zum Zugriff auf die zu automatisierenden Systeme.

RPA ist nicht Testautomatisierung, aber der Testautomatisierung auf UI-Ebene sehr ähnlich. Sie teilen sich die technischen Grundlagen für die Automatisierung, und RPA kann daher sinnvoll auch mit vorhandenen Testautomatisierungs-Werkzeugen implementiert werden. Ein für RPA automatisierter Prozess muss aber – im Gegensatz zu einem automatisierten Testfall – mit allen alternativen Abläufen, Grenzfällen, Fehlern, bedingten und wiederholten Abläufen genauso gut zurecht kommen können, wie mit dem einfachsten Fall.

Zwei Arten der RPA
Eine RPA kann auf zwei Arten betrieben werden: begleitet und unbegleitet. Begleitet (dann manchmal auch Robotic Desktop Automation genannt) bedeutet, dass die RPA auf dem Rechner des Nutzers läuft und von diesem explizit gestartet wird. Der Nutzer kann punktuell unterstützt werden, auch wenn die RPA (noch) nicht alle Teile eines Prozesses ausführen kann. Der begleitete Modus kann Nutzern ein Gefühl dafür geben, was RPA zu leisten vermag, oder kann als Meilenstein auf dem Weg zu unbegleiteter RPA genutzt werden.

Unbegleitet bedeutet, dass die RPA auf einem Server läuft (wahrscheinlich sogar virtualisiert) und dann auf bestimmte, automatisch detektierbare Ereignisse hin startet. Die unbegleitete RPA kann gegen Web-Applikationen schneller ablaufen, weil auf die Darstellung auf dem Bildschirm verzichtet werden kann. Sie muss in jedem Fall aber selbständig mit allen Prozessvarianten umgehen können.

Fähigkeiten moderner RPA-Werkzeuge
Ähnlich wie Testautomatisierungs-Werkzeuge gibt es am Markt diverse dedizierte RPA-Werkzeuge zur Wahl. Dies sind Software-Suiten mit einer Entwicklungsumgebung (IDE), die den Entwicklungsprozess der Automatisierung vollständig abdeckt, und einer Ablaufumgebung, mit der die fertige Automatisierung auf die "Roboter" verteilt und dort ausgeführt werden kann.

Die IDE bietet typischerweise:
  • Aufnahme/Wiedergabe von manuell ausgeführten Abläufen ("record/replay") sowie
  • einen graphischen Editor für Ablaufdiagramme, damit Prozesse auch von Nicht-Programmierern automatisiert werden können;
  • eine Ablage zum Strukturieren und Organisieren von (Teil-)Prozessen für einfache Wiederverwendung und
  • die Möglichkeit zum Zusammenstellen von Einzelschritten und (Teil-)Prozessen zu beliebig komplexen Prozessen,
  • schrittweise Ausführung eines Prozesses zur Kontrolle und zum Debugging sowie
  • Integration mit Versionsmanagementsystemen.

Die Laufzeitumgebung besteht aus einer Steuerzentrale und der Roboter-Steuersoftware. In der Steuerzentrale kann:
  • eine Liste der Rechner verwaltet werden, auf der die Robotersoftware installiert ist;
  • Verbindung zu den Robotern aufgenommen werden und ihre Verfügbarkeit überwacht werden;
  • ausgewählte Versionen der Automatisierung auf ausgewählte Roboter ausgerollt werden;
  • die Ausführung der Automatisierung auf den einzelnen Robotern gesteuert und überwacht werden.

Die Erfahrung zeigt, dass es bei der Entwicklung und im Betrieb trotz aller Versprechen der Hersteller nicht immer ohne vertiefte IT-Kenntnisse geht. Zum Beispiel sind nicht alle UIs so gebaut, dass beim Aufnehmen alle Element-Selektoren korrekt erfasst werden; beim Abspielen werden dann andere UI-Elemente bedient als beim Aufnehmen und die Automatisierung schlägt fehl.
 
Das muss durch Testen rechtzeitig erkannt und durch manuelles Suchen und Zuweisen eines korrekten Selektors korrigiert werden.
 
Vorteile von RPA und Veränderungsmanagement
Wie bei allen anderen Arten von Automatisierung auch lautet das Versprechen, dass sich wiederholende, eintönige oder fehleranfällige Arbeiten dem Menschen abgenommen und maschinell schneller und billiger durchgeführt werden können. Der so entlastete Mensch soll sich höherwertigen, komplexeren und anregenderen Aufgaben zuwenden können. Bei aller Begeisterung darf man aber nicht übersehen, dass die Einführung von RPA wie jede Verbesserungsmassnahme nicht wenig kostet und sich erst nach gewisser Zeit amortisiert.

Die Prozessänderungen durch RPA können und werden auch auf Zweifel oder allenfalls sogar Widerstand bei den betroffenen Personen stossen. Fehlendes Verständnis für die Technologie und die Ziele des Automatisierungsprojekts können Angst um den eigenen Arbeitsplatz auslösen.
 
Daher sollten betroffene Personen in alle Schritte der RPA-Einführung involviert sein, sowohl um sie motiviert zu halten als auch um ihr Wohlwollen zu nutzen. Das Vorhaben sollte ihnen von Anfang transparent kommuniziert werden. Sie sind fachliche Experten und können dabei helfen zu entscheiden, welche Prozesse mit welcher Priorität automatisiert werden sollen. Sie sollten die Möglichkeit bekommen, so früh wie möglich Feedback zu geben, und ihre Meinung sollte ausreichend gewürdigt werden. Sie müssen rechtzeitig in der Anwendung der (begleiteten) RPA geschult werden, und nicht alle RPA-Prozesse sollten gleichzeitig scharf geschaltet werden, um eine langsame Umgewöhnung zu ermöglichen. Schlussendlich sollten die Nutzer auch einen aktiven Part in der Betriebs-und-Wartungs-Phase spielen.

Ablauf eines RPA-Projekts
In einem Vorprojekt wird man zunächst eine Kosten-Nutzen-Analyse durchführen. Die Leitfragen dafür lauten:
  • Welche Prozesse haben aufgrund von Häufigkeit und Dauer das grösste Einsparpotential durch Automatisierung? -> nach Einsparungen priorisierte Liste
  • Welche Automatisierung soll verwendet werden, Systemintegration oder RPA (oder allenfalls gemischt)? Wenn RPA, dann mit der bereits im Haus verwendeten Testautomatisierungslösung? -> Anschaffungskosten für Schnittstellen, Werkzeuge
  • Hat das Unternehmen selbst genug Können und Kapazität, die zu automatisierenden Prozesse detailliert fachlich zu beschreiben und dies dann mit den gewählten Werkzeugen in eine RPA zu überführen und zu testen? -> Kosten für die Implementierung durch internes oder externes Personal, Kosten für Testumgebung
  • Wie stabil sind die zu automatisierenden Schnittstellen (bei RPA die UI)? -> Kosten für die Wartung der Automatisierung
  • Was ist für den Betrieb notwendig? Passt RPA ins IT-(Sicherheits-)Konzept? -> Kosten für Server, Lizenzen, Anpassungen Intranet, Pikett
  • Nebeneffekte -> Kosten für (Um-)Schulung, Abfindungen, Opportunitätskosten
Wenn der im Vorprojekt berechnete ROI genügend positiv ausfällt, kann das eigentliche Projekt starten.
 
Die wichtigsten Aufgabenblöcke:
  • Versions- und Ausrollplanung. Welche Prozesse sollen zuerst automatisiert werden? Welche sollen begleitet, welche unbegleitet automatisiert ablaufen? Die RPA muss zu den Versionen der zu automatisierenden Systeme passen. Wann sind diese Versionen jeweils im Einsatz? Wieviele Server braucht es für die vorgesehene Arbeitslast?
  • Implementierung und Testen. Dieser Schritt unterscheidet sich nicht sehr vom gleichen in einem Software- oder Testautomatisierungsprojekt.
  • Training und Ausrollen. Benutzer müssen in der Steuerung der Roboter geschult werden, sowohl die Betreiber als auch die Fachnutzer (für die begleitete RPA). Die RPA-Software muss installiert und konfiguriert werden, das Verteilen der Automatisierung auf die einzelnen Roboter muss konfiguriert werden.
  • Nutzung, Überwachung und Wartung. Die RPA muss auf korrekte und performante Durchführung hin überwacht und nötigenfalls angepasst werden. Änderungen an der UI der automatisierten Produkte müssen allenfalls in der RPA nachgezogen werden. Das Warten einer RPA benötigt mindestens die gleichen Fähigkeiten wie die Entwicklung, es ist also wichtig die benötigten Ressourcen in ausreichendem Mass vorzuhalten.
Fazit
RPA als Konzept ist nichts Neues, ebenso gibt es die Werkzeuge schon länger. RPA kann in einem günstigen Umfeld hervorragende Ergebnisse bringen. Es handelt sich aber immer um ein Verbesserungsprojekt mit vielen Einflussfaktoren, so dass man pauschalen Aussagen nicht trauen sollte. Das aufgezeigte Vorgehen – insbesondere eine objektive, nicht nur oberflächliche Kosten-Nutzen-Voranalyse – im Zusammenspiel mit gutem Erwartungs-Management sollte genügen, um sicherzustellen, dass ein RPA-Projekt nicht gestartet wird, wenn es nicht sinnvoll ist, und die Implementierung und die Einführung die geplanten Ergebnisse tatsächlich erreicht werden. (Oliver Gramberg)
 
Über den Autor:
Oliver Gramberg ist Diplominformatiker und Senior Consultant bei Erni Schweiz AG. Sein Aufgabengebiet liegt im Bereich Softwaretesten, wo er effiziente Testaumatisierungs-Frameworks erstellen und verbreiten hilft, zu Verbesserungen im Testprozess berät und sein Wissen an jüngere Kollegen weitergibt. Er sieht sich als "Advokaten des Kunden" und interessiert sich daher auch für Benutzbarkeit und User-Experience-Themen.