Der Citizen Developer im RPA Projekt
- Posted by Peter Schröder
- On 10. Juni 2019
In einem unserer letzten Blog Beiträge zum Thema RPA hat sich unser Vertriebsleiter Artur Habel mit typischen Fragestellungen unserer Kunden beschäftigt. Ein zentrales Thema ist dabei: Welche Skillsets müssen in einem RPA Team abgedeckt werden? Ich möchte dieses Themenfeld heute ein wenig detaillierter beleuchten.
Aus meiner Sicht existieren hier 4 große Bereiche:
A: Die Prozesssicht
B: Die Bedienung der mit RPA ferngesteuerten Applikation(en)
C: Die technische Umsetzung der Applikationssteuerung als RPA Bot
D: Der operative Betrieb eines RPA Systems
Der Themenbereich D ist hier der Vollständigkeit halber erwähnt. Ich möchte mich hier auf die Entwicklungsthemen konzentrieren.
Die Bereiche A und B können als vorhanden angesehen werden. Es wird in den entsprechenden Fachbereichen Mitarbeiter mit einem passenden Skillset geben, da die zu automatisierenden Aufgaben ja bereits manuell durchgeführt werden. Bei der Planung einer RPA-Umsetzung ist dann nur noch sicherzustellen, dass die geeignete Ressource dem Projekt auch zur Verfügung gestellt wird.
Zum Thema C ist etwas komplexer, da ja hier „Neuland“ betreten wird. Hier sind Skills aus folgenden Themenbereichen relevant:
- Welche technische Basis hat die ferngesteuerte Applikation?
- Web
- Native Windows Applikation
- Silverlight, Java, HTML oder Flex
- Steht die ferngesteuerte Applikation nativ zur Verfügung oder nur remote (Citrix, Terminalserver, etc.)?
- Kenntnisse über Best Practices bei der Bot Erstellung (Erfahrungswissen)
Durch diese Themenbereiche wird deutlich, dass hier solides IT Wissen gefragt ist.
Meine Erfahrung ist: Die Tücke liegt im Detail. Eigentlich ist das aber auch nicht wirklich überraschend.
Wie kann man diese Welten nun zusammenbringen?
Die Antwort bei IBM RPA liegt in dem Begriff „Metabot“. Was ist nun ein Metabot und welche Vorteile haben wir durch die Verwendung dieses Konzeptes? Ein Metabot ist ein gekapseltes Unterprogramm, das dem Bot Programmierer ein funktionales Subset (einer Anwendung) zur Fernsteuerung mit RPA zur Verfügung stellt.
Oder, wie aus den IBM Unterlagen frei übersetzt: Ein Metabot ist ein unabhängiger, wiederverwendbarer Logikblock.
Kurz gesagt, ist ein Metabot ein wiederverwendbarer Baustein und verfügt über Ein und Ausgabeparameter. In klassischen Programmiersprachen nennt man so etwas Funktion oder Unterprogramm.
Dazu erst einmal ein Beispiel: In einem RPA Projekt sollen Daten aus einem CRM System genutzt werden. Die benötigten Funktionen sind definiert (z. B. Suche Kunde nach Kundennummer)
Ein Metabot Designer kann dann alle benötigten Screens aufnehmen und die entsprechenden Abläufe programmieren. Der Bot Ersteller kann sich auf einer Highlevel Applikationslogik bewegen, ohne sich mit technischen Details zu belasten (Tastatureingeben, Mausbewegungen, Identifizierung von UI Elementen)
Dies ist also ein Beispiel eines selbsterstellten Metabots mit dem Focus auf eine bestimmte Anwendung.
Metabots können sich auf eine bestimmte Anwendung (s.o.) oder auf einen bestimmten Funktionsbereich beziehen.
Als Funktionsmetabot Beispiel ist hier der mitgelieferte JSON Metabot zu nennen. Dieser stellt einige Funktionen zur Verfügung, um Daten aus JSON-Datenstrukturen zu extrahieren und zu manipulieren. Sobald das Thema REST als Schnittstellen Technologie eine Rolle spielt, sind die Funktionen dieses Metabots sehr nützlich.
Zusammenfassend lässt sich sagen, dass für die Erstellung eines Metabots auch technisches/IT Know How (Themenbereich C) unbedingt erforderlich ist. Ein gut getesteter Metabot ermöglicht es allerdings (durch die Kapselung von technischen Details) auch Mitarbeitern mit einem Skillset aus dem Bereich A/B bei der Bot Erstellung aktiv zu werden. Oder etwas anders formuliert:
Kann jemand aus einem Anwender Fachbereich, (also ein sog. Citizen Developer) einen Software Roboter schreiben? Ja, wenn ich, wie bei IBM RPA, wiederverwendbare Bausteine oder Module (also Metabots) zur Verfügung habe.
Zum Schluss noch zwei Anmerkungen:
- Im Bot Store stehen viele vorbereitete Bots zur Verfügung, diese beruhen fast ausschließlich auf der Metabot Technologie
- Ein Bot Ersteller kann mithilfe eines Metabots auch Bots für Applikationen erstellen, die ihm physikalisch gar nicht zur Verfügung stehen.
Ich gebe zu, dass das Thema Metabot sich nicht auf Anhieb erschließt. Bei Interesse erstelle ich gerne ein Instruktions Video zum Thema Metabot. Das Thema Anwendung von Metabots wird bei unserem nächsten Webcast (RPA im Zusammenspiel mit BPM am 27.6.2019 um 10:00 Uhr) eine Rolle spielen. Falls Sie an diesem Webcast interessiert sind, können Sie sich auch noch anmelden.
*Ein Citizen Developer ist ein Endbenutzer, der neue Anwendungen, Programme oder Systeme erstellt, indem er Entwicklungsumgebungen verwendet, die ihm von der Unternehmens-IT zur Verfügung gestellt werden. (Wikipedia)