Awaria systemu informatycznego w wyborach samorządowych

I znowu problemy z funkcjonowaniem systemu informatycznego w wyborach samorządowych, jeżeli już ktoś nie pamięta, to przypomnę, że system ten – po raz pierwszy – został zbudowany w wyborach 2002 roku co skończyło się prawdziwa katastrofa ponieważ, ponieważ system – budowany przez firmę PROKOM – przestał działać po kilku godzinach funkcjonowania. Dlaczego? W książce   e-korupcja.pl opisałem przyczyny tej prawdziwej kompromitacji informatycznej III Rzeczpospolitej i zainteresowanych odsyłam do niej, w tym artykule przedstawię tylko problemy najważniejsze. Informatyzację wyborów samorządowych przeprowadzono w 2002 roku. Zdaniem Krajowego Biura Wyborczego budowa systemu informatycznego na potrzeby  wyborów samorządowych w 2002 roku urastała do jednego z najtrudniejszych projektów informatycznych w historii III Rzeczpospolitej. Projektem budowy systemu wyborczego kierowało Biuro Informatyki Wyborczej KBW w Warszawie. Wykonawców było aż sześciu. Opracowaniem wymagań funkcjonalnych całego rozwiązania na podstawie aktów prawnych i wytycznych PKW zajęła się warszawska Infovide. Firma ta była też odpowiedzialna za organizację projektu, w tym za analizę ryzyka i nadzór nad jakością. Jednak autorem koncepcji technicznej projektu i integratorem wszystkich zastosowanych w nim technologii był Prokom Software. Firma ta była również autorem aplikacji dla pracowników obwodowych komisji wyborczych. Oprogramowanie do wprowadzania danych na poziomie komisji gminnych, powiatowych i wojewódzkich stworzyła łódzka firma Pixel, reprezentowana formalnie przez Związek Powiatów Polskich. Cała ta przedziwna afera związana z informatyzacją wyborów samorządowych w 2002 roku obracała się w czworokącie firma Pixel - Związek Powiatów Polskich - firma PROKOM - Państwowa Komisja Wyborcza. 

 

  W pierwszej turze wyborów samorządów w 2002 r., system informatyczny obsługujący wybory przestaje działać. Już w kilkanaście godzin po opublikowaniu tej informacji, w prasie ukazują się artykuły opisujące przyczyny kompletnego fiaska komputeryzacji wyborów samorządowych. Według zgodnej opinii dziennikarzy za tą katastrofę odpowiedzialna była firma Pixel, której właściciel w telefonicznej rozmowie emitowanej na antenie TV przyznał, że oprogramowanie wykonane przez jego współpracowników, zawierało błędy. Ta kuriozalna deklaracja - o tym dlaczego kuriozalna, w dalszej części artykułu - zgodna była z oświadczeniem Andrzeja Florczyka, dyrektora Zespołu Informatyki Krajowego Biura Wyborczego, który tego samego dnia w telewizji stwierdził: „Rzecz w tym, że nie przetestowaliśmy ich aplikacji (oprogramowania firmy Pixel - przypadek aut) w warunkach zwiększonego obciążenia. To moja wina, bo szkoda mi było wydać 300-500 tysięcy zł. Tyle musiałaby kosztować taka próba”. Opinia publiczna dowiedziała się zarówno od firmy i od urzędnika, że oprogramowanie informatyczne obsługujące wybory samorządowe nie były przetestowane - za chwilę przypomnę raz jeszcze czytelnikowi na czym polega „testowanie” programów - a to, dla informatyków, oznaczało, że oprogramowanie nie było ukończone czyli, że firma dostarczyła wybrakowany towar, ale co gorsza urzędnik ten towar bez szemrania przyjął. Wyobraźmy sobie, że kancelaria premiera zakupuje luksusowe samochody a dostawca je dostarcza ale bez silników. Program nieprzetestowany jest właśnie takim samochodem bez silnika. Czytelnik aby zrozumieć mechanizm korupcji powinien wiedzieć, że tworzenie programu komputerowego, będącego jednym z elementów projektu informatycznego, składa się z kilku etapów:

Etap 1 - skonstruowanie algorytmu, który jest precyzyjnym opisem operacji tworzących program: algorytm pisany jest w języku macierzystym twórcy programu.

Etap 2 - zapis algorytmu na tzw. edytorze tekstów, w języku zrozumiałym przez komputer.

Etap 3 - kompilacja programu: polega ona na automatycznym tłumaczeniu tekstu programu na język macierzysty komputera, który składa się z ciągu 0 i 1.

Etap 4 - testowanie programu, które umożliwia wykrycie zawartych w nim błędów oraz korygowanie etapu 1 i 3.

 

Czas trwania etapu 4 zależy od stopnia skomplikowania programu. Im ten stopień wyższy, tym etap 4 dłuższy. W przypadku programów nowych, kiedy programista musi tworzyć ręcznie dane przepuszczane przez program, etap 4 pochłania od 60 do 80% czasu przeznaczonego na stworzenie programu.  Testowanie programu i programów jest etapem najdroższym pochłaniającym mnóstwo czasu i środków; jeżeli firma z tego etapu chociaż w części rezygnuję to jej zysk jest wielokrotnie wyższy. Na całym świecie szefowie i dyrektorzy projektów informatycznych wymagają od programistów pisemnych dowodów, że dany program został dokładnie przetestowany, szczególną uwagę zwracając na jego test w warunkach realnych (nazywa to się „symulacją” i jest odpowiednikiem „zwiększonego obciążenia”), ponieważ właśnie wtedy wykrywa się najwięcej usterek i błędów. Nieprzetestowany program jest jak samolot bez kabiny i sterów. Nieprzetestowanie programu przez programistę jest karane bezwzględnie, ponieważ jakość testów jest podstawą etyki pracy informatyka. Dlatego deklaracja dyrektora Florczyka była zadziwiająca: przyznał się on do popełnienia błędu zawodowego - w krajach UE informatyk w takich wypadkach jest zwalniany karnie z pracy - i ogłasza publicznie, że nie zna podstaw informatyki, jej elementarza. Dlaczego dyrekcja KBW przyznała się do popełnienia błędu zawodowego? Moim zdaniem - jest to rzecz jasna hipoteza - dyrekcja informatyczna KBW z góry zakładała, że oprogramowanie nie będzie działało w pierwszej turze wyborów samorządowych. Skąd to przypuszczenie? Bynajmniej nie chodziło tu o pieniądze, lecz o czas. Z artykułów opublikowanych w prasie wynikało, że KBW miało 60 dni na wykonanie całości oprogramowania. Wiemy, że testowanie programów pochłania najwięcej czasu, wiemy także iż w trakcie realizacji etapu 4 (patrz wyżej) wykrywa się błędy oprogramowania. Rezygnując z dokładnego przeprowadzenia testu, musiano zakładać, że oprogramowanie nie będzie działało. Innymi słowy pierwszą turę wyborów samorządowych potraktowano jako testowanie programu. Wybory - rzecz kuriozalna bo dowodzi to, że interes firm prywatnych jest ważniejszy od fundamentu demokracji jakim są wybory-  służyły - powtórzmy to jeszcze raz służyły - do sprawdzenia czy oprogramowanie działa a także do wykrycia w nim błędów. Błędy podczas pierwszej tury wyborów samorządowych wykryto i następnie poprawiono. Oprogramowanie 10 listopada 2002 r. podczas drugiej tury wyborów samorządowych działało sprawnie. Ale niestety to nie wszystko, bowiem problem główny polegał na tym kto, jaka firma wyprodukowała oprogramowanie, którego A. Florczyk nie poddał odpowiednim testom? Całą winę zwalono na firmę Pixel, więcej sam jej prezes przyznał się publicznie, że to jego i tylko jego wina; ponieważ takie samobójcze działania właścicieli firm prywatnych są raczej rzadko spotykane, przytoczmy dosłownie wytłumaczenie Tomasza Szelera prezesa Pixel- Technology: 

"Wadliwa architektura części stworzonego przez nas oprogramowania spowolniła przesyłanie danych wyborczych do centralnej bazy danych w Krajowym Biurze Wyborczym. Wpłynęło to także na nadmierne obciążenie systemu i spowolnienie przetwarzania w nim danych wyborczych.". 

Przedstawiciele Pixel przeprosili również Prokom Software, Infovide i TBD Polska za "zarzuty kierowane pod ich adresem, które mogły negatywnie wpłynąć na ich wizerunek i wiarygodność".

Natychmiast po oświadczeniu prezesa firmy Pixel ukazało się oświadczenie Związku Powiatów Polskich,  na którego zlecenie firma Pixel wykonała ponoć wadliwe oprogramowanie, w którym stwierdza się kategorycznie, że za informatyczne fiasko wyborów samorządowych nie odpowiada firma Pixel, tylko PROKOM. W ekspertyzie ZPP czytamy iż,:  „nie stwierdza się uchybień w realizacji zakresów, jakości oraz terminowości przedmiotu umów przez ZPP oraz przedsiębiorstwa Pixel i TBD. Wobec zebranych informacji niezrozumiały jest powód, dla którego firma Pixel publicznie bierze odpowiedzialność za niewydolność systemu obsługującego wybory samorządowe.”. Według eksperta wynajętego przez ZPP błąd wynikał z zastosowania nienależycie przetestowanego oprogramowania i platformy sprzętowej - centralnego serwera IBM. Firmy Pixel i TBD na potrzeby projektu przygotowały pierwotnie oprogramowanie dla platformy Oracle. Prokom na kilkanaście dni przed wyborami dostarczył natomiast serwer IBM z bazą DB2 i narzędzia do przetworzenia kodu. Podczas konwersji pojawiły się błędy, które spowodowały ograniczenie wydajności przetwarzania danych spływających z ośrodków lokalnych. Raport stwierdza, że pomimo usunięcia usterek wynikających z konwersji Oracle>DB2, nie udało się uniknąć problemów z systemem także w II turze wyborów. Analizy dowodzą, że przyczyną problemów mogła więc być nienależycie przetestowana lub skonfigurowana platforma sprzętowa (dostarczony tuż przez wyborami serwer IBM). W ekspertyzie ZPP stwierdza się jednoznacznie: „Błąd techniczny leżał po stronie Prokomu; polegał on na automatycznym (maszynowym) przetworzeniu kodu dla Oracle na DB2 narzędziem P4 (autorstwa Prokomu) oraz jego bezkrytycznym zastosowaniu do liczenia głosów przez Prokom”. Kilka słów wyjaśnienia, bo nie fachowiec może się czuć trochę zagubiony, a przecież problem jest w gruncie rzeczy dość prosty i polega on na tym, że oprogramowanie firmy PROKOM, które można porównać do tłumacza z języków obcych, źle przetłumaczyło informacje napisane w języku Oracle na język DB2. Tylko tyle. Firma  R. Krauzego ripostowała błyskawicznie. W specjalnym oświadczeniu Zarząd Prokom Software SA stwierdził, że raport dotyczący funkcjonowania wyborczego systemu informatycznego, przygotowany na zlecenie Związku Powiatów Polskich, mija się z prawdą i zawiera wiele nieścisłości. Możemy w niej przeczytać m.in.:

 

„Ekspertyza przygotowana na zlecenie ZPP, dotycząca funkcjonowania całego systemu informatycznego obsługującego wybory, zawiera wiele błędów, jak chociażby nieprawdziwe stwierdzenie o tym, że Prokom na 17 dni przed wyborami zmienił oprogramowanie z Oracle na DB2, czy też jakoby Prokom dostarczył serwer IBM z bazą danych DB2. Błędy te wynikają z tego, że pracujący na zlecenie ekspert ZPP nie miał dostępu do pełnej dokumentacji opisującej system informatyczny obsługujący wybory.”. Pytanie jakie każdy - po przeczytaniu tych wyjaśnień ma prawo a nawet obowiązek postawić brzmi: A dlaczego ekspertowi ZPP, firma PROKOM  nie dostarczyła pełnej dokumentacji? Przecież to należało do zawodowych obowiązków jej menadżerów. Według przedstawicieli Prokomu błędy w działaniu modułów odpowiedzialnych za transmisję danych z lokalnych ośrodków do centralnej bazy Krajowego Biura Wyborczego nie miały związku z zastosowaniem narzędzi Prokomu (technologia P4) umożliwiających aplikacji Pixela komunikację z centralną bazą DB2. Kto miał rację PROKOM czy Związek Powiatów Polskich? I dlaczego prezes firmy Pixel - wbrew wydawałoby się własnemu interesowi - przyznaje się nie tylko do winy, ale jeszcze przeprasza R. Krauzego za kłopoty?  Na te pytania część publicystów znajduje dość szybko odpowiedź, ponieważ reakcja firmy Pixel do złudzenia przypomina relacje miedzy Microsoftem - monopolista na rynku systemów operacyjnych - a małymi firmami amerykańskimi. Dziennikarz z tygodnika ComputerWorld, a więc pisma fachowego i przeznaczonego dla kadry menadżerów, tak podsumowuje tą dziwna aferę: „Jak pisaliśmy w ubiegłym tygodniu, informacje, jakoby problemy systemu wyborczego wynikały z błędów w aplikacji klienckiej autorstwa łódzkiej firmy Pixel Technology, nie znalazły potwierdzenia w faktach. Zarzuty te od początku wydawały się mało prawdopodobne, aplikacja była bowiem wielokrotnie testowana. Z relacji pracowników terytorialnych komisji wyborczych wynika, że w zdecydowanej większości przypadków aplikacja autorstwa Pixel Technology wywiązała się ze swego zadania, czyli zliczania głosów i sprawdzania poprawności sprawozdań. Przyczyną opóźnień - co zostało już potwierdzone - były komponenty odpowiedzialne za wymianę danych między aplikacją działającą w terenie a systemem centralnym w KBW. Przed wyborami Prokom chwalił się, że cała część centralna systemu jest jego dziełem. Gdy jednak wersja o błędzie w module komunikacji została potwierdzona, niespodziewanie autorem błędnie działających komponentów okazał się Pixel. Wersję tę dodatkowo uwiarygodnił Tomasz Szeller, prezes Pixel Technology, który w głównym wydaniu telewizyjnych Wiadomości wziął na siebie winę za problemy z systemem. Choć w tej sytuacji wina niewielkiej firmy wydaje się niepodważalna, wiele osób zaangażowanych w projekt po stronie samorządowej stawia hipotezę, iż Prokom porozumiał się z Pixel Technology. Łódzka firma nie dość, że nie zaprzeczyła oskarżeniom o istnieniu błędów w aplikacji klienckiej, to jeszcze chętnie nadstawiła drugi policzek, oficjalnie przyznając się do błędu, tym samym chroniąc reputację Prokomu. Zakładając, że powyższa hipoteza jest prawdziwa, motywacja Prokomu wydaje się oczywista - kolejna afera z nieudaną informatyzacją to woda na młyn konkurencji, szykującej się do dużych przetargów na systemy informatyczne dla administracji związane z wejściem Polski do UE i nie tylko. Co w zamian? Motywacja Pixel Technology jest mniej jasna, choć można pokusić się o pewne przypuszczenia. Pixel ma aplikację kliencką, z którą zapoznało się kilka tysięcy ludzi odpowiedzialnych za wybory. To duży atut w kolejnych wyborach i referendach. Jednak małej firmie trudno będzie pozbyć się przyklejonego jej przez media odium nieudacznika. Pixel potrzebuje pomocy i zapewne ją otrzyma, np. w formie zakupu jej udziałów przez Prokom. W ten sposób Prokom mógłby obronić reputację, a jednocześnie wejść w posiadanie cennego dorobku Pixela.”.

 

Cóż można do tego dodać? Czy należy skonkludować - tak jak zrobił to tygodnik „Wprost ” -, że Prokom zawinił, Pixel się przyznał?.  NIK był innego zdania. Zdaniem przedstawicieli Najwyższej Izby Kontroli za nieprawidłowości podczas przygotowywania systemu był odpowiedzialny Andrzej Florczyk, ówczesny dyrektor zespołu informatyki wyborczej w KBW, który zrezygnował z ogólnopolskiego testu obciążeniowego systemu na potrzeby wyborów samorządowych. Miało to dać oszczędności 0,5-1 mln zł. Kierowany przez niego Zespół Informatyki Wyborczej nie określił również generalnego wykonawcy odpowiedzialnego za całość projektu.

 

Kontrolerzy NIK ocenili, że Krajowe Biuro Wyborcze dopuściło się też nieprawidłowości przy planowaniu i realizowaniu systemu. Izba zauważa, że już kilka miesięcy przed wyborami można było "z niemal stuprocentową pewnością przewidzieć, że nie da się stworzyć w tak krótkim czasie sprawnie działającego rozwiązania". Wszystkich uczestników tego procesu wyłoniono na podstawie zamówienia z wolnej ręki, a umowy podpisano miesiąc przed wyborami. "Jednak firmy, które wybrano już dawno, miały przygotowaną większą część zamówienia. Prace nad systemem rozpoczęły się, zanim zostały wybrane i zanim podpisano z nimi umowy" - stwierdza NIK.

 

Zdaniem kontrolerów było to działanie nierzetelne, bo nie stworzono równych warunków wszystkim potencjalnym wykonawcom.

 

Urzędnicy KBW tłumaczyli, że na przetarg było zbyt późno, bo dopiero 60 dni przed wyborami premier określił ich termin. Tymczasem - zgodnie z obowiązującym prawem - pieniądze na wybory pochodzą z rezerwy celowej, ta zaś może zostać uruchomiona, gdy jest przyjęta stosowna podstawa prawna. Sytuacja ta to istne błędne koło, na którym skorzystają dotychczasowi partnerzy informatyczni KBW.

 

Jednak zdaniem NIK i Ministerstwa Finansów z rezerwy celowej na przygotowanie informatyczne wyborów można było korzystać, nie czekając na dokładną datę wyborów.”.

 

Z analizy NIK-u można wyciągnąć jeden wniosek: KBW zrobiło wszystko co było w jej mocy by przetarg wygrał PROKOM? Dlaczego instytucja państwowa przyczyniła się do wygrania przetargu przez firmę R. Krauzego? Moim zdaniem - nie było w tym żadnych mechanizmów korupcyjnych, lecz przeświadczenie urzędników KBW, że tylko Prokom może dać sobie radę z informatyzacją wyborów samorządowych w 2002 roku. Przypomnijmy, że Prokom obsługuje informatycznie wybory prezydenckie, parlamentarne i samorządowe od 1993 roku. Obsługiwał również referendum uwłaszczeniowe (1996) i referendum konstytucyjne (1997). To doświadczenie utwierdzało urzędników KBW w przeświadczeniu, że firma R. Krauzego, da sobie radę nawet w 60 dni stworzyć odpowiedni system informatyczny.

Piotr Piętak

DrukujE-mail