Month: October 2007

Przetwarzanie informacji to tabele te zaś są prozą życia menedżerów :). Podczas wielu projektów związanych z kolekcjonowaniem wymagań na system IT wielokrotnie pojawiał się problem raportów i podobnych działań. Bardzo często wymagania tego typu są specyfikowane za pomocą wzorów raportów. Ma to jednak poważną wadę: zamyka lub utrudnia drogę rozwoju tej funkcjonalności (nie licząc usług płatnego definiowania kolejnych typów raportów świadczonych przez wykonawców systemów). Raporty jednak to tylko wierzchołek góry lodowej, “pod wodą” są dane i ich model czyli sposób zarządzania nimi i ich postać.

Ważną cechą interfejsu użytkownika jest możliwość decydowania o postaci tabel z danymi na ekranie. Nie zawsze uda się łatwo stworzyć nowy raport jednak można w wymaganiach zawrzeć oczekiwanie dowolnego kształtowania tabeli prezentującej wyniki. Niby małe a cieszy. Wybór kolumny do sortowania, filtry i wiele innych. Obiektowe narzędzia coraz częściej zasilane są bibliotekami gotowych rozwiązań, których celem jest między innymi podnoszenie użyteczności interfejsu użytkownika.

Tu okazuje się, że kluczem jest … model danych na etapie definiowania wymagań. Stara zasada: jakie dane taki wynik ich przetwarzania sprawdza się po raz kolejny. Oczywiście nie mam zamiaru udawać tu programisty. Jednak jako analityk współpracującymi z programistami nie raz słyszałem, że model danych to podstawa ich pracy. Przetwarzane informacje to dane biznesowe, nikt poza ich użytkownikiem i analitykiem nie zna ich kontekstu i tylko ta “para” jest w stanie wykonać “dobry” model danych. Elementy aplikacji pracujące na tabelach i same tabele warto więc szczegółowo przeanalizować gdyż ich późniejsza zmiana jest albo bardzo kosztowna albo wręcz niemożliwa w pewnych rygorach czasowych projektów.

Bardzo pomocna jest tu technologia EJB, za Wikipedią:

Enterprise Java Beans (EJB) – technologia będąca jednym z elementów specyfikacji J2EE. Innymi słowy EJB to pewien podzbiór interfejsów J2EE, uważany za jeden z najbardziej zaawansowanych elementów.

Idea EJB opiera się na tworzeniu komponentów, które mogą być osadzane na serwerze (tzw. bean containerze) i wołane zdalnie poprzez protokół RMI over IIOP. Ogólnie wyróżnia się 3 rodzaje komponentów EJB:

  • sesyjne EJB (ang. session EJB),
  • encyjne EJB (ang. entity EJB),
  • sterowane komunikatami EJB (ang. message driven EJB).

Każdy z tych rodzajów komponentów ma różne zastosowanie. Sesyjne EJB są używane do umieszczania w nich logiki aplikacji – czyli kodu, który przetwarza dane. Encyjne EJB reprezentują w sposób obiektowy dane (np. przykrywają relacyjną bazę danych). EJB sterowane komunikatami znajdują zastosowanie w przetwarzaniu asynchronicznym i w zaawansowanych modelach współpracy oprogramowania. Np. model abonent-dostawca: bean rejestruje się jako dostawca pewnej usługi, klienci mogą zarejestrować się jako abonenci.

Główną zaletą EJB jest nakierowanie projektanta na pewne sprawdzone sposoby rozwiązania typowych problemów w systemie rozproszonym: zarządzanie połączeniami, transakcja rozproszona, mapowanie danych na model obiektowy itp. Mimo to użycie niektórych elementów tej technologii wydaje się dość kontrowersyjne. Np. stosowanie encyjnych EJB oznacza rezygnację z przetwarzania danych w modelu relacyjnym. Wszelki dostęp do danych (w tym i masowy) odbywa się poprzez obiekty napisane w języku Java, a zatem niesie ze sobą ograniczenia wydajnościowe i zajętości zasobów. Mimo iż technologia EJB jest popularyzowana przez teoretyków projektowania systemów trudno doszukać się pełnego wykorzystania tej technologii w dużych systemach, w których wydajność odgrywa istotną rolę (zwłaszcza encyjnych EJB).

Źródło: “http://pl.wikipedia.org/wiki/Enterprise_JavaBeans”

EJB to między innymi technologia bezpiecznego manipulowania danymi w systemie. Kłopoty “niedopasowania” pomiędzy obiektowym a relacyjnym modelem danych spędzają sen z powiek niejednemu projektantowi. W prostych systemach można sobie z tym stosunkowo łatwo poradzić stosując proste wzorce obiekt-tabela lub obiekt-wiersz. Jednak przy rozbudowanych systemach te wzorce już się nie sprawdzają. Należy stosować zaawansowane (i bardzo trudne) techniki mapowania obiektowo-relacyjnego (ang. ORM). EJB łączy zarządzanie danymi, reguły biznesowe i udostępnianie ich użytkownikom z możliwością korzystania z serwerów baz danych RDBMS. Jedną z technik jest stosowanie Java Persistence API (zapis danych do bazy oznacza w technologii obiektowej obiekty utrwalane o stereotypie Persistence).

Polecam bliższe zajęcie się tym szczególnie projektantom i analitykom gdyż modele danych to najczulsza cześć projektów systemów, szczególnie biznesowych. Zainteresowanych zapraszam do lektury artykułów Krzysztofa Barteczko Tabele w Java 6, Piotra Kochańskiego JBoss – aplikacje przyjazne użytkownikom, (Software Developer’s Journal, Wrzesień 2007) oraz na stronę JavaSoft.

W tym samym numerze warto przeczytać artykuł Rafała Kędzierskiego Dziesięć największych problemów w projektach informatycznych. Nie będę tu cytował jego obszernych fragmentów, odsyłam do numeru. Warto tu jednak przytoczyć dane opublikowane przez Standish Group w 2004 roku: Najczęstsze przyczyny niepowodzenia projektów informatycznych: 30% – zarzucone, 54% – przekroczony budżet, 66% – brak spełnienia wymagań nabywcy (!), 90% – przekroczony czas.

Co ciekawe poza Java i EJB oczywiście mamy środowisko .NET, Microsoft nie zasypia gruszek w popiele. Podobna tematykę dla tej platformy znajdziecie w artykule Sylwestra Lewandowskiego Enteprice Library 3.1 w następnym numerze. (Software Developer’s Journal, Październik 2007)

MSI Polska:  Jaki jest stopień wykorzystania narzędzi informatycznych w sektorze przemysłowym?

Jarosław Żeliński: Moim zdaniem stopień wykorzystania technologii wspierających przetwarzanie informacji jest w sektorze przemysłowym największy z uwagi na stopień komplikacji większości procesów produkcyjnych. Trudno jest ocenić o ile więcej bo chyba nikt takich badań nie prowadził.  Moim zdaniem każdą firmę można podzielić na podobne obszary jednak ile by ich nie było tylko firmy produkcyjne będą miały obszar produkcji. Firmy handlowe, usługowe, logistyczne niewątpliwie mają skomplikowane procesy biznesowe jednak nie odbiegają one w swej istocie zbytnio od tych w firmach produkcyjnych.  Systemy informacyjne specyficzne dla produkcji są natomiast niszą na rynku właśnie z uwagi na ograniczony rynek na nie (tylko firmy produkcyjne) dlatego dodatkowo są kosztowniejsze.

[MSI]: Czy wartość inwestycji tego sektora w zakresie IT będzie się powiększać?

[JŻ]: Jestem przekonany, że wartość inwestycji w systemy wspomagające procesy produkcji będą rosły. Kluczowym powodem jest narastający trend rynkowy, którym jest produkcja krótko seryjna nie raz  na żądanie pojedynczych zamówień. Narzuca to bardzo restrykcyjne reżimy dla produkcji, których głównymi wymaganiami są obniżanie kosztów, skracanie czasu projektowania i wytwarzania oraz dostarczania produktów. Kolejnym ważnym procesem jest wsparcie odbiorcy po zrealizowaniu dostawy. Wszystko to wymaga obecnie korekty lub nawet zmiany modeli biznesowych oraz narzuca wprowadzanie automatyzacji wszędzie tam gdzie tylko to możliwe. W produkcji automatyzacja praktycznie zawsze związana jest z technologiami informatycznymi stąd postrzegam w tym obszarze duży potencjał wzrostu, moim zdaniem znacznie wyższy niż średnia w branży.

[MSI]:  W jakim kierunku rozwiną się rozwiązania branżowe-dedykowane? Jak jest przyszłość SOA, SaaS, outsourcingu w sektorze przemysłowym?

[JŻ]: SOA, SaaS czy outsourcing to nie technologie i nawet chyba nie architektury. Moim zdaniem to nowe modele biznesowe. Model biznesowy tym się różni od technologii, że opisuje strukturę łańcucha wartości a nie cechy rozwiązań technologicznych. SOA to wewnętrzny model biznesowy jaki opisuje relacje pomiędzy obszarem zarządzania firmą a obszarem dostarczającym zasoby IT, tu sprzęt i oprogramowanie najczęściej dostarcza dział IT. Z perspektywy biznesowej części pracowników organizacji technologie IT stanowią zasoby świadczące konkretne i nazwa usługi. Fakturowanie, księgowanie, raportowanie to funkcjonalności systemów, systemy te zaś to zasoby firmy.  SaaS to nic innego jak nowy model biznesowy dostawców tych technologii. Stają się oni niejako zewnętrznym dostawcą zasobów IT podobnie jak wewnętrzny dział IT. Outsorcing to już powoli proza życia większości firm, które wykonanie czynności nie mających kluczowego znaczenia dla firmy, na różnych zasadach zlecają zewnętrznym, wyspecjalizowanym wykonawcom. Wszystkie te modele to różne odmiany łańcucha wartości, w którym wszystkie wymienione podmioty zajmują różną pozycję jednak są ze sobą powiązane właśnie tym, że każda z tych firm na swoim etapie wnosi wartość do tego łańcucha. Wykorzystana tu technologia moim zdaniem ma drugo- a nawet trzeciorzędne znaczenie.  Rozwiązania dedykowane wpasowują się doskonale w ten model biznesowy gdyż jednym z powodów czyniących z modeli SOA, SaaS i outsourcingu ważne elementy strategii firm jest to, że znacznie obniżają ryzyko ich stosowania, stosowania rzadkich i niszowych rozwiązań a takimi są właśnie rozwiązania branżowe czy dedykowane.

Jarosław Żeliński, Analityk, IT-Consulting.pl

Notatka:

Wywiad ukazał się w: MSI Polska, Raport MSI100: IT w sektorze przemysłowym, Październik 2007: Dostawcy oprogramowania dla sektora przemysłowego w Polsce, http://www.msipolska.pl

Zostałem zaproszony na tę konferencję zarówno jako patron medialny (jako wydawca serwisu IT-Consulting.pl) oraz jako ekspert.

Wydaje mi się, że to jedna z ciekawszych konferencji jakie się odbywają w naszym kraju w tej branży gdyż gromadzi z jednej strony czołowe kadry naukowe a z drugiej przedstawicieli liczących się podmiotów na rynku i przedstawicieli instytucji rządowych czyli jednego z największych beneficjentów technologii ICT (ang. Information and Communication Technology).  Poniżej moje refleksje z wybranych referatów. Pominięcie niektórych z nich to efekt mojego pewnego subiektywizmu w ich ocenie, starałem się zwrócić uwagę na pewne wybrane aspekty związane z obszarem moich zainteresować i mam nadzieję czytelników portalu. Dla porządku zamieszczam na końcu artykułu pełną listę referatów i ich autorów.

Dzień pierwszy
Po przedstawieniu członków rozpoczęły się sesje tematyczne.

[[Dr inż. Czesław Bielecki]]: Architektura i jej język
Językiem architektury są nie formy a fakty jej powstania. Architektura to trwałość, użyteczność i piękno. Wykład o sztuce jaką jest tworzenie. Teza, że sztuką architektury jest nie samo rysowanie a tworzenie rzeczy rzeczywistych. Istotną cechą dzieł architektonicznych jest styl architekta, dzięki któremu powstają dzieła jednakowo dobre a różniące się między sobą. Wykład bardzo ciekawy, uzmysłowił (mam nadzieję) wszystkim fakt, że dzieło architekta powstaje także w czwartym wymiarze jakim jest czas. Nawiązując do budownictwa powstający system informacyjny powstaje w czasie, w czasie tym ewoluuje także otoczenie projektu, które silnie wpływa (zmienia) na powstający system. Stawia tezę, że złym jest projekt, który nie uwzględnia w swej architekturze faktu upływu czasu i następujących zmian wokoło. Paradoksalnie (a może nie) opis sztuki tworzenia budowli doskonale wpasowuje się w obiektowy model przyszłego dzieła. Budowa struktury wg. C.Bieleckiego przewiduje budowę struktury, wybór zdolnych kadr do niej i pozwolenie by ta zbudowała realizatorów. Czy jednak nie ma zagrożenia, że ta zdolna i być może wyjątkowo etyczna kadra pozostanie taką? Siłą niszcząca ten pomysł może być udowodnione zjawisko psychologiczne polegające na tym, że hierarchia tworzy autorytety (nie raz pozorne), te zaś są źródłem powolnego wynaturzenia pierwotnego pomysłu na “mądrość” systemu. Moim zdaniem nie ma tu sprzężenia zwrotnego i to tworzy ryzyko utraty stabilności takiego systemu w szczególności ryzyko jego zwyrodnienia.

[[Waldemar Pieńkowski]], Comarch: projekt [[e-Puap]]
Wykład dotyczył głównie projektu e-PUAP, celowości jego powstania i celowości kontynuacji. Opisano przykłady zastosowań np.. do składania podań, wnoszenia opłat skarbowych. Referat przydatny dla każdego kto chciałby poznać wewnętrzną strukturę systemu.

[[Dr inż. Andrzej Sobczak]], SGH: [[Architektura Korporacyjna]]
Ciekawy wykład o korporacyjnej architekturze organizacji. Przesłaniem, jak zrozumiałem, jest udokumentowanie sposobu działania (np. modelami procesów), strukturalizacja zasobów czyli ich zdefiniowanie i zbudowanie, udokumentowanie jej hierarchicznej struktury, określenie celowości posiadania każdego zasobu oraz coś co jest w najmniejszym stopniu zrealizowane: posiadanie jednego i spójnego modelu informacji (danych). [[Siatka Zachmana]] jest obecnie traktowana jako standard opisu i definiowania metody wdrażania architektury korporacyjnej (AK) jednak nie stanowi sobą metody wdrożenia tej struktury. Drugim przykładem opisu sposobu wdrożenia AK jest [[Integrated Architecture Framework]]. Kolejny przykład: [[Enteprice Unified Proces]] to bazująca na [[RUP]] metodyka wdrożenia AK co osobiście postrzegam jako wadę. Powodem mojej opinii jest zbytnie nastawienie na obiektowy model, który jest trudny do stworzenia biorąc pod uwagę, że organizacje maja budowę raczej procesowo-hierarchiczną. Drugim powodem mojej opinii jest ciężka sformalizowana forma tej metodyki. Wydaje mi się po zapoznaniu z treścią referatu, że dobrym wyznacznikiem jest siatka Zachmana jako metoda zdefiniowania celu projektu jakim może być wdrożenie architektury korporacyjnej w organizacji . Metoda wdrożenia, realizacji naszego celu powinna pozostać w gestii wykonawcy. To daje szansę na to, że użyta zostanie metodyka znana już w organizacji i opanowana przez nią.

[[Borys Stokalski]], [[Infovide-Matrix]]: 20 lat architektury korporacyjnej
Kolejna próba podsumowania efektów działań, których celem było lub jest porządkowanie czyli wdrażanie korporacyjnej architektury. Stokalski wskazał na coś co często zwraca także moją uwagę a mianowicie na coś co nazywam samosterującym się systemem, któremu często daleko do doskonałości ale wbrew wszelkim regułom działa i do długo. Stokalski jest zwolennikiem tezy, z którą także się zgadzam: sztuka tworzenia architektury korporacyjnej i jej docelowa skuteczność to sztuka stworzenia jej modelu biznesowego. Kontynuacja prezentacji Infovide prowadzona była przez Pana Piotra Walesiaka (także Infovide-Matrix) dotyczyła przykładowej implementacji architektury korporacyjnej i jego uwag do tego projektu.

[[Rafał Hanys]], [[Agencja Rozwoju Aglomeracji Wrocławskiej]]: Infrastruktura korporacyjna w służbie administracji publicznej
Zwrócono uwagę na specyfikę pracy urzędów administracji publicznej: jeżeli przeciętna firma ma kilka do kilkudziesięciu produktów to urząd np.. Wrocławski ma ich 240. Jest to liczba typów spraw, z których każda ma swoja procedurę. Są to przede wszystkim decyzje administracyjne. Stworzenie AK wymaga zrozumienia łańcucha wartości w regionie i miejsca jakie zajmuje w nim Urząd Administracji Publicznej. Bardzo ciekawe podejście pokazującej jak sprawność organizacji lokalnego urzędu buduje wartość danego regionu i jego atrakcyjność dla mieszkańców. Jednym z kluczowych elementów funkcjonowania organizacji jest rotacja kadry. W urzędach jest to szczególnie widoczne i bolesne. Ważną rolą systemu informatycznego, wspierającego korporacyjny model organizacji, jest akumulacja wiedzy i doświadczeń pracowników i zarządzanie nimi. Ciekawy przykład użycia zasady Pareto: jakość funkcjonowania urzędu to w 80% zmiany organizacyjne a tylko w 20% systemy IT.

[[Arkadiusz Maliszewski]], [[ABG SPIN]]: Szanse i pułapki ładu korporacyjnego, czyli jak powstają i upadają duże organizacje
Architektura korporacyjna, blaski i cienie. Teoria kosztów Helmuta V. Glasera, koszty złego humoru szefa, koszty manipulowania informacją (kto wie ten ma władzę), zła struktura organizacyjna to koszty zbędnej centralizacji prowadzącej do pochłaniania 80% czasu wyższego kierownictwa i przestojów ich wszystkich podwładnych. Firmy doradcze najczęściej koncentrują się na walce z kosztami mierzalnymi, wykazywanymi w rachunkowości (bo tylko to są w stanie szybko zbadać), nie biorą w ogóle pod uwagę niemierzalnej części kosztów będących efektem złej organizacji i złego modelu biznesowego. Dwie definicje pracy: taylorowska – człowiek to niewolnik, który nie lubi pracy należy go zmusić, psychologiczna – człowiek to ochotnik który lubi robić to co mu sprawia przyjemność a przy okazji mu za to płacą.

Dzień drugi
[[Dr inż. Grzegorz Bliźniuk]], [[MSWiA]]: Gdzie i dla kogo są pieniądze – czyli poszukiwanie prawdy o finansowaniu informatyzacji
Dzień rozpoczął referat Ministra Grzegorza Bliźniuka. Minister przedstawił plany finansowania projektów ITC w Polsce na najbliższe lata, zaprezentował wydatki i ich cele dotychczasowe i planowane projekty. Miło się słuchało tego, że rząd planuje wydanie setek milionów na IT. To co mnie ucieszyło to to, że projekty rządowe IT pojawiające się jako “afery” w prasie stanowią, powiedział bym, margines tego co zostało faktycznie zrobione lub jest w trakcie realizacji. Piszę “afery” bo moim zdaniem dziennikarze korzystają, w każdym razie ci żyjący z “faktów prasowych”, z tego że adrenalinę u większości Polaków generuje każda kwota przewyższająca ich roczne wynagrodzenie. Takie działania niestety psują wizerunek i tych projektów i branży i agend rządowych będących beneficjantami tych systemów. Minister zaś jest i optymistą i profesjonalistą dlatego obecność na tego typu konferencjach poprawia mi humor i wiarę w to, że nie ma tragedii takiej jaką opisuje czasem prasa.

[[mgr Krzysztof Głomb]], Prezes Stowarzyszenia “[[Miasta w Internecie]]”: Oceny i wnioski Stowarzyszenia “Miasta w Internecie”
Ta prezentacja była niejako uszczegółowieniem poprzedniej w obszarze działania Stowarzyszenia jednak zwrócono w niej uwagę na pewną specyfikę pracy Stowarzyszenia: inwestycje twarde (sprzęt, oprogramowanie itp..) powinny być poprzedzane badaniami i analizami. Zwrócono uwagę na to, że wiele nietrafionych inwestycji środków publicznych w IT to inwestycje, które powstały doraźnie bez badań nad ich zasadnością. Nie zapominajmy, że inwestycje rządowe mają na celu usprawnienie pracy urzędów i uatrakcyjnienie regionów poprzez ułatwienie życia w nich. Tak więc inwestycje tego rodzaju powinny być w większości poprzedzone analizami i projektami badającymi jak i czy w ogóle dana inwestycja przyczyni się do tak zdefiniowanego celu. Hm… Racje ma moim zdaniem Pan Krzysztof Głomb: celem jest usprawnienie, technologia może być jednym z możliwych narzędzi wdrożenia tego usprawnienia. Ale definiowanie celów i środki osiągania tych celów powinny być właśnie przedmiotem badań by pieniądze wydawać świadomie.

O wolnym oprogramowaniu
Prezentacja dotycząca wolnego oprogramowania. To nie jest za darmo, to jest oprogramowanie mające pewne ograniczenia, nie bierze się pod uwagę, że szkolenia nie są za darmo a za czas trenera, także zainstalowanie 200 sztuk darmowego Open Office’a należy zapłacić. Żadne OS nie da nam np. SSL. Za to paradoksalnie istnienie Open Source na rynku stymuluje wręcz podejście do systemów zgodne z SOA bo pozwala na dobór komponentów stosownie do ryzyka ich stosowania i zmusza do uszanowania tego faktu dostawców systemów komercyjnych. Problem OS: zastanawia mnie i potwierdza zarazem tezę, którą głoszę od kilku lat: wartość dodana kodu programu jest znacznie mniejsza niż ceny za oprogramowanie oczekiwane przez ich dostawców, rynek to weryfikuje pokazując właśnie, że systemy OS mają na rynku popyt ale ich uzyskiwana cena to wartość jaką przedstawia dla użytkownika. Inne tezy stawiane przez prelegentów: Czy my nie lubimy monopolisty dla zasady czy nie lubimy go dopiero jak nadużywa swojej pozycji? W końcu szanujemy prawo autorskie malarzy, kompozytorów czy pisarzy dlaczego chcemy odebrać to prawo autorom rozwiązań technologicznych? Otwarty standard to jedno a konkretny produkt to inna sprawa. Stawianie ich obu na jednej linii jest nadużyciem. Nie wolno mylić środków komunikacji (np.. Alfabet łaciński) z komunikowanym i treściami (utwory literackie). Nie mylmy otwartych standardów z wolnym oprogramowaniem.

Czasami mam wrażenie, że niektóre środowiska OpenSource zachowują się podobnie do niektórych organizacji ekologicznych: chcąc zarobić blokują inwestycje w imię ochrony środowiska. Wielu związanych z OS ludzi po skończeniu studiów zatrudnia się w korporacjach produkujących komercyjne oprogramowanie… Sam korzystam z programów OpenSource jednak nie raz jak dana funkcjonalność staje się krytyczna dla mojej firmy komercjalizuje dany produkt. Tak więc produkty Open Source są moim zdaniem niewątpliwie kołem zamachowym dla wielu firm ale nie ekwiwalentem komercyjnych produktów rynkowych. Czy otwarte standardy i OS to “starocie” bo nowinki powstają w korporacjach? No nie bo celem jest model biznesowy a nie technologia.

Dyskusja o zamówieniach publicznych
Niektóre specyfikacje wymagań dyskryminują inne produkty? Czy wolno podać nazwę produktu w przetargu? Podanie pewnego znanego, posiadanego już rozwiązania zastępuje w pewien sposób specyfikację wymagań. np.. wiadomo, że pewien procesor tekstu zawiera kilka tysięcy cech funkcjonalnych, wiemy, że instytucja używa tego produktu, kto i jakim kosztem sprawdzi które z tych cech są używane w tej instytucji i kto weźmie na siebie ryzyko, że jakaś kluczowa cecha zostanie pominięta w specyfikacji? Rozwiązaniem może być także zakup pakietu pilotowego ale jak rozwiązać problem zakupu takich partii? Nie zapominajmy, że często chcąc kupić marynarkę w kolorze spodni niejako najprościej kupić ją od producenta tychże spodni… Wszystko wymaga po prostu oceny zasadności czyli po prostu indywidualnej analizy. Jak pomalować pokój na jednakowy kolor a całe mieszkanie w odstępach kwartalnych? Kupować farbę zawsze tego samego producenta. Pytanie brzmi więc: co planować? Malowanie każdego pokoju osobno czy pomysł na całe mieszkanie?

(przedruk: //it-consulting.pl//wp-content/uploads/2018/07/pressnewsdet.aspx?PressNewsId=2440)

Osobą odpowiedzialną za system IT zawsze będzie zamawiający.  Dlatego zamawiający powinien jednoznacznie opisać swoje oczekiwania i zrozumieć potem odpowiedź czyli propozycję ich wykonawcy. Menedżer nie musi uczyć się diagramów UML ale powinien rozumieć modele procesów tak by mieć możliwość ich oceny i zatwierdzania. Dlatego modele procesów powinny być tworzone metodami zrozumiałymi dla menedżerów, moim zdaniem nie jest to notacja UML. Notacja ta jednak jest niewątpliwie doskonałym narzędziem do udokumentowania i przekazania swoich oczekiwań przyszłemu wykonawcy systemu: integratorowi IT. Tak więc wykonaj model procesów biznesowych, określ które procesy chcesz informatyzować. Potem przygotuj na bazie tej analizy listę przypadków użycia przyszłego systemu, uzupełnij ją o model pojęciowy twojego biznesu i firmy i przekaż to do realizacji wykonawcy systemu. Na koniec pozostaje wdrożenie a to już osobny projekt :), socjologiczny.

Mały wstęp dla informatyków

Menadżera interesują procesy biznesowe a nie przypadki użycia. System IT kupujemy po to by te procesy wesprzeć a nie po to by mieć system.

Coraz częściej menedżerowie są jednak obciążani decyzjami  o oczekiwanej funkcjonalności systemów, za które potem płacą.   Paradoksem wielu nieudanych projektów jest to, że dostawcy rozwiązań IT po pierwsze dokumentują sami sobie wymagania, po drugie robią to metodami niejednokrotnie nieznanymi menadżerom (np.. właśnie diagramy UML), ci podpisują dokumenty nie przyznając się, że ich nie zrozumieli (takie strasznie mądre te kwity),  dostawca realizuje projekt a na końcu menadżer mówi: TO NIE TO CHCIAŁEM!

UML czyli jak napisać dokumentację niezrozumiałą dla jej adresata

Systemy często są opisywane od razu za pomocą przypadków użycia,  te zaś opisują zasoby ale już nie relacje między nimi.  Problem,  który przewijał się w większości referatów na konferencji to moim zdaniem mieszanie procesów, zasobów i produktów okraszone wplataniem w to tak zwanych przypadków użycia.  Do tego dochodzi wierność metodom analizy zorientowanym właśnie na przypadki użycia, które to metody są moim zdaniem niekompletne i powodują wiele nieporozumień.  Przypadki użycia to podzbiór pełnej listy działań w firmie. Dlatego bazowanie tylko na nich skutkuje często zupełną utratą kontekstu projektu wdrożeniowego.

Próbą naprawy tego faktu są modele tak zwanych biznesowych i systemowych przypadków użycia, które jednak moim zdaniem zaciemniają tylko obraz. Twierdzenie zaś, że biznes powinien się nauczyć analizy obiektowej skoro zamawia systemy jest moim zdaniem tyle samo warte co twierdzenie, że kierowcy powinni się uczyć termodynamiki silników spalinowych.

Wiec jednak procesy i ich analiza

W analizie procesowej opisujemy organizacje poprzez produkty (głownie dokumenty ale nie tylko) jakie ona wytwarza i procesy wymagane by produkty te powstawały. System IT jako zasób dla procesów jest z natury rzeczy opisywany rolami ludzkimi (aktorzy) i zasobami systemowymi, którymi są programy i sprzęt informatyczny . Procesy to sieć działań. Pojęcie sieci działań i kłopotów związanych z opisywaniem ich za pomocą przypadków użycia wiążą się moim zdaniem z tym, że opis procesowy bazuje na łańcuchach wartości będących łańcuchem następstw przetwarzanych produktów o czym zapominają analitycy programiści a przypadki użycia to lista tych momentów, gdy człowiek korzysta z systemu by proces zrealizować.

Jak więc opisać wymagania na system IT

Kluczowym elementem procesu przejścia od opisu organizacji do opisu systemu IT jest transformacja procesów biznesowych, czyli wewnętrznego łańcucha wartości, na zasoby je wspierające i przypadki ich użycia czyli funkcjonalności systemu.  Kluczowym elementem jest decyzja czy wszystkie procesy i przypadki użycia systemu będą implementowane w systemie czy nie, co nazywa się po prostu analizą rentowności projektu.

Patrząc na procesy biznesowe musimy mieć umiar w szczegółowości ich definiowania, tak by nie doprowadzić do próby algorytmizacji firmy. Pamiętajmy, że musimy zawsze bazować na kompetencjach ludzi i ich wiedzy o tym co i jak mają robić. Jeżeli nie weźmiemy tego pod uwagę to stworzymy system przepływu pracy łączący przypadki użycia w ciągi o skończonej liczbie kombinacji. Pozornie jest to skuteczniejsze jednak kluczową wartością firm jest to, że człowiek radzi sobie z nietypowymi sytuacjami co z kolei powoduje, że nie można mu wiązać rąk scenariuszem. Szczegółowe scenariusze mogą mieć zastosowanie tam, gdzie 100% pracy jest opisana np. w KPA (Kodeks Postępowania Administracyjnego dla Urzędów) ale i tak bałbym się je zbyt szczegółowo opisywać. W firmach rynkowych kluczowym elementem są kompetencje i doświadczenie ludzi i tu typowe systemy przepływu pracy (ang. workflow) stwarzają nie raz wiele kłopotów odzierając  ludzi z prawa użycia ich własnej inwencji.

System dla ludzi

Dlatego wiele gotowych udanych systemów w efekcie ma postać  zbioru usług wspierających zasoby (ludzi) w realizacji ich bieżących prac. Proces to pojęcie w 100% abstrakcyjne nie mające bytów rzeczywistych, jest to abstrakcja łącząca ze sobą pojęcia: produktów, zasobów, reguł, wartości i jakości (dlatego jest tak trudny do zrozumienia jako pojęcie). Próba ich opisu metodami obiektowymi, nie tylko moim zdaniem, jest skazana na niepowodzenie.  Opis procesów często bywa przez niektórych analityków dodatkowo komplikowany przepływem samych danych. Prawdopodobnie jest więc tak, że:

  • Procesy są łańcuchami tworzącymi wartość dodaną,
  • Procesy są fizycznie realizowane przez zasoby (ludzi, systemy),
  • Komunikują się z sobą  zasoby (ludzie, aktorzy) a nie procesy,
  • Przepływ danych nie musi być tożsamy z łańcuchem procesów (nawet rzadko taki jest).

Ostatni a uwaga jest jednym z powodów dla których w literaturze można spotkać się z opiniami, że przyczyną fiaska wielu projektów była analiza wymagań bazująca tylko na Diagramach Przepływu Danych (ang. DFD: Data Flow Diagram). Pominięcie modelu procesowego rodzi ryzyko utraty zrozumienia konstrukcji wewnętrznej organizacji.

Model procesów powinien być uproszczeniem, abstrakcją skupiającą się na celowości działań a nie na szczegółach ich realizacji. Te ostatnie mogę podlegać stałym zmianom w firmie. Należy wręcz unikać na etapie zbierania wymagać zbytniego uszczegóławiania opisu. Powinno się zamiast opisowego precyzowania wymagań dla procesu operować przykładami, wzorami produktów każdego procesu. Minimalizuje to możliwość nieporozumień oraz czyni taki opis bardziej jednoznacznym.

Prawdopodobnie więc na etapie opisu wymagań zupełnie wystarczające jest  napisanie, że system powinien wspierać wystawianie faktur i dodać wzór tego dokumentu niż wylistować cechy tego dokumentu takie jak: możliwość wpisania nazwy produktu, liczby sztuk, nazwy jednostki, wartości podatku, automatyczne wyliczanie wartości pośrednich, sum częściowych i summy całkowitej, wypisanie terminu płatności , ?. Wzór dokumentu z jego opisem jest skuteczniejszym i tańszym sposobem specyfikowania wymagań.

(tekst ten to moje przemyślenia po wysłuchaniu referatów na konferencji  UML – zastosowania w biznesie http://www.cpi.com.pl/imprezy/2007/uml/index.php ).

Na podstawie tego tekstu powstał artykuł “Za system IT nie odpowiada informatyk”, który ukazał się w numerze 12.2011 pisma Kadra Kierownicza w administracji. Wszelkie prawa do treści artykułu zastrzeżone.