Ako sa s automatizáciou menili náklady
Komerčná RPA platforma pomohla klientovi začať bez budovania vlastného technického základu. Keď pribúdali procesy, používatelia a licencie, rástli aj prevádzkové náklady a závislosť od pôvodnej platformy.
Klient sa preto rozhodol pre open-source riešenie, nad ktorým by mal väčšiu kontrolu a dokázal ho rozvíjať vlastnými kapacitami. Ako nový základ sme zvolili Robot Framework, ktorý sa používa aj na robotizáciu procesov (RPA).
Open-source riešenie neodstraňuje náklady na infraštruktúru, údržbu, aktualizácie ani odbornú podporu. Ďalší rozvoj však už nemusí byť viazaný na pôvodný licenčný model. Kritériá takéhoto rozhodovania rozoberáme aj v porovnaní open-source a komerčných RPA riešení.
Automatizácie sme postavili nanovo
Existujúce automatizácie sa nedali jednoducho exportovať a preniesť do nového nástroja. Riešenie sme preto stavali prakticky od začiatku. Pri návrhu sme odstránili väzby na pôvodnú platformu a nastavili spoločné pravidlá skôr, než začne počet robotov opäť rásť.
Navrhli sme architektúru v Robot Frameworku, štruktúru projektov a princípy pre ďalšie procesy. Procesy sme v Robot Frameworku zapisovali v čitateľnej podobe. Pomocné knižnice a vlastnú technickú logiku, na ktorú samotné kľúčové slová nestačili, sme doplnili v Pythone.
Od začiatku sme oddelili procesnú logiku, technickú komunikáciu s aplikáciami, vstupné dáta, konfiguráciu a znovupoužiteľné komponenty. Autori robotov tak nemuseli pri každom projekte nanovo rozhodovať, kam tieto časti patria a ako majú fungovať.
Prvé roboty ukázali spôsob ďalšieho vývoja
V úvodnej fáze sme vytvorili prvé reálne robotizované procesy a použili ich aj ako referenčné implementácie. Interný tím na fungujúcom projekte videl syntax Robot Frameworku aj spôsob, ako navrhnúť ďalší proces v súlade so spoločnou architektúrou.
Jeden z použitých modelov opakovane spúšťal tú istú automatizačnú logiku s rôznymi vstupnými dátami. Namiesto samostatného robota pre každú položku spracoval pri každom behu ďalší pripravený vstup. Samotný postup sa nemenil.
Oddelenie dát od logiky zjednodušilo opakované použitie. Zmena vstupu nevyžadovala zásah do postupu robota. Ak sa zmenil proces, stačilo upraviť jedno miesto namiesto viacerých takmer rovnakých implementácií.
Osvedčené postupy sme zapracovali priamo do projektu
Otvorený nástroj sám o sebe nezaručí udržateľný vývoj. Bez spoločných pravidiel môže aj v Robot Frameworku vzniknúť neprehľadná sada skriptov, ktorej rozumie iba pôvodný autor. Spolu s architektúrou sme preto definovali štandardy pre ďalšie automatizácie:
- vrstvovú štruktúru inšpirovanú Page Object Modelom, ktorá oddeľovala technickú interakciu s aplikáciami od procesnej a biznisovej logiky
- spoločné zdroje (resources), kľúčové slová a komponenty, aby sa rovnaká funkcionalita neimplementovala v každom robotovi znova
- jednotnú štruktúru pre úlohy (tasks), konfiguráciu, vstupné dáta, premenné a pomocné knižnice
- centralizovanú správu prostredí a konfigurácie namiesto hodnôt zapísaných priamo v automatizáciách
- konzistentné spracovanie očakávaných chýb, ukončovanie procesov a diagnostické informácie
- štandardizované logovanie, podľa ktorého sa dal spätne dohľadať priebeh spracovania a príčina neúspešného behu
- pravidlá pomenovania, primeranú veľkosť kľúčových slov a jasné rozdelenie zodpovedností medzi vrstvami
- pravidlá rozširovania, aby nové roboty najskôr využívali existujúce komponenty a nevytvárali paralelné riešenia tej istej úlohy
Odovzdanie pripravilo tím na samostatný vývoj
Na prevzatie riešenia nestačila znalosť syntaxe Robot Frameworku. Interný tím potreboval rozumieť architektúre, organizácii projektov, spoločným komponentom, vývojovým štandardom, pravidlám pomenovania, konfigurácii, dátam, logovaniu aj spracovaniu chýb.
Súčasťou odovzdania boli školenia, dokumentácia a praktické ukážky na prvých robotoch. Pri tvorbe ďalších automatizácií sme tím technicky viedli, aby si nový spôsob práce osvojil na fungujúcom riešení.
Know-how sme prenášali tak, aby po zavedení architektúry a prvých procesov nevznikla nová závislosť od externého dodávateľa. Interný tím potom dokázal ďalšie roboty vyvíjať a podporovať samostatne.
Čo sa pre klienta zmenilo
- Komerčnú RPA platformu nahradilo riešenie postavené na open-source Robot Frameworku.
- Klient získal spoločnú architektúru, štruktúru projektov a pravidlá pre ďalší rozvoj automatizácie.
- Prvé produkčne použiteľné roboty interný tím používal aj ako referenčné implementácie pre nový vývoj.
- Pre konfiguráciu, dáta, logovanie a spracovanie chýb vznikol jednotný postup.
- Znovupoužiteľné komponenty obmedzili potrebu implementovať rovnaké kroky vo viacerých robotoch.
- Interný tím získal dokumentáciu, praktické zaškolenie a skúsenosť s rozširovaním riešenia.
- Po odovzdaní mohol interný tím pokračovať vo vývoji a podpore robotizovaných procesov vlastnými kapacitami.
- Klient získal väčšiu kontrolu nad riešením a jeho ďalší rozvoj už nebol viazaný na pôvodný licenčný model.