inhire.ioBlogInneSystem Dozoru Elektronicznego w 4K

System Dozoru Elektronicznego w 4K

Inne
Praca w IT
26/01/2021

Przedstawmy Was krótko: Konrad Karpowicz – Kierownik Zespołu Embedded Wrocław, Paweł Konarski (Warszawa) i Andrzej Kieńć (Wrocław) – Kierownicy Zespołów Programistów, Mateusz Kaniecki – Tester (Warszawa). Większość z Was jest niemal od początku zaangażowana w SDE – projekt realizowany przez Enigmę Systemy Ochrony Informacji.

Gdybyście mogli w kilku zdaniach opowiedzieć co stoi za skrótem SDE?

Konrad: SDE czyli  „System Dozoru Elektronicznego” to kompleksowe rozwiązanie pozwalające na odbywanie kary pozbawienia wolności poza zakładem karnym. Opiera się na kontroli zachowania skazanego przy użyciu środków technicznych i może mieć trojaką postać: stacjonarną, mobilną lub zbliżeniową. Dozór stacjonarny polega na przebywaniu przez skazanego w określonym czasie w danym miejscu. Dozór mobilny polega na kontrolowaniu bieżącego miejsca pobytu skazanego. Dozór zbliżeniowy polega na kontroli zachowywania przez skazanego sądowo określonej minimalnej odległości od wskazanej osoby lub miejsca. Kompletny system składa się z urządzeń instalowanych u osoby skazanej/monitorowanej oraz z oprogramowania, które łączy urządzenia z bazami danych oraz interfejsem zarządzania.
Paweł: [Nie każdy może ubiegać się o odbywanie kary za pomocą SDE. Wniosek o odbywanie kary w systemie monitoringu elektronicznego jest rozpatrywany indywidualnie przez sąd – przyp. red.]. System umożliwiający odbywanie kary osobom skazanym wyrokami poza zakładem zamkniętym oraz prowadzenie prawie normalnego życia – w tym pracę.

Wiemy czym jest SDE, a jaki jest cel całego projektu? Dla kogo i po co jest realizowany?

Andrzej: Niewątpliwie robimy ten system, aby go po prostu sprzedać. Lecz jeżeli popatrzymy na to zagadnienie nieco szerzej, to sprzedaż polega na dostarczeniu kupującemu czegoś, co jest mu potrzebne i za co jest gotów zapłacić. Tu pojawia się idea, której sednem poprawa bezpieczeństwa społeczeństwa. To cel, który jest wart pieniędzy podatników. Chcemy, aby w sytuacji gdy konieczne jest jakiegoś rodzaju ograniczenie wolności osobistej człowieka, odbywało na miarę XXI wieku, czyli szybko, tanio, efektywnie, przy zachowaniu najwyższego możliwego poziomu bezpieczeństwa, bez potrzeby wysyłania człowieka do więzienia, czy innych tego typu instytucji. Nasz system realizuje ten cel przez monitorowanie lokalizacji osób, kontrolę zbliżania się do stref zakazanych oraz do osób chronionych. Jesteśmy więc w stanie wspierać procesy związane z odbywaniem kar w systemie dozoru elektronicznego, zakazy zbliżania się do miejsc lub osób, czy kwarantannę domową związaną z COVID-19 oraz każdy inny proces w którym wymagane jest, aby znana była lokalizacja osoby monitorowanej względem innych miejsc, obiektów, bądź osób.
Paweł: System został przygotowany na zamówienie Ministerstwa Sprawiedliwości, jego głównym założeniem było zmniejszenie liczby osób odbywających karę w zakładzie zamkniętym, skrócenie czasu oczekiwania na odbycie kary (więzienia są przepełnione) oraz zmniejszenie kosztów ponoszonych przez Państwo Polskie przeznaczonych na pobyt osób skazanych w zakładach zamkniętych.
Konrad: Samo wdrożenie systemu pozwoliło zmniejszyć liczbę skazanych odbywających karę w więzieniach, czym doprowadziło do realnych oszczędności, które sięgają nawet kilku tysięcy złotych na osobę miesięcznie bez kompromisów jeśli chodzi o bezpieczeństwo. Monitoring za pomocą SDE to alternatywa dla kary pozbawienia wolności i osadzenia w zakładzie karnym. Skazany ma możliwość prowadzenia życia zawodowego, utrzymywania więzi rodzinnych czy uczestniczenia w życiu społecznym. Dzięki temu skazani, którym zasądzono np. płacenie alimentów, mogą samodzielnie realizować swoje zobowiązania.

Przeczytaj także – Historie kobiet, które odmieniły świat IT.

Zdradźcie jak wygląda praca nad tak skomplikowanym projektem, który łączy w sobie soft i hard-ware? Z kim współpracujecie? Prace nad SDE toczą się w dwóch lokalizacjach – w Warszawie i Wrocławiu.

Paweł: W cały projekt zaangażowane są zespoły Systemów Wbudowanych (oprogramowanie urządzeń), programiści wysokopoziomowi (oprogramowanie serwerów komunikacyjnych, aplikacji klienckich), Zespół Testów i Dokumentacji, Wdrożenia, PM, Zarząd.
Konrad: Programiści, Zespół Testów i Dokumentacji. Poza tym współpracuję z Kierownictwem Biura Dozoru Elektronicznego oraz Koordynatorami Zespołów Terenowych w całym kraju.
Andrzej: [Zespół .Net Wrocław powstał w 2019 przyp.red]. Nasz zespół to programiści .NET/C# posiadających różne doświadczenie, czy wcześniejsze ścieżki kariery. Tworzymy barwny zespół profesjonalistów, który wraz z kolejnymi wyzwaniami pokonuje kolejne bariery. Współpraca oparta na zaufaniu, wspólnym celu, chęci odkrywania nowego i doskonalenia się w sztuce tworzenia systemów, przy jednocześnie luźnej atmosferze i braku zbędnych formalizmów, to jednym słowem „PPO Wrocław :)”.

Jak przebiegają etapy pracy przy SDE?

Konrad: Do zakresu moich obowiązków należy przygotowanie oprogramowania wewnętrznego urządzeń oraz nadzór nad ich pracą w systemie: wykrywanie nieprawidłowości, reagowanie na awarie i usuwanie problemów dotyczących działania urządzeń. Można wydzielić kilka etapów: analiza wykonalności, dostosowanie się do wymagań SIWZ, uruchomienie produkcji, wdrożenie serii testowej, poprawki błędów i uruchomienie systemu docelowego, organizacja serwisu, reagowanie na problemy i współpraca z zamawiającym, rozwój produktu.
Andrzej: Etapów było kilka, z czego najciekawsze dopiero się rozpoczynają. Na początku były liczne wybory dotyczące technologii, frameworków i architektury. Więcej pracy odbywało się wtedy na tablicy z pomocą markerów, niż na komputerach.
[po opracowaniu i zaakceptowaniu rozwiązań –przyp.red] Nieuchronnie, bo już nas raczej nic nie powstrzyma, zbliżamy się do momentu, gdy powstanie wersja MVP (minimum viable product), którą będziemy się mogli pochwalić przed potencjalnymi klientami.
Mateusz: Jestem testerem, w projekcie zajmuję się manualnym, funkcjonalnym testowaniem urządzeń przeznaczonych do dozorowania skazanych, ale nie tylko bo SDE to także aplikacja webowa, która pozwala zarządzać skazanymi i ‘kontrolować’ urządzenia. Oprócz tego sporządzam analizę wymagań, tworzę dokumentację.
Paweł: W ramach mojego udziału w tym projekcie mogę wymienić takie etapy: zapoznanie z poprzednim rozwiązaniem u klienta, analiza wymagań kolejnego etapu wynikającego z SIWZ, projektowanie nowych rozwiązań, testowanie, wdrażanie nowej wersji systemu u klienta, migracja danych z poprzedniej wersji, utrzymanie i serwis.

Teraz to co najbardziej interesujące, jakie technologie są wykorzystywanie w projekcie?

Andrzej: Wszyscy mamy do dyspozycji najnowsze wersje Visual Studio z Resharper’em i JetBrains Rider do użytku wedle uznania. Repozytoria stoją na GitLabie, a CI/CD na TeamCity. Do naszej dyspozycji są dowolne liczby maszyn wirtualnych, zorganizowanych w kilka separowanych podsieci, zgraje dockerów lecących na różne hosty, wewnętrzne repo nugetów, dockerów i wiele innych „zabawek” (…) Nie ma u nas dedykowanych frontendowców. Powoduje to oczywiście pewien wzrost współczynnika WTF/h (javascript jest dziwny). O ile przed rozpoczęciem projektu byliśmy zwykłymi backendowcami, po jego zakończeniu będziemy prężyć muskuły w świetle jupiterów, jako pełnosprawne „full-stacki”.
Paweł: Oprócz tego system zadaniowania to JIRA, systemy kontroli wersji: git, HG; języki programowania: C#, C++, LUA, Python; bazy danych: MS SQL Server, Postgres.
Mateusz: Testowanie odbywa się manualnie: system bugtrackingowy, aplikacja do zarządzania przypadkami testowymi. I telefon z numerem Konrada pod szybkim wybieraniem 🙂

Jakie problemy lub ograniczenia można napotkać przy realizacji tak dużego i skomplikowanego  projektu?

Konrad: Problemy zawsze powstają na styku wymagań klienta oraz tego, co zostało przez nas przygotowane na bazie posiadanego sprzętu. Pewne rzeczy zwyczajnie się „rozmijają” i trzeba się nieźle nagłówkować, żeby jedno z drugim pogodzić. Ograniczają nas czas i pieniądze. Sztuką jest tak pokierować projektem, aby znaleźć część wspólną obu tych światów: muszą się w niej znaleźć i pieniądze, i satysfakcja z dobrze wykonanej pracy.
Paweł: SDE jest dużym projektem, który wymagał integracji wielu różnych komponentów produkowanych przez różne firmy. Największe problemy na jakie można się w takim przypadku natknąć to niekompatybilność użytych rozwiązań i trudności techniczne związane z zapewnieniem ich prawidłowej współpracy – czyli tworzenie pośrednich warstw tłumaczących i dostosowujących interfejsy, formaty danych itp. Ponadto system SDE w obecnej formie jest już trzecią wersją używaną przez Ministerstwo Sprawiedliwości, konieczna była więc migracja danych z poprzedniej wersji oraz wymiana znacznej części komponentów, w tym urządzeń nadzorujących. Ostatnią z trudności jest zapewnienie w tak dużym przedsięwzięciu właściwej komunikacji nie tylko pomiędzy zespołami w ramach jednej firmy ale również pomiędzy wszystkimi partnerami konsorcjum realizującego projekt.
Andrzej: My nie mamy „problemów” tylko „wyzwania” . Pojawiło się ich dziesiątki i na pewno jeszcze setki nas czekają. Jedne były ciekawe, inne mniej, zdarzyły się takie bardzo brzemienne w skutkach. Największym wyzwaniem na pewno było to, że nikt z nas nie miał pojęcia jak się robi nowoczesne interfejsy webowe i wszyscy uczyliśmy się tego od zera. (…) Niemal wszędzie jest pole do optymalizacji, testów i jeszcze raz testów. Wszystkie owe „wyzwania” mają jeden wspólny mianownik – z każdego wychodzimy mądrzejsi i każdego dnia stajemy się lepszymi programistami. Myślę że to jest największy plus tego projektu, że na pewno nie można go nazwać nudnym.
Mateusz: Z mojej perspektywy (testera) największym wyzwaniem jest różnorodność ról w projekcie. Ilość perspektyw z których muszę spojrzeć na cale nasze rozwiązanie jest naprawdę spora. Jest to wymagające, ale pozwala uniknąć monotonii. Muszę wcielić się nie tylko w osobę noszącą owe urządzenia, ale także osoby instalujące urządzenia, czy osoby odpowiedzialne za obsługę dedykowanej aplikacji webowej.

Posłuchaj naszego Praktycznego podcastu!

Co jest kluczem do udanej realizacji tak złożonych projektów?

Andrzej: Najważniejszy jest zespół. To jak przebiega współpraca, jak dzielimy się wiedzą i jak nakręcamy się wzajemnie jest podstawą postępu prac. Jak dorzucić do tego szczyptę planowania, nie-takie-proste-narzędzie-zwane-(z)jira  i kilka prostych agile’owych zasad, to mamy przepis na sukces każdego projektu. Pomagają jeszcze wizja i jasne wymagania biznesowe.
Paweł: Kluczem jest mieć właściwych ludzi kompetentnych do realizacji konkretnych zadań, oraz właściwa liczba tych ludzi. Jeżeli to jest to pozostaje dobre zaplanowanie prac, oraz kontrola nad ich terminową realizacją.
Mateusz: Ja bardzo cenię sobie współpracowników, którzy często pomagają swoim nieocenionym doświadczeniem.
Konrad: Kluczem jest osoba, która potrafi spojrzeć na całość projektu „z góry”: i na produkcję, i na serwis, i na programistów, i na testerów, i na współpracę z klientem, i, co bardzo ważne, na możliwe/konieczne kierunki rozwoju. W pracy zespołowej najważniejsza jest odpowiedzialność – osoby, które czują się odpowiedzialne za przedsięwzięcie, organizują pracę swoją oraz swoich zespołów w taki sposób, że praca nad projektem jako całością jest prowadzona optymalnie.

Jakie sposoby stosujecie na utrzymanie przejrzystej komunikacji, podziału i realizacji zadań?

Paweł: Przejrzystość generalnie wynika z podziału kompetencji i hierarchii zależności w ramach organizacji oraz w ramach konsorcjum. Ponadto korzystanie z odpowiednich narzędzi do realizacji zadań (tu z pomocą przychodzą JIRA i systemy zgłaszania błędów) oraz właściwie zorganizowana struktura kierownictwa projektu. Bardzo ważne jest również dobre zaplanowanie prac oraz ich przydział do właściwych zespołów oraz nadzór nad terminową realizacją.
Konrad:
Bardzo ważne jest również dobre zaplanowanie prac, w tym spotkania projektowe, praca z systemami kontroli wersji, czy też systemami nadzoru nad błędami oraz porządkującymi wiedzę.Mateusz: Przede wszystkim dokładny i jak najbardziej szczegółowy opis przekazywanych sobie zadań. W razie wątpliwości szybki i bezpośredni kontakt z drugą osobą.
Andrzej:
Podstawą jest wzajemne zaufanie i codzienny „stand-up vel sit-down”. Teraz pracujemy zdalnie, więc bywa, że przepływ informacji nie jest płynny, a warunki nie zawsze idealne. Dzisiaj staramy się więc łączyć jak najwięcej, wymyślać rozwiązania, wspólnie programować albo po prostu pogadać.

Jak przebiega testowanie fizycznego urządzenia? Pojawiają się zabawne sytuacje?

Konrad: Trzeba stać się skazanym. Czasem na kilka minut, a czasem na kilka dni. I często trzeba testować więcej niż jedno urządzenie na raz. Konieczność noszenia urządzeń dozoru elektronicznego do celów deweloperskich powoduje częściową utratę prywatności. W danych zbieranych z czujników (w celu poprawy jakości działania urządzeń) zawarte jest mnóstwo informacji, które wprost pokazują, co kto robi w czasie wolnym: kiedy odpoczywa, kiedy śpi, czy kąpie się w wannie, czy pod prysznicem, czy w zimnej wodzie, czy w ciepłej, jak długo, na którym boku z reguły leży, co robi w łóżku, gdy nie śpi, jak często chodzi do toalety itp. itd. Czasem rozmowy na ten temat są zabawne, a czasem wyglądają jak przesłuchanie .
Mateusz: Pamiętam, gdy pierwszy raz przyjechałem do domu rodzice nie chcieli uwierzyć, że ja to tylko testuję, a nie coś przeskrobałem 
Jednym z moich ciekawszych doświadczeń był wyjazd z osobami instalującymi urządzenia do prawdziwych skazanych. Dla testera to spore ułatwienie, pozwala jeszcze lepiej dopasować swoje podejście do przyszłych testów.
Paweł
: Noszenie opaski na nodze w miejscu publicznym może wzbudzać zainteresowanie osób postronnych, albo jak to mawiają: wzbudzać „szacun na dzielni” 🙂

Rok 2020 przyniósł wiele zmian w stylu pracy, w stylu zarządzania. Koniec tak wyjątkowego roku skłania do przemyśleń. Gdybyście mogli podsumować, co dobrego przyniósł ten rok i jakie snujecie plany zawodowe na 2021.

Konrad: Rok 2020 to diametralna poprawa jakości pracy zdalnej. Ogromne doświadczenie w tym zakresie, które z pewnością będzie procentować w przyszłości. Rok 2021 to dla mnie prace nad nową generacją urządzeń SDE.
Andrzej: Rok 2020 zawsze zapamiętam jako ten, w którym udało mi się skrzyknąć ekipę wspaniałych ludzi i w ten sposób rozpocząć naszą wspólną przygodę w Enigmie. Plany na 2021? Wykonać prosty, lekki, przejrzysty interfejs, z dowolnie skalowalnym backendem do nowej wersji SDE. Marzy mi się system taki, że koparki spadną pod stołki, wystrzelą korki od szampana, a pieniądze posypią się z nieba 
Paweł: 2020 przyniósł zdalną pracę – co jak się okazało jest możliwe. Ponadto przyniósł zakończone sukcesem projekty, i nowe projekty do realizacji, co biorąc pod uwagę sytuację w kraju jest bardzo pozytywną informacją.Plany na 2021 – realizacja zaplanowanych zadań, oby z sukcesem, dalszy rozwój mojego zespołu pod względem kompetencji jak również pozyskania nowych osób.
Mateusz: 2020 to chyba trudny rok dla nas wszystkich. Szukając pozytywów to najciekawsze było chyba dla mnie przekonanie się, że praca z domu też jest ‘fajna’. Zawsze byłem bardziej sceptyczny jeśli chodzi o pracę z domu, bo jednak ceniłem sobie pewną socjalizację poprzez kontakt z ludźmi w biurze. Nigdy nie próbowałem pracy z domu, ale sytuacja mnie do tego zmusiła i muszę przyznać, że nie ma na co narzekać.

Podzielcie się inspiracjami na 2021? Co Was motywuje do działania?

Konrad: Inspiracją dla mnie jest praca z nowoczesnymi technologiami. Kiedy pracuje się ze sprzętem, który ma naprawdę potężne możliwości i udaje się je wykorzystać tworząc coś, co dobrze działa, to aż chce się pracować 🙂
Paweł: Najbardziej motywuje dobrze wykonana robota, taka która daje powód do zadowolenia tak z siebie jak i całej masy ludzi z którymi się tę robotę wykonało.

Dziękuję za rozmowę.