e-biznes w kolejnej odsłonie 3.0
Tym razem kilka spostrzeżeń ze spotkania na które zostałem dziś zaproszony. Było to śniadanie prasowe, którego celem była prezentacja założonej w 1997 roku w Monachium firmy [[hybris sotware]]. Firma hybris jest…
Inżynieria systemów oparta na modelach (MBSE) jest sformalizowaną metodologią, która jest używana do wspierania wymagań, projektowania, analizy, weryfikacji i walidacji związanych z rozwojem złożonych systemów. W przeciwieństwie do inżynierii skoncentrowanej na dokumentach, MBSE stawia modele w centrum projektowania systemu. Zwiększone przyjęcie środowisk modelowania cyfrowego w ciągu ostatnich kilku lat doprowadziło do zwiększonego przyjęcia MBSE. W styczniu 2020 roku NASA odnotowała ten trend, informując, że MBSE “jest coraz częściej przyjmowane zarówno przez przemysł, jak i rząd jako sposób na śledzenie złożoności systemu.” W tym wpisie na blogu przedstawiam krótkie wprowadzenie do MBSE.
Tym razem kilka spostrzeżeń ze spotkania na które zostałem dziś zaproszony. Było to śniadanie prasowe, którego celem była prezentacja założonej w 1997 roku w Monachium firmy [[hybris sotware]]. Firma hybris jest…
Krótki wpis po pewnej nie długiej dyskusji na pewnym forum. Jeden z dyskutantów przytoczył definicję zakresu projektu publikowaną w WIKI: Zakres projektu jest to możliwie jak najdokładniejsze i całkowite określenie oczekiwanego wyniku projektu. Zakres nigdy nie określa konkretnych zadań mających na celu realizację projektu. Odpowiada na pytanie, co powinno być zrobione w projekcie. Wyznacza ramy do oszacowania kosztu projektu i czasu realizacji projektu. Zakres, koszt i czas tworzą parametry projektu, tzw. ?magiczny trójkąt?. (Zakres projektu ? Wikipedia, wolna encyklopedia). Tak więc mamy pytanie: "co powinno być zrobione w projekcie"? Pytanie jakie ja postawiłem: "czyim projekcie"? Zakres projektu dla kogo? [...] W moich oczach nie ma nic bardziej ryzykownego niż przekazanie Opisu Księgowej od razu programistom do wykonania. Bo mamy tak na prawdę trzy zakresy projektu, każdy inny, każdy ma innego adresata i każdy należy udokumentować inaczej, ale zawsze jednoznacznie postawić zadanie. Praca bez tego typu dokumentów, bez jasnego wydzielenia poszczególnych etapów analizy, tak często praktykowana przez wiele firm IT, to atak na twierdzę bez mapy terenu i strategii...
I tak mamy: 100% interfejsu użytkownika zamawia użytkownik (sam lub z pomocą specjalistów), 100% wymagań funkcjonalnych realizuje Model Dziedziny (projekt analityka-projektanta), 100% wymagań poza-funkcjonalnych realizuje developer (projekt i implementacja). Developer także implementuje model dziedziny z pomocą technologii jakiej używa. A jeżeli klient powie: nie mamy tych wzorów dokumentów i ekranów! To pierwszy sygnał, że nie ma podstaw do zamawiania jakiegokolwiek oprogramowania, bo najpierw trzeba "wiedzieć co się chce". Jak to zrobić? Tu kłania się analiza biznesowa: modelujemy procesy biznesowe, dla każdego z nich ustalamy wejście oraz efekt (produkt) czyli właśnie owe "wzory dokumentów". Po uporządkowaniu tego i upewnieniu się, że nie ma w tym bałaganu (powtórki, braki, niekonsekwencje, sprzeczności itp.) możemy pytać o gotowe oprogramowanie lub "zamawiać" jego wytworzenie. Produktem pracy analityka powinny być, poza modelami procesów bo one są narzędziem a nie celem, obiektowy model dziedziny czyli model tego jakimi informacjami i jak zorganizowanymi operuje organizacja, oraz to jak pracownicy tej organizacji chcą się komunikować z oprogramowaniem (źrodłem informacji jest jednak klient). Mamy czysty podział odpowiedzialności i łatwość rozliczenia projektu. Na czym polega haczyk? Klient nie może unikać odpowiedzialności za skutki swoich decyzji i udzielanych informacji. Ale też, co jest kluczowe: Analityk musi zrozumieć problem i zaproponować rozwiązanie. Jednak nie jest rolą analityka wykonanie oprogramowania! To "jak - technologia - ma to zostać zrealizowane" jest decyzją developera. Ma dużo pracy. Nie zapominajmy, że kod realizujący tak zwaną logikę biznesową to ledwie kilka procent całości kodu aplikacji, jednak nie zapominajmy także (programiści), że zła logika biznesowa dyskwalifikuje całe to oprogramowanie z prostego powodu: staje się nieprzydatne.
Pojęcie ERP samo z siebie nie ma ścisłej definicji więc nie ma mowy o "upośledzaniu czegoś jako ERP". Komentując dalej: ERP dla mnie nie jest żadną religią, jest jednym z wielu dostępnych na rynku pakietów oprogramowania. Skór ERP występuje w tak wielu nazwach produktów, tak wielu dostawców, że traktowanie go, moim zdaniem, jako cokolwiek więcej niż "zestaw oprogramowania kompleksowo wspomagający zarządzanie organizacją" jest chyba trudne do uzasadnienia. A skoro i tak do "ERP" dodaje się dziedzinowe rozwiązania (logistyka, produkcja, HR, wiele innych) to chyba dowodzenie, że to "monolit" w jakiejkolwiek części do niczego nie prowadzi. Z ust adwersarza padło stwierdzenie: Wszelkie rozwiązania polegające na tym, że jakiś podzbiór funkcji z wyżej wymienionego jest osobnym systemem rejestrującym zdarzenia osobno od centralnej bazy danych i przesyłającym je później do niej w celu zarejestrowania upośledza system jako ERP. Dziwi mnie to, bo np. prosty proces zatwierdzania kosztów mający co najmniej dwa etapy: rejestracja faktury obcej oraz jej zatwierdzenie (lub odrzucenie) i uznanie w księgach to co najmniej dwuetapowy proces i nie ma tu większego znaczenia miejsce przechowywania pośrednich statusów bo w rzeczywistości i tak "księgi" widzą efekt ostateczny (uznanie na kontach) a poprzedzające etapy weryfikacji kosztów (proces biznesowy) "dzieją się" poza księgami. Moim zdaniem brak ścisłej definicji pojęcia "System ERP" czy dalszą dyskusję bezwartościową. Oprogramowanie SAP nie jest żadnym referencyjnym produktem ERP (choć wielu próbuje tej tezy bronić) i posługiwanie się jego przykładem jako "wzorem" w moich oczach nie jest żadnym argumentem. Nie twierdze, ze SAP to produkt zły. To po prostu produkt jeden z wielu na rynku... ma swoje wdrożeniowe sukcesy i ma porażki jak inne.
Opisane tu podejście często nazywane jest "kaskadowym" (waterfall - wodospad). Jest ono dość często wskazywane jako powód porażek projektów, ale moim zdaniem jest to pewna demagogia, gdyż tak na prawdę przyczyną większości problemów jest nie tyle "wodospadowe" podejście, ono jak widać z powyżej opisanego procesu, ma głęboki sens, co wzięcie sobie na barki projektu (zawarcie umowy z dostawca na trzy lata to przyjęcie w dniu jej zawarcia harmonogramu łamiącego opisana powyżej zasadę) na lata zaniedbując zupełnie fakt, że otoczenie rynkowe obecnie zmienia się nawet co kwartał. Mamy więc kuriozalne zestawienie: podjęcie projektu od razu od ostatniego etapu (wybór dostawy, produktu i realizacja) i zaplanowanie go od razu na np. trzy lata. To projekt w rodzaju "nie wiem co tu jest grane ale kupujemy [ten system] i wdrażamy go". To nie ma prawa się udać... A nasze "lessons learned"? No właśnie, znane mi projekty zakończone kłopotami, to właśnie projekty na skróty. Projektu prowadzone w myśl powyższych zasad (krótkie i dobrze zaplanowane etapy) są znacznie bardziej odporne na kłopoty.