Zanim kupisz, popatrz w zęby

Każde przedsiębiorstwo wyposażone w system komputerowy (zwany często informatycznym lub komputerowym systemem informacyjnym, od angielskiego terminu Information System) świetnie zdaje sobie sprawę, że tak prosta z pozoru sprawa jak wprowadzenie komputerów do firmy posiadającej już pewien sprawnie działający schemat wymiany informacji i system zarządzania, okazuje się najczęściej wyjątkowo czasochłonne i kosztowne. Mało tego, większość prób wdrożenia nowego systemu informacyjnego do dużego przedsiębiorstwa kończy się pozostaniem przy starych, papierkowych metodach. Niebanalne zaś ilości pieniędzy i czasu zostają bezpowrotnie stracone.

Każde przedsiębiorstwo wyposażone w system komputerowy (zwany często informatycznym lub komputerowym systemem informacyjnym, od angielskiego terminu Information System) świetnie zdaje sobie sprawę, że tak prosta z pozoru sprawa jak wprowadzenie komputerów do firmy posiadającej już pewien sprawnie działający schemat wymiany informacji i system zarządzania, okazuje się najczęściej wyjątkowo czasochłonne i kosztowne. Mało tego, większość prób wdrożenia nowego systemu informacyjnego do dużego przedsiębiorstwa kończy się pozostaniem przy starych, papierkowych metodach. Niebanalne zaś ilości pieniędzy i czasu zostają bezpowrotnie stracone.

Męki wdrażania systemu komputerowego czekają prędzej czy później każdą większą firmę, ze względu na fakt, iż system taki znacznie ułatwia przetwarzanie i przechowywanie dużych ilości danych, co w rezultacie pomaga zdobyć przewagę nad konkurencją. Można więc zaryzykować stwierdzenie, że sprawny system informacyjny jest wprost koniecznym warunkiem do osiągnięcia sukcesu na obecnym rynku.

Firmy które korzystają już z komputerów, są także potencjalnymi klientami inżynierów systemowych (zespołów specjalistów zajmujących się wdrażaniem systemów komputerowych). Wymiana systemu nie polega bowiem jedynie na zakupie nowocześniejszych elementów sprzętowych; oprogramowanie również się starzeje, choć nie w tym samym sensie co urządzenia elektroniczne. Po pewnym czasie aktualny system przestaje bowiem pasować do struktury wciąż rozwijającej się firmy i w rezultacie konieczne jest wdrożenie nowego oprogramowania, odpowiadającego aktualnym warunkom pracy. Oczywiście, niektóre systemy można gruntownie modyfikować i unowocześniać, co nie zmienia jednak faktu, że zawsze nadchodzi moment, gdy aktualne oprogramowanie jest na tyle przestarzałe, iż trzeba je zastąpić nowym.

System z półki sklepowej

Istnieją dwie podstawowe metody wdrażania systemów informacyjnych do firm i przedsiębiorstw. Pierwsza z nich sprowadza się do wybrania gotowego sprzętu i oprogramowania "z półki sklepowej", zatrudnienia grupy konsultantów do pomocy w procesie instalacji i testowania, wreszcie wysłania pracowników firmy na odpowiedni kurs specjalistyczny, nauczający jak korzystać z zakupionych programów. Ta metoda może być z powodzeniem stosowana w mniejszych firmach i przedsiębiorstwach, gdzie komputery mają przede wszystkim wspomagać pracę personelu, nie zaś zastąpić aktualny system wymiany informacji (formularze, raporty, itp.). W Polsce jest ona jednak zdecydowanie nadużywana. Firmy, w których funkcjonujący aktualny system informacyjny jest tzw. wąskim gardłem, czyli elementem, z którego wynikają problemy i opóźnienia, powinny dobrze zastanowić się nad całkowitą zmianą strategii. Zakup standardowych pakietów księgujących nie pomoże bowiem w rozwiązaniu tej sytuacji; będzie jedynie zbędnym wydatkiem.

Metoda zakupu standardowych pakietów ma zarówno wady jak i zalety. Zacznijmy może od zalet: po pierwsze, jest ona stosunkowo tania (jak wiadomo rzeczy gotowe są zazwyczaj tańsze od wykonanych na zamówienie). Po drugie, konsumuje stosunkowo mało czasu i nie zaburza aktualnej struktury przedsiębiorstwa. Jest to szczególnie ważne w małych firmach, gdzie aktualny, stosunkowo prosty system, funkcjonuje dość dobrze i wymaga jedynie niewielkiego wspomagania komputerowego (np. w księgowości bądź przy tworzeniu dokumentów tekstowych). Wspomniana metoda okazuje się jednak całkowicie nieprzydatna przy wystąpieniu bardziej nietypowych wymagań, których zazwyczaj nie spełniają dostępne na rynku pakiety komercyjne, robione "dla ogółu". System "z półki" nie zlikwiduje także wspomnianych "wąskich gardeł". Oprócz tego, zakupione pakiety zawierają często wiele opcji całkowicie nieprzydatnych, a nie mają funkcji wprost niezbędnych do prawidłowego funkcjonowania konkretnej firmy.

Ostatnią wadą tego rozwiązania jest to, że systemy "z półki sklepowej" są raczej pomocą dla poszczególnych pracowników firmy, nie zaś dla przedsiębiorstwa jako całości. Nawet jeśli komputery są połączone w sieć, nie można o nich powiedzieć, że są zintegrowane; sama sieć nie zapewni bowiem sprawnej wymiany informacji, potrzebne jest do tego specjalistyczne oprogramowanie dostosowane do potrzeb konkretnej organizacji.

System na zamówienie

Druga metoda wdrażania systemu informacyjnego polega na zatrudnieniu grupy specjalistów od inżynierii systemowej (najlepiej firmy świadczącej tego typu usługi) w celu przeprowadzenia analizy struktury przedsiębiorstwa i przygotowania pełnego zestawu sprzętu i oprogramowania wspomagającego lub zastępującego aktualny system informacyjny (komputerowy bądź "papierkowy"). Nie polecałbym tu, szczególnie w przypadku dużych firm, zatrudniania osób prywatnych lub niewielkich zespołów rzekomych specjalistów. Renoma i referencje (sprawdzone!!!) są bowiem zazwyczaj najlepszą gwarancją, że pieniądze i czas nie zostaną wyrzucone w błoto.

Duży projekt nie powinien być także zlecany grupom informatyków, którzy jedynie okazyjnie współpracują ze sobą. Wykonawcą poważnych projektów musi być zintegrowany zespół specjalistów o odpowiednich kwalifikacjach i doświadczeniu (a nie tylko informatyków, ale i osób znających się nieco na strukturze przedsiębiorstw, psychologii itp.). Zlecenie projektu np. absolwentowi informatyki, który w wolnym od innych zajęć czasie pisze programy w Turbo Pascalu, to często stosowana w Polsce metoda, która zazwyczaj kończy się przerwaniem projektu i obustronnymi stratami, bądź też dostarczeniem systemu nie spełniającego podstawowych wymagań.

Podstawowe zalety tworzenia systemu na zamówienie to możliwość dokładnego dostosowania systemu do wymagań przedsiębiorstwa, co czasem może nawet okazać się tańsze od kupna komercyjnego programu, którego możliwości będą wykorzystywane w znikomym procencie. Jak już wspomniałem, przy bardziej nietypowych wymaganiach bądź w większych firmach jest to jedyna droga postępowania.

Niestety, tworzenie systemu informacyjnego "na zamówienie" wiąże się z dużym ryzykiem. Bazujemy tu bowiem na wiedzy i doświadczeniu praktycznie niesprawdzonych osób (jedynie w przypadku renomowanych, dużych firm mamy pewną gwarancję jakości), zaś produkt który otrzymamy może okazać się niepełny, co wiąże się z kolejnymi inwestycjami. Dlatego też przy projektach systemów informacyjnych najważniejsza jest dokładna analiza i ścisła współpraca klienta z wykonawcą. Jedynie to może zaowocować w postaci dobrego produktu końcowego.

Inne wady tego rozwiązania to bliżej nieokreślony i często wymykający się spod kontroli koszt zarówno czasowy jak i finansowy (zazwyczaj wyższy niż w przypadku systemu "z półki"), a także niemożność zobaczenia systemu przed jego kupnem (klient wkłada pieniądze w projekt często tak naprawdę nie wiedząc co w rezultacie otrzyma).

Wizyta u szewca

Narzuca się tu bardzo obrazowe porównanie; otóż zakup systemu informacyjnego w dużym stopniu przypomina kupno nowych butów. Jak wiadomo, większość osób kupuje buty w sklepie obuwniczym (lub na bazarze); przemawia za tym duży wybór gotowych rozwiązań, możliwość przetestowania produktu na miejscu (przymierzenia, przespacerowania się w nowym obuwiu), wreszcie stosunkowo niska cena. Buty kupione w sklepie obuwniczym często jednak źle leżą na stopie i po pewnym czasie okazują się wadliwe lub niewygodne, zaś próby reklamacji kończą się niepowodzeniem wobec braku gwarancji.

Bardziej wybredny klient, zamiast chodzić po sklepach z obuwiem wybierze się do renomowanego zakładu szewskiego, gdzie będzie musiał wydać więcej pieniędzy i dłużej poczekać, lecz buty zostaną dostosowane do jego nawet najbardziej nietypowych wymagań. Jeśli szewc okaże się dobrym specjalistą (co w przypadku długo istniejących zakładów jest prawie pewne), buty takie wytrzymają znacznie dłużej niż wytwarzane fabrycznie, zaś wszelkie reklamacje powinny zostać uwzględnione w ramach gwarancji, bez dodatkowych kosztów.

Decyzja, czy wybrać się do szewca czy do sklepu obuwniczego, zależy całkowicie od klienta i to on musi choć częściowo być w stanie określić swoje wymagania. Tak samo jest w przypadku systemu informacyjnego; dobrze więc zasięgnąć specjalistycznej porady zanim podejmiemy pochopną decyzję, która może nas w przyszłości sporo kosztować.

Czego szukać u wykonawcy?

Ze względu na fakt, że inżynieria systemowa jest stosowana w naszym kraju od niedawna, większość firm świadczących tego rodzaju usługi nie ma jeszcze wyrobionej pozycji rynkowej i opinii użytkowników(oczywiście z wyjątkiem firm o renomie światowej, co jeszcze nie zawsze oznacza, że polski oddział będzie dorównywał placówce macierzystej). Zlecające wykonanie systemu przedsiębiorstwo powinno więc dokonać świadomego wyboru zleceniobiorcy, na podstawie pewnych widocznych cech jego postępowania, świadczących często o słabościach, które z kolei mogą mieć wpływ na jakość dostarczonego produktu.

Pierwszy warunek niezbędny do zaprojektowania dobrego systemu to ścisła współpraca wykonawcy i klienta (zleceniodawcy). Sprowadza się to do pełnej infiltracji przedsiębiorstwa w którym ma zostać wdrożony system. Dogłębną analizę przeprowadza się w celu uzyskania jak największej liczby informacji o aktualnej strukturze i o wymaganiach dotyczących wdrażanego systemu. Jeśli więc potencjalny wykonawca nie będzie wykazywał zainteresowania strukturą przedsiębiorstwa (co niestety często jest widoczne dopiero po rozpoczęciu pracy nad projektem), możemy być prawie pewni, że dostarczony produkt będzie bezużyteczny.

Należy tutaj zauważyć, że mimo, iż zleceniobiorca stara się uzyskać potrzebne mu informacje, często bywa to niemożliwe ze względu na niechęć pracowników firmy do współpracy. Należy więc maksymalnie umożliwić "natrętnym analitykom" (osobom pracującym dla wykonawcy, mającym za zadanie zanalizowanie aktualnej struktury firmy i zbadanie wymagań dotyczących nowego systemu) zarówno częste przeprowadzanie rozmów (nawet z pracownikami, którzy wydają się mieć znikomy wpływ na przepływ informacji w firmie) jak i organizowanie zebrań w celu uzupełnienia wiadomości i uzgodnienia szczegółów z klientem oraz przyszłymi użytkownikami systemu. Trzeba także zaufać wykonawcy i być gotowym powierzyć mu nawet pewne utajnione informacje. Przedsiębiorstwo, które nie jest przygotowane na bliską współpracę z analitykami i projektantami (osobami odpowiedzialnymi za stworzenie logicznego projektu nowego systemu na podstawie materiałów zgromadzonych przez analityków), powinno zrezygnować z wdrażania nowego systemu.

Drugą ważną cechą, jakiej należy szukać u wykonawcy (konkretnie u analityków i projektantów) jest komunikatywność. Efektywne gromadzenie informacji w dużej mierze zależy od tego, czy będą oni potrafili porozumieć się z pracownikami przedsiębiorstwa, najczęściej reprezentującymi zupełnie inny poziom wiedzy specjalistycznej. Jak ognia należy unikać fachowców, którzy w rozmowie nadużywają "slangu komputerowego". Są to bowiem osoby, które nie mają najmniejszych szans na uzyskanie jakichkolwiek informacji o strukturze firmy, nie mówiąc już o późniejszym uzgadnianiu projektu z niedoświadczonymi użytkownikami. Dobry analityk musi więc przede wszystkim umieć rozmawiać z ludźmi uważnie ich słuchać.

Fachowcy w dziedzinie inżynierii systemowej nigdy nie pracują "na żywioł". Istnieje wiele wypracowanych od lat światowych metodologii (ścisłych schematów postępowania) opisujących wdrażanie systemów informacyjnych do przedsiębiorstw. Wykonawca powinien posługiwać się jedną z takich metodologii, w przeciwnym wypadku pogubi się w swojej pracy, co będzie kosztować zleceniodawcę sporo czasu i pieniędzy.

Najlepsze metodologie to standardy stosowane w krajach zachodnich: SSADM ý rządowa norma w Wielkiej Brytanii, Irlandii, Malcie i Hongkongu, Merise - system stosowany we Francji, NIAM z Holandii czy Dafne - Włochy. Można też stosować normy jak SSM czy COMPACT (przeznaczone dla mniejszych systemów biurowych), czy połączenie amerykańskich metod SADT i HOOD (przeznaczonych do definiowania systemów nie opierających się na bazach danych). Dobre rezultaty dać może także stosowanie metodologii stworzonych przez zachodnich naukowców (Yourdon, DeMarco, GaneýSarson, Ptech, Booch) lub też duże koncerny komputerowe jak Oracle (metodologia CASE*Method), czy IBM (AD/Cycle).

Przy tworzeniu systemu zleceniobiorca powinien posługiwać się odpowiednim oprogramowaniem typu CASE (Computer Aided Software Engineering). Stosowanie takich narzędzi zapewni, że system będzie przygotowany zgodnie z przyjętą metodologią. Zmniejszy to także koszty testów i poprawek oraz zapewni bardzo dobrą dokumentację niezbędną do przyszłej obsługi. Narzędzia CASE są zazwyczaj ściśle związane z konkretną metodologią (np. Oracle CDE z CASE*Method, LBMS System Engineer z SSADM) lub ich mieszanką (np. Digital COHESION). Często producenci narzędzi CASE albo dużych systemów baz danych oferują usługi wdrożeniowe; tego typu firmy są zazwyczaj gwarancją jakości, jako że korzystają z własnych produktów, zaś ich renoma wyklucza złą obsługę klientów.

Niestety w wielu przypadkach zleceniobiorca może jedynie chwalić się faktem, że stosuje daną metodologię i narzędzia CASE, zaś w rezultacie postępować po swojemu (bazując na niewiedzy klienta), co zazwyczaj nie wychodzi na dobre zleceniodawcy. Warto więc by zleceniodawca poświęcił trochę czasu na zapoznanie się z danym standardem i upewnienie się, że będzie on rzeczywiście stosowany.

Metodologie inżynierii systemowej oprócz schematu działań dla analityków, projektantów i wdrożeniowców podają także metody komunikacji z użytkownikiem w postaci diagramów, macierzy, tabel, katalogów, itp. (zwane technikami modelowania systemów). Dobry analityk lub projektant powinien potrafić przelać na papier swoją wizję systemu (stworzoną na podstawie zgromadzonych informacji), jako zestaw diagramów i innych pomocy wizualnych, a następnie przedstawić ją użytkownikom w celu uzyskania aprobaty.

Pamiętajmy, pisemna aprobata projektu przedstawionego przez wykonawcę oznacza zatwierdzenie prac nad systemem w formie w jakiej został on przedstawiony. Za nic w świecie nie należy więc aprobować czegoś, czego nie jesteśmy pewni. Usuwanie błędów i nieporozumień powstałych w fazie projektu kosztować będzie znacznie więcej podczas implementacji, gdzie trzeba będzie zmienić fizyczny kształt systemu. Należy więc wymagać, aby przedstawione materiały były w pełni zrozumiałe dla użytkowników. W przeciwnym ich zmiana w późniejszym terminie może okazać się wprost niemożliwa.

Prototypowanie, czyli recepta na sukces

Metodologie inżynierii systemowej mają pewną wadę, która znacznie zmniejsza ich skuteczność przy analizie i projektowaniu większych systemów oraz w sytuacjach, gdy wymagania użytkownika nie są sprecyzowane lub też przyszli użytkownicy nie mieli dotychczas kontaktu z komputerem. Otóż przy stosowaniu tego typu metodologii klient nie widzi produktu aż do momentu, gdy zostanie on całkowicie ukończony. Niemożliwe jest więc samodzielne przetestowanie systemu czy też wprowadzenie poprawek do elementów, widocznych dopiero w momencie, gdy system ma już do pewnego stopnia określoną strukturę. W takiej sytuacji nie pozostaje nam nic innego jak tylko wymagać od wykonawcy zastosowania technologii prototypowania.

Prototypowanie może uzupełniać dowolną metodologię inżynierii systemowej. Wykonawca który będzie twierdził, że stosowana przez niego metodologia nie przewiduje prototypowania, nie jest dobrym fachowcem. Kontynuacja współpracy z taką firmą powinna być dobrze przemyślana. Prototypowanie, jak sama nazwa wskazuje, polega na przygotowywaniu kolejnych prototypów (modeli rzeczywistych) systemu, w celu zgromadzenia większej liczby informacji czy też upewnienia się, że przygotowany projekt systemu odpowiada klientowi. Tworzenie prototypów jest kosztowne, lecz pieniądze wydane na lepsze przygotowanie systemu zwrócą się przy jego użytkowaniu.

Istnieje wiele metod prototypowania; dwie najważniejsze to prototypowanie inkrementalne i ewolucyjne. Prototypowanie inkrementalne polega na tym, że wykonawca tworzy w pełni funkcjonującą część systemu i prezentuje ją użytkownikowi. Jeśli wersja zostanie zaakceptowana, dobudowywane są do niej następne "kawałki", aż skompletowany zostanie cały system. Prototypowanie ewolucyjne polega zaś na przedstawieniu klientowi wersji całego systemu, lecz pozbawionej wielu funkcji (można to określić jako system "w stanie surowym" lub ubogą wersję "demo"). Po przetestowaniu i konsultacjach z użytkownikami prototyp jest modyfikowany i rozbudowywany o nowe warstwy, cały czas obejmując jednak całość systemu. Ta metoda jest bardzo opłacalna dla zleceniodawcy, ponieważ może on w dowolnym momencie stwierdzić, że aktualna wersja systemu już mu odpowiada i nie jest konieczne dalsze jej rozbudowywanie (najczęściej dzieje się tak, gdy klientowi zaczyna brakować pieniędzy lub czasu na kontynuowanie projektu).

Do elementów prototypowania można zaliczyć także tworzenie statycznych modeli systemu (prototypów ekranów, formularzy, raportów), które mają służyć jedynie do przedstawienia użytkownikowi przyszłego wyglądu systemu, nie prezentują jednak jego funkcjonalności.

Stosowanie prototypowania w małych systemach może całkowicie zastąpić metodologię inżynierii systemowej. Przy małych projektach bardziej opłacalne jest często stworzenie programu "od ręki", a następnie ý na podstawie gromadzonych informacji w mniej lub bardziej zorganizowany sposób -konstruowanie następnych wersji, aż do momentu gdy klient będzie całkowicie zadowolony z otrzymanego produktu.

Co mówią statystyki?

W 1984 r. w USA technologia inżynierii systemowej była z pewnością znacznie lepiej rozwinięta niż aktualnie w Polsce. A jednak, spośród wszystkich projektów finansowanych przez rząd ok. 50% dostarczonych systemów nigdy nie wykorzystano (nie spełniały wymagań, zaś modyfikacje byłyby zbyt kosztowne). Aż 25% systemów nigdy nie ukończono, ok. 20% odrzucono lub gruntownie przerabiano (rozpoczynano prace od początku); zaledwie 3% systemów spełniło wymagania po przeróbkach, a następnie zostało zaakceptowane przez klienta i tylko ok. 2% systemów, nadawało się do wykorzystania od razu po dostarczeniu. Liczby te są wprost przerażające; możemy sobie wyobrazić bowiem co grozi przedsiębiorstwom decydującym się na wdrożenie systemu komputerowego, jeśli wykonawcy nie będą spełniać odpowiednich warunków.

Modyfikacje systemu informacyjnego będą tym tańsze im wcześniej wykryta zostanie konieczność ich przeprowadzenia. Najmniej kosztuje usunięcie błędów w fazie analizy i projektu, najwięcej w fazie testów lub po wdrożeniu systemu. Z danych statystycznych wynika, że spośród funduszy przeznaczonych na systemy informacyjne, zaledwie 33% to koszty analizy, projektu i wdrożenia. Pozostałe 67% stanowią koszty obsługi technicznej i utrzymania systemu (naprawa błędów wykrytych podczas regularnej pracy systemu, szkolenia, następne wersje, dostosowywanie systemu do zmieniających się warunków pracy, itp.). Jest to jeszcze jeden znak stanowiący o użyteczności dobrze przeprowadzonej analizy i projektu.

Warto dodać, że nie było chyba jeszcze sytuacji, system kosztował mniej niż przewidywano przed rozpoczęciem projektu. Aby projekt komputeryzacji przedsiębiorstwa nie doprowadził do jego bankructwa, nieodzowny jest więc margines finansowy i czasowy.


TOP 200