Analiza i programowanie w jednym, czyli jak wygląda praca konsultanta ds. wdrożeń

Praca na stanowisku konsultanta ds. wdrożeń może być wymagająca, ale daje również wiele satysfakcji. Możliwość realizacji zróżnicowanych zadań, ciekawe projekty dla klientów z całego świata to tylko ułamek korzyści płynących z pracy z branży telekomunikacyjnej. O specyfice swojej pracy i o tym, dlaczego warto znać Pythona, będąc konsultantem ds. wdrożeń, opowiada nam Michał Malarz, konsultant ds. wdrożeń w Comarch.

Jesteś konsultantem ds. wdrożeń. Czy mógłbyś pokrótce opisać, na czym polega Twoja praca?

Zadaniem konsultanta ds. wdrożeń jest ziszczenie życzeń klienta. Wszystko zaczyna się od przyjęcia wymagań, następnie należy się zastanowić, w jaki sposób można je zrealizować w systemie. Ścieżki są dwie. Można bezpośrednio wdrożyć wymaganie do systemu, używając wewnętrznego języka modelowania albo należy porozumieć się z działem R&D, jakie funkcjonalności należy dodatkowo dostarczyć, aby sprostać wymaganiom. Praca ta jest interesująca, ponieważ łączy w sobie zarówno zadania analityczne, jak i te programistyczne.

Czy zanim zostałeś konsultantem ds. wdrożeń, miałeś doświadczenie programistyczne?

Profesjonalne nie. Moje główne źródło doświadczenia z różnymi językami programowania to zajęcia na studiach. Oprócz tego samemu się douczałem Pythona i jego użyć na przykład do obróbki danych w Excelu. 

Skąd pomysł na systemy BSS (Business Support Systems)? Czemu wybrałeś akurat pracę przy takich projektach?

Uznałem, że praca w branży telekomunikacyjnej pozwoli mi lepiej zrozumieć otaczającą rzeczywistość i usługi, z których na co dzień każdy z nas korzysta. Teraz aktywując, na przykład pakiet Internetu w telefonie wiem, jaką ścieżką podążają jakie informacje, aby taka usługa mogła stać się aktywna i w jaki sposób to jest przechowywane. Świadomość, że ktoś zakontraktował, gdzieś na świecie nowy telefon używając fragmentu systemu, który współtworzyłem, jest satysfakcjonująca.

Twoja praca daje ogromną satysfakcję przez to, że pracujesz nad produktem, którego potem wszyscy używamy. Gdybyś jeszcze mógł opisać zalety pracy na stanowisku konsultanta, to co by to było?

Tak jak wspominałem już wcześniej – zdecydowanie zróżnicowanie zajęć, których się podejmuję. Analiza wymagań, implementacja, dochodzenia źródła wykrytych błędów i ich naprawa są to zadania wymagające innego sposobu myślenia i podejścia, co sprawia, że taka praca rzadko jest monotonna. Dodatkową zaletą, której niestety nie byłem w stanie jeszcze doświadczyć z powodu pandemii, są podróże biznesowe pozwalające zwiedzić różne miejsca w Europie bądź na świecie, w zależności od projektu, w którym aktualnie się pracuje.

W swojej pracy bazujesz na danych, dostarczanych przez klienta w Excelu. Na czym polega wdrażanie systemu na bazie Excela?

Arkusze w Excelu są często wygodnym sposobem do przekazania danych. Weźmy na przykład urządzenia takie jak telefony komórkowe czy tablety oferowane przez operatorów telekomunikacyjnych. Każde takie urządzenie w systemie jest przedstawiane za pomocą dwóch plików, jednego zawierającego opis tego, czym jest produkt na przykład nazwa, specyfikacje techniczne czy nawet kolor i drugiego zawierającego, w jaki sposób ten opisany produkt ma być oferowany w systemie, czy są to raty w ramach planu, czy jest to oferta solo, dla jakiego typu klientów ma być dostępna. Na bazie danych dostarczonych w takim arkuszu potrzebujemy zdecydować, które informacje należy zawrzeć, w jaki sposób, a następnie wcielić to w życie.

Czy przełożenie takich wymagań jest pracochłonne?

Gdyby wprowadzać każde urządzenie osobno, to zadanie byłoby niewyobrażalnie pracochłonne, zwłaszcza kiedy, co jakiś czas mogą dochodzić nowe urządzenia czy sposób ich oferowania. Wielkim ułatwieniem jest automatyzacja takich zadań, ponieważ każde urządzenie jest definiowane według tego samego szablonu.

Taka sytuacja zdarzyła mi się w jednym z projektów, w którym jakiś czas pracowałem.  Odziedziczyłem dość okrężne i nieintuicyjne narzędzie, używające struktur XML generowanych na bazie dostarczonego Excela, żeby można było przerobić dane za pomocą języka XSLT. Postanowiłem ulepszyć to rozwiązanie i zautomatyzować bezpośrednio na bazie danych dostarczonych w Excelu, wykorzystując do tego Pythona. W ten sposób zaoszczędziłem nie tylko swój czas, ale także skróciłem proces obróbki danych od klienta.

Udało Ci się ułatwić swoją pracę poprzez zmianę języka na Pythona. Czy można też użyć innego języka programowania? Czy w tym przypadku Python będzie najlepszym narzędziem?

Generalnie tak, Java też na pewno posiada bibliotekę pozwalającą na korzystanie z plików excelowych, aczkolwiek z Pythonem miałem już wcześniejsze doświadczenie. Wydaje mi się, że w tym przypadku było to najlepsze rozwiązanie. Składnia Pythona jest też łatwa do nauczenia się nawet dla osób, które nie miały wcześniej większej styczności z programowaniem i umożliwia to też pracę przy tym narzędziu w innych projektach.

W jaki jeszcze sposób znajomość Pythona może przyczynić się do ułatwienia pracy konsultanta ds. wdrożeń? Jakie jeszcze technologie/narzędzia warto znać, aby pracować na tym stanowisku?

Przykładowo powyżej wspomniane skrypty, z tego, co wiem, znalazły już zastosowanie w innym projekcie, oprócz tego istnieją jeszcze pewne powtarzalne obszary, których tworzenie można spróbować zautomatyzować właśnie za pomocą Pythona.

Na pewno przydatna w pracy konsultanta ds. wdrożeń jest znajomość GIT, SQL, czasem dokumentację zastosowanego modelu produktu tworzymy w UML dla ułatwienia pracy między zespołami. Ogólne przydaje się obycie z programowaniem, ponieważ łatwiej jest wtedy zrozumieć, w jaki sposób jest skonstruowany system.

Dodaj komentarz

      adres e-mail nie zostanie opublikowany

            Najczęściej czytane w tej kategorii