Projekt wykonany – co było robione

Powyższe jest zgodne z zaleceniami OMG.org (https://www.omg.org/mda), audyt to etap CIM a projektowanie przypadków użyci i modelu dziedziny to etap PIM.

Wykonanie takiej analizy jest pracochłonne i wymaga dużego doświadczenia, umiejętności analiz procesów biznesowych, projektowania obiektowego i dobrego narzędzia CASE, jednak modele te pozwalają także przeprowadzić analizy wpływu (zależności pomiędzy procesami, skutki i podatność na awarie oprogramowania itp.) oraz zredukować do minimum prawdopodobieństwo przekroczenia terminu i kosztów (statystyki wskazują na średnie przekroczenie kosztów o 60% i terminów o 200% projektów z niskiej jakości specyfikacji wymagań). Praktyka autora wskazuje, że warto taką analizę przeprowadzić dla projektów, których budżet przekracza 50-70 tys, zł i większych.

Czytaj dalej Projekt wykonany – co było robione

Proces zbierania i analizy wymagań u developera

Analiza Biznesowa i specyfikacja wymagań opracowana metodą opisywaną tu i na stronach OMG, jest od tej ostatniej (grupa konsultantów i sesje warsztatowe) znacznie tańsza. W czasie trwa podobnie, jednak robi to z reguły jedna osoba (tak! ale przy założeniu ma stosuje zaawansowane narzędzia CASE nie tylko do tworzenia diagramów ale także do ich weryfikacji śladowania zarządzania spójnością modeli itp.), a efektem jest projekt logiczny a nie dopiero lista wymaganych cech. Korzyść jest więc podwójna. Jeżeli zrobi to Analityk wynajęty przez Klienta a nie Dostawcy, to wszelkie prawa (know-how) do projektu pozostają po stronie nabywcy.

Można powiedzieć, że to trudne i kosztowne. Trudne owszem, wymaga doświadczenia i wiedzy zarówno z zakresu zarządzania jak i inżynierii oprogramowania. Per saldo, wliczając w to koszty modyfikacji na etapie wdrażania i odkrywania wymagań (wady specyfikacji nie poddającej się weryfikacji) jest to proces zawsze tańszy (badania kierowników projektów wskazują, że zła jakość wymagań generuje dodatkowe koszty rzędu 60% wartości projektu, koszt takiej analizy nie przekracza zaś 20%). Do tego pojawiają się potencjalne koszty nieujawnione klientowi: prawa autorskie do projektu i aplikacji. Jeżeli firma będąca wykonawca oprogramowania robi analizę swojego klienta i potem mu sprzedaje prawa do jej wyników wraz z dostarczanym oprogramowaniem, to jest to klasyczny przypadek anegdoty o konsultantach, którzy zapytani o to która jest godzina, proszą Cie o Twój zegarek, odpowiadają na pytanie która godzina i wystawiają fakturę za usługę i także za zwracany Ci Twój zegarek.

Czytaj dalej Proces zbierania i analizy wymagań u developera

Model jako symulacja – także w analizie i projektowaniu oprogramowania

Model dziedziny nie powinien więc być diagramem słownikowym (diagram klas z gęsto powiązanymi klasami nafaszerowany dziedziczeniem i asocjacjami). Taki diagram to model pojęciowy (pojęcia słownikowe) nie nadający się do implementacji. Wymaga jeszcze wiele pracy. Jeżeli skażemy na nią programistę, osobę która nie zna tej “dziedziny”, to z dużym prawdopodobieństwem powstanie “coś co nie koniecznie jest tym czymś co powinno powstać”, i nie jest to wina tego programisty tylko tego, który mu dał opis tego co ma powstać w takiej właśnie, niezdefiniowanej postaci. […]
Tak więc szanowni klienci: sprawdzajcie co Wam dają analitycy, jeżeli model dziedziny systemu jest dla Was totalnie nie zrozumiały (to co mówi lub referuje analityk), to prawdopodobnie jest to zły model…

Tak więc model dziedziny opisujący sprzedaż, powinien zawierać obiekt biznesowy Faktura ale obiekt ten nie powinien mieć operacji “nowa faktura”, model powinien zawierać odrębny obiekt np. NarzędzieFakturzysty, mający “w sobie” wiedzę o tym jak się wystawia faktury. Powody są dwa: techniczny opisał powyżej kolega programista, drugi powód jest bardzo prozaiczny: bo faktury same się nigdzie nie wystawiają…

Czytaj dalej Model jako symulacja – także w analizie i projektowaniu oprogramowania

No to była mała porażka… piszę ku przestrodze

Nie będę tu opisywał szczegółów tego projektu, ważne są wnioski a nie ta czy inna firma:

pominięcie któregokolwiek etapu projektu analitycznego, w szczególności pierwszego, powoduje, że całość staje się nieweryfikowalna, ryzyko rośnie,
ukrycie prawdziwego celu projektu przed analitykiem (jest to możliwe, jeżeli dojdzie to tego co powyżej) powoduje, że większość jego czasu pracy nie służy projektowi,
po zanegowaniu efektów pracy analityka, obrona takiego projektu jest niemożliwa bo brak kluczowego narzędzia: śladowanie (przypomnę, że usunięto pierwszy etap – zdefiniowanie celu).
Co było prawdziwym celem projektu? Okazało się, że “nie chcemy by przetarg wygrała firma XXX i jej produkt”. W trakcie pierwszych problemów z “uznaniem” specyfikacji wymagań dostałem listę wad posiadanego oprogramowania. Ku mojemu zaskoczeniu były tam nawet błędy rachunkowe (inne tu pominę, choćby niezgodność programu z prawem). Pytam: jakim cudem to zostało odebrane i zapłacone? Cóż…

Czytaj dalej No to była mała porażka… piszę ku przestrodze

Znaczenie ma nie wielkość projektu, a cykl jego życia…

Powyższe nasuwa od razu kolejny wniosek: zamawiający najczęściej formułują zapytania w sposób pozwalający dostawcom składać oferty na pierwszy etap, polegający tylko na dostarczeniu i wdrożeniu. Jak widać z zasady wygrywają tu projekty “na żywioł”. Żądanie od dostawców ujęcia kosztów utrzymania (tak zwany “maintenance”) niczego nie zmienia bo to tylko stała oplata administracyjna. Jedynym sposobem na rzetelne porównanie ofert jest operowanie kosztem cyklu życia dostarczonego produktu.

Czytaj dalej Znaczenie ma nie wielkość projektu, a cykl jego życia…

Business Rule Concepts – czyli jak “wyłuskać istotę rzeczy”

Gorąco polecam dwie książki autorstwa Ronalda G. Ross’a, ich okładki tu widzicie. Wydane zostały przez Business Rule Solutions, LLC. Pierwsza skupia się na regułach biznesowych jako koncepcji. Metody i system pojęciowy w niej opisany znalazły się na liście otwartych standardów OMG jako SBVR. W ubiegłym roku ukazało się już trzecie wydanie tej książki.

Druga to pozycja nowa, całościowo opisująca podejście polegająca na modelowaniu organizacji w analizie biznesowej (zawiera część materiału pierwszej) . Zwraca uwagę na fakt, że nie chodzi w analizie o tworzenie mnóstwa diagramów a o to, by zrozumieć jak organizacja funkcjonuje opisując to, oraz stworzyć model, który pozwoli na prognozowanie zachowania organizacji w odpowiedzi na bodźce, nawet te które jeszcze nie zaistniały. Prognoza? A jak Państwo chcecie ocenić ryzyko i skutki utraty członka zarządu (np. złamał nogę na nartach…;)) lub jednego z kluczowych dyrektorów? Jak chcecie ocenić skutki i ryzyko wdrożenia nowego systemu systemu ERP?

Da się… ale model organizacji to nie trawnik boiska z wydeptanymi ścieżkami, bo trwa rośnie a kolejne rozgrywki to nowe ścieżki, nie narysujemy wszystkich możliwych! Model to reguły gry w piłkę nożną, umiejętności poszczególnych piłkarzy, granice boiska, obie połowy, pola karne i bramki. To decyduje o tym ja wygląda gra. Co jest ważne? Odkryć i jednoznacznie udokumentować formalne zasady.

Czytaj dalej Business Rule Concepts – czyli jak “wyłuskać istotę rzeczy”

Biznes wychodzi z objęć systemu … monolitycznego ERP

Rynek stale się rozwija i dojrzewa. Praktycznie każda większa firma doświadczyła w jakiejś formie wdrożenia gotowego, dostosowywanego do potrzeb, oprogramowania ERP. Warto jednak podkreślić, że idea jednego “super systemu” ERP II, odchodzi powoli do lamusa. Moim zdaniem to kwestia roku, dwóch. Pierwsze symptomy to zalecenia producentów dużych systemów: wdrażać gotowe oprogramowanie w postaci “gotowej” tylko tam gdzie pasuje, obszary specyficzne dla firmy opisać i zaprojektować dla nich dedykowane rozwiązanie i zintegrować. Dobry system ERP to środowisko programistyczne (tak zwany framework, szkielet). Systemy, nawę je “zapóźnione”, nadal wymagają ingerencji w ich kod by cokolwiek osiągnąć. Kompromisem jest sytuacja, w której system ERP ma bogaty interfejs (tak zwane [[API, Application Programming Interface]]) pozwalający na integrację dedykowanych podsystemów lub właśnie zewnętrznych komponentów czyli korzystania z możliwości jakie daje Cloud Computing). Przyszłość to komponenty…

Czytaj dalej Biznes wychodzi z objęć systemu … monolitycznego ERP

Ujarzmić dane – ale po co ich aż tyle?

Moim zdaniem hurtownie danych i wszelkiego typu systemy BI mogą być skuteczne jako wykrywanie “czegoś” w historii, na pewno sprawdzają się jako złożone systemy raportowania, ale nie sądzę by jakakolwiek hurtownia danych plus system BI odkryła cokolwiek nowego lub skutecznie prognozowała. […] Budowanie modeli na bazie małych partii danych jest po pierwsze wiarygodniejsze (paradoksalnie) niż proste wnioskowanie statystyczne, po drugie daje szanse odkrycia czegoś nowego. W czym problem? To drugie jest nie możliwe z pomocą deterministycznej maszyny jaką jest komputer. To wymaga człowieka, ten jednak nie daje się produkować masowo… ;), korporacja na nim nie zarobi.

Hm… czy przypadkiem promowanie systemów hurtowni danych, BI, pracy z terabajtami danych itp.. to nie tworzenie sobie rynku przez dostawców tych technologii?

Warto więc za każdym razem, zanim zainwestujemy w rozwiązania operujące na terabajtach danych, przemyśleć co chcemy osiągnąć. W zasadzie nie ma uzasadnienia dla trzymania wszystkich danych, ważne jest określenie jaki problem chcemy rozwiązać. Jeżeli są to problemy związane z analizą danych historycznych, badania statystyczne mogą być skuteczne, do tego poddają się automatyzacji. Jeżeli jednak problem tkwi w planowaniu zmian, prognozowaniu, odkrywaniu, polecam raczej człowieka i budowanie hipotez.

Czytaj dalej Ujarzmić dane – ale po co ich aż tyle?