Czy robot (softwarowy) to aplikacja i czy jest to istotne?

Kategoria II
Czy robot (softwarowy) to aplikacja i czy jest to istotne?

W pierwszym wpisie opublikowanym na serwisie Robonomika.pl podjąłem próbę zdefiniowania robota (programowego). Stwierdziłem wówczas, że jest to rodzaj oprogramowania (software), który automatyzujące określone czynności, składające się na proces biznesowy lub jego część, wykonywane do tej pory przez operatora - człowieka (najczęściej wiernie je odtwarzające). Co więcej cechuje się on następującymi właściwościami:

  • działa bezpośrednio na interfejsie użytkownika innych systemów – tak, jak robi to operator-człowiek;
  • nie wymaga tworzenia dedykowanych interfejsów programistycznych;
  • nie wymaga ingerencji w kod źródłowy robotyzowanych aplikacji czy też baz danych aplikacji (co implikuje, że nie trzeba posiadać wiedzy nt. wewnętrznej konstrukcji aplikacji - z perspektywy robota, to "czarna skrzynka");
  • wykorzystuje logikę biznesową zaszytą w robotyzowane aplikacje (co implikuje że nie musimy robić jej (ponownej) analizy);
  • może, ale nie musi działać pod nadzorem operatora.

Przy tak przyjętej definicji robota pojawia się pytanie - czy robot to aplikacja (biznesowa)? I drugie pytanie - czy odpowiedź tak, albo nie ma jakieś znaczenie praktyczne.

Zacznę od drugiego pytania. Jeżeli okaże się, że robot to aplikacja, wówczas podlega on wielu rygorom. Okazuje się bowiem, że wiele przedsiębiorstw prowadzi bardzo formalne spisy aplikacji - chociażby ze względów na wymogi regulatora (np. KNF), zarządzanie ryzykiem IT, albo także w kontekście zarządzania portfelem aplikacji (Application Portfolio Management). Co więcej, jeżeli robot to aplikacja, być może powinien podlegać on formalnemu nadzorowi ze strony IT - ze strony komórki odpowiedzialnej za IT Governance i nadzorowi architektonicznemu - ze strony komórki zajmującej się architekturą (nie wspominam już tutaj nawet kwestii bezpieczeństwa, testów itp.) - w wielu organizacjach obydwie kwestie są często ściśle uregulowane.

Przyjęcie za prawdziwe stwierdzenia, że robot jest aplikacją - pociąga za sobą szereg konsekwencji - przede wszystkim organizacyjnych, w mniejszym stopniu technologicznych. Dotyczą one przede wszystkim odpowiedzialności za budowę, utrzymanie i rozwój robotów.

W szczególności, jeżeli przyjmiemy, że robot to aplikacja - wówczas może się okazać, że największą rolę w wyborze technologii wykorzystywanej do robotyzacji będzie pełnić komórka IT, która odpowiada za standaryzację aplikacji w firmie (a nie jak do tej pory, zwłaszcza przy PoC'ach decyduje o tym zainteresowana jednostka biznesowa przy mniejszej lub większej namowie dostawców).

Co więcej, taki robot będzie musiał mieć założony swój paszport - w kontekście zarządzania portfelem aplikacji (ang. Application Portfolio Management) i podlegać okresowym przeglądom (o ile wynika to z obowiązujących w danej organizacji zasad zarządzania portfela aplikacji).

Skoro więc widać, że określenie czy robot może być / jest traktowany jako aplikacja ma bardzo istotne praktyczne implikacje - pojawia się pytanie czym jest aplikacja.

Niestety nie ma jednej, prostej odpowiedzi na to pytania. Poniżej postarałem się skontrować jej definicję, i zdefiniować kryteria pozwalające określić jak traktować robota (jako aplikacja lub być może coś innego).