Dział Rozwoju Oprogramowania

Technologia na styku światów

Zainteresowani programowaniem znajdą u nas najnowsze technologie i świetną organizację. Zainteresowani pracą naukową mogą i zarobić, i prowadzić działalność badawczą. Z Pawłem Nowkiem, kierownikiem Działu Rozwoju Oprogramowania w OPI PIB, rozmawia Maciej Chojnowski

Paweł Nowek
kierownik Działu
Rozwoju Oprogramowania

Paweł Nowek – kierownik Działu Rozwoju Oprogramowania w OPI PIB. Magister inżynier techniki rolniczej na Akademii Rolniczej w Lublinie, studia podyplomowe na kierunku inżynieria oprogramowania ukończył na Uniwersytecie Jagiellońskim.

Jego zainteresowania zawodowe obejmują zarządzanie projektami, big data, optymalizację procesów wytwórczych, wdrażanie nowych metod wytwarzania oprogramowania i technologii.

Maciej Chojnowski: W 2018 roku działający w Dziale Rozwoju Oprogramowania (DRO) zespół odpowiedzialny za system POL-on został uhonorowany EUNIS Elite Award. Za co przyznaje się tę nagrodę?

Paweł Nowek: Nagradza się nią najlepsze systemy informatyczne stworzone dla sektora nauki. Jest przyznawana podczas konferencji naukowej, a oceniane są zarówno rozwiązania techniczne, czyli przedstawione case study, jak i jakość samego artykułu.

Co w waszym przypadku szczególnie podobało się jury?

Systemy, które opisaliśmy. Tego typu rozwiązania istnieją w dużej skali również w innych krajach, tylko że mają inną strukturę: są rozproszone, sieciowe. A my mamy ogromny system, centralizujący wiele procesów i utrzymywany przez jedną instytucję. Na dodatek zbudowany w krótkim czasie. To były kluczowe kryteria.

Czym dokładnie jest POL-on? Jakie funkcje spełnia?

To bardzo rozbudowany, wielopłaszczyznowy system. Jest w nim część repozytoryjna, zawierająca informacje o pracownikach, studentach, doktorantach, szeroko rozumianej kadrze naukowej i administracyjnej, a także pracach dyplomowych czy publikacjach. Tych repozytoriów jest bardzo dużo. Ale to tylko fragment większej całości.

Oprócz nich są też komponenty operacyjne, tworzące wartość dodaną. Można tu chociażby wymienić system SEDN, który służy do ewaluacji jakości nauki i szkolnictwa wyższego.

Innymi słowy POL-on jest zarówno zbiorem danych w repozytoriach, jak i wielu różnych usług, które dynamicznie przekształcają te dane. Dla ułatwienia posługujemy się często pojęciami mały POL-on i duży POL-on. W tym drugim wypadku chodzi właśnie o cały ekosystem POL-onu.

Ostatnio w związku z ustawą Nauka 2.0 dążymy jednak do rozbijania tego monolitu – w sensie czysto technicznym. Obecnie przekształcamy POL-on na architekturę mikrousługową. Każdy moduł poprzedniego systemu, który był w nim zamknięty, funkcjonuje teraz w sposób autonomiczny.

Zmierzacie w stronę większej elastyczności całej architektury, ale też funkcjonalności systemu?

Dokładnie tak. To swoiste sprzężenie zwrotne, bo choć oczywiście doceniamy fakt, że dostaliśmy wyróżnienie od środowiska EUNIS, to mamy świadomość, że funkcjonują też inne ciekawe rozwiązania. Staramy się więc znaleźć złoty środek. Z jednej strony zachowujemy bardzo rozległy, szczegółowy zasób wiedzy, z drugiej tworzymy elastyczny ekosystem usług zamiast jednej, monolitycznej bazy danych.

Takie podejście wpisuje się w trendy współczesnego rozwoju oprogramowania w modelu agile. To pomysł na to, żeby unowocześnić myślenie systemowe?

Zdecydowanie tak. Obecnie wdrażamy najpopularniejszą architekturę w środowisku Java. Ale nie chodzi o konkretny język oprogramowania, tylko o architekturę opartą na mikrousługach, z bardzo elastycznym podejściem do zapisu danych.

Konceptem, wokół którego budujemy to rozwiązanie, jest domain driven design. Z kolei event sourcing to odejście od klasycznych, relacyjnych baz danych i koncentracja na działaniach użytkownika oraz na tym, co się dzieje w świecie rzeczywistym.

Czemu ma to służyć?

Dzięki temu możemy lepiej poznawać potrzeby środowiska i pomóc administracjom uczelni czy instytutów naukowych w lepszym rozumieniu ich działania. Chcemy budować elastyczne aplikacje, tak by usługa była jak najbardziej zbliżona do potrzeb użytkownika. Teraz dane są aktualizowane ciągle. Dzięki temu system żyje i odwzorowuje to, co się dzieje w świecie niemal na bieżąco.

System informatyczny pełni rolę usługową. Staramy się reagować bardzo szybko i nie czekać długo z wdrażaniem oprogramowania. Robimy to iteracjami. Dbamy również o user experience, czyli doświadczenie użytkownika poprzez ciągłe dostosowywanie zakresu prac i kolejnych wydań do zgłaszanych uwag i propozycji płynących ze środowiska. Można też powiedzieć, że jesteśmy swego rodzaju przekaźnikiem wiedzy między tym, czego chce Ministerstwo, a oczekiwaniami uczelni. W OPI PIB dużo twórczych rozwiązań powstaje właśnie na styku tych dwóch światów.

POL-on istnieje od wielu lat. W tej chwili przechodzicie poważną transformację, ale takie systemy w ogóle cały czas ewoluują. Jak to przebiegało w tym przypadku?

Od 2011 roku takich fundamentalnych zmian było co najmniej kilka. Chodzi głównie o nowelizacje ustaw, rozszerzanie obszarów. Te procesy są dynamiczne. My wszyscy – OPI PIB, Ministerstwo, uczelnie, użytkownicy – cały czas też się uczymy. System jest ucieleśnieniem tej wiedzy. A to przekłada się na modernizację i ciągłe zmiany.

Częstotliwość wdrożeń jest teraz jedną z kluczowych metryk, jeżeli chodzi o jakość czy powodzenie firm informatycznych na rynku. Jeżeli jesteś w stanie szybko wdrażać, reagować, dostarczać oprogramowanie w trybie continuous delivery, to wygrywasz. Bo świat po prostu wywiera taką presję i ludzie tego oczekują.

Czy myślicie już o jakichś kolejnych modułach, o które chcielibyście rozbudować ten system w przyszłości?

To, jakie obszary możemy dalej eksplorować, oczywiście częściowo zależy od decyzji strategicznych. Nowym istotnym obszarem w obecnym POL-onie będą zapewne postępowania awansowe. Na przykład łączenie prac dyplomowych z elementami recenzji i innych szczegółowych informacji o tym procesie. Także integracja z Jednolitym Systemem Antyplagiatowym. Dynamiczne raporty tworzone z wykorzystaniem sztucznej inteligencji to kolejny obszar, który będzie bardzo mocno eksploatowany. Przy takim potencjale danych nie można ich po prostu nie wykorzystać.

Co istotne, te wszystkie elementy zaczynają się ze sobą coraz bardziej integrować i pojawia się efekt synergii.

Jaki jest obecny zakres prac DRO?

Około 80 procent naszej działalności polega na wytwarzaniu usług IT, pozostałe 20 procent to działania badawczo-rozwojowe. Naszą główną usługą jest implementacja dwóch ustaw: o nauce i szkolnictwie wyższym oraz o finansowaniu nauki.

Dla kogo realizujecie te usługi?

Odbiorcą jest szeroko rozumiany sektor nauki, a więc Ministerstwo Nauki i Szkolnictwa Wyższego oraz inne ministerstwa nadzorujące uczelnie wyższe, a także Narodowe Centrum Nauki oraz Narodowe Centrum Badań i Rozwoju. Oprócz tego Narodowa Agencja Wymiany Akademickiej, Rada Doskonałości Naukowej oraz wszystkie uczelnie i instytuty badawcze, jak również Sieć Badawcza Łukasiewicz. Jest też jednak wiele innych instytucji, np. Główny Urząd Statystyczny czy Straż Graniczna.

Jakie projekty prowadzicie oprócz POL-onu?

Ogólnopolskie Repozytorium Pisemnych Prac Dyplomowych, w którym przechowujemy obecnie powyżej 10 TB danych, co odpowiada ponad 3 milionom prac. Udostępniamy je Jednolitemu Systemowi Antyplagiatowemu.

Od samego początku prowadzimy też projekt ELA, czyli Ekonomiczne Losy Absolwentów. Korzystamy tutaj także z danych z ZUS-u.

Jest oczywiście RAD-on, czyli nasza wschodząca gwiazda. RAD-on bazuje na analityce biznesowej. Jego sercem jest hurtownia danych, w której integrujemy dane ze wszystkich systemów, którymi OPI PIB się opiekuje. Celem tego systemu jest udostępnianie danych publicznych, tak żeby inne podmioty mogły wytwarzać nowe usługi.

Rozwijamy tam też narzędzia analityczne. Chodzi o wspieranie procesów decyzyjnych przez przedstawienie tego, co zachodzi w sektorze nauki. W dalszej perspektywie jest jeszcze plan budowania modeli analitycznych i predykcyjnych, dotyczących nauki i szkolnictwa wyższego.

Mamy jeszcze kilka mniejszych projektów, m.in. Inventorum. Powstało ono z myślą o łączeniu biznesu i nauki. Jest też projekt Pstryk, czyli narzędzie do wspomagania innowacyjności. Chodzi o zaktywizowanie uczelnianych centrów transferu technologii i stworzenie jednego punktu kontaktowego: przedsiębiorca zgłasza problem, my analizujemy zapytanie, a potem wysyłamy je do centrów transferu technologii, które mają za zadanie odpowiedzieć w ciągu 24 godzin.

Wreszcie Navoica, czyli polska platforma MOOC, oraz system Aparatura, czyli baza dostępnej aparatury badawczej. Ten system jest obecnie rozbudowywany również dla Centrum Łukasiewicz.

Stworzyliśmy także system dla NCBiR, który nie jest publicznie dostępny. Chodzi o wykrywanie duplikatów grantów. To taki antyplagiat w obszarze grantów, który sprawdza, czy jakiś pomysł nie został już wcześniej sfinansowany.

Kim są pracownicy DRO?

Ludzie to nasz największy kapitał. Czynnikiem, który daje nam przewagę rynkową czy kompetencyjną, są pracownicy mocno związani z firmą i tym, co robią. Dlaczego tak jest? Bo nasze systemy dostarczają wymierną wartość społeczną. Są też skomplikowane, a przez to ciekawe. Ludzie pracują więc z nami długo, co w branży IT nie jest powszechne.

Jaki jest profil zawodowy tych osób?

To przede wszystkim pasjonaci, którzy nie boją się eksperymentować. Stając przed perspektywą przebudowy POL-onu, mogliśmy pójść konserwatywną ścieżką i zbudować system, który byłby zmodernizowaną wersją poprzedniego. Ale ludzie w DRO mają potrzebę rozwijania się, wymiany wiedzy, uczestnictwa w seminariach. Mają też zacięcie eksperymentalne. I postanowili podjąć to wyzwanie. Nawet jeżeli nie zawsze są to naukowcy, to jednak duch organizacji przenika do ich myślenia.

Mówiąc konkretnie, mamy prowadzony przez Sławomira Dadasa zespół badawczo-deweloperski, który skupia się na obszarze uczenia maszynowego, przede wszystkim na przetwarzaniu języka naturalnego. Ich badania dotyczą nie tylko analizy danych o nauce, ale również sposobów wykrywania emocji w tekstach czy metody domain adaptation. Chodzi o wykorzystywanie modeli wyuczonych na danych tekstowych z jednej dziedziny (np. na recenzjach filmów) w innych kontekstach (np. w opiniach o usługach medycznych). W zespole były też prowadzone prace nad rozpoznawaniem obrazu – chodziło o odręcznie pisane japońskie znaki kanji.

Zespół jest obecnie na etapie trenowania bardzo dużego modelu języka polskiego opartego na architekturze BERT. To model będący statystyczną reprezentacją języka naturalnego. Takie modele są dziś podstawą budowania bardziej złożonych narzędzi służących do klasyfikacji tekstów, porównywania semantycznego, ekstrakcji danych itp. Im większy zbiór danych, na którym można taki model wytrenować, tym lepiej będzie on oddawał niuanse semantyki i składni danego języka. W DRO do jego uczenia wykorzystaliśmy korpus 130 GB czystego tekstu – to odpowiednik ponad 400 tys. książek. Wytrenowany model planujemy udostępnić publicznie.

Mamy też zespół badawczy prowadzony przez profesora Witolda Pedrycza z kanadyjskiego Uniwersytetu Prowincji Alberta, a zarazem pracownika naukowego OPI PIB. To światowej klasy ekspert w dziedzinie inteligencji komputerowej, modelowania rozmytego, granular computingu, a także rozpoznawania obrazów i sieci neuronowych. Skupiona wokół niego grupa ludzi łączy programowanie oraz badania i rozwój.

Reszta to po prostu czyste IT. W 70 procentach są to programiści, administratorzy, programiści testów, projektanci, testerzy. Jak w każdym software house.

Jakie technologie wykorzystujecie na co dzień?

Podstawową technologią jest ekosystem Java. Korzystamy też z Pythona – przy projekcie Navoica oraz przy tworzeniu modeli uczenia maszynowego.

Jeżeli chodzi o bazy danych, to opieramy się na technologii Oracle.

Na potrzeby uczenia maszynowego LISI dysponuje dużą maszyną obliczeniową Nvidii, którą udostępniamy też innym. W przypadku narzędzi do programowania zwykle jest to Enterprise Architect do modelowania w UML. Jeżeli chodzi o projektowanie interfejsu, używamy programu Axure. Wszyscy stosujemy też IntelliJ. Do Pythona jest Pie chart. Repozytoria kodu – oczywiście na GIT.

Co jeszcze?

JIRA do pracy grupowej. Confluence do dokumentowania. Wdrażanie oparte o Kubernetes. Do konteneryzacji – platforma Docker. Dostarczamy też usługi dla całej organizacji używając Apache Kafka. Chodzi o integrację wszystkich systemów, wymienianie komunikatów pomiędzy nimi.

Interfejsy projektujemy w oparciu o technologie JavaScript tworzone we frameworku Angular, ale bazujące również na własnej bibliotece komponentów UI. Dzięki temu rozwijamy kompetencje oparte bardziej na podejściu fullstack aniżeli wąskich specjalizacji.

Do tego dochodzi jeszcze automatyzacja testów, czyli JUnit. Jest też COMIT, a wszystko buduje się automatycznie w oparciu o Jenkinsa. Z kolei Sonar analizuje cały kod.

A w jaki sposób pracownicy DRO mogą rozwijać swoje umiejętności?

Z myślą o osobach prowadzących prace badawczo-rozwojowe organizujemy coroczne seminaria doktoranckie. W minionych latach prowadzili je m.in. wspomniany wcześniej profesor Witold Pedrycz z Kanady czy nieodżałowany profesor Krzysztof Marasek – nasz znakomity pracownik, specjalizujący się w przetwarzania języka naturalnego i fonetyce eksperymentalnej, który był też kierownikiem Katedry Multimediów w Polsko-Japońskiej Akademii Technik Komputerowych.

W tym roku seminarium poprowadzimy online. Podpisaliśmy porozumienie z Instytutem Badań Systemowych Polskiej Akademii Nauk o ukierunkowaniu rozwoju badawczo-rozwojowego. I to jest głównie uczenie maszynowe.

Poza tym nasi ludzie jeżdżą na najlepsze na świecie konferencje, rozwijają się, regularnie publikują.

Dlaczego warto dołączyć do DRO?

Osoby zainteresowane tworzeniem oprogramowania znajdą u nas najnowsze technologie i bardzo dobrą organizację.

A jeżeli ktoś chce pracować naukowo w obszarze data science czy uczenia maszynowego, to może i zarobić pieniądze, i prowadzić działalność badawczą. Mało tego, może zrobić coś praktycznego, co będzie używane przez ludzi.