Miejsce BPMN w odniesieniu do UML

To, że UML jest obcy większości analityków biznesowych to przykra prawda, dzisiaj raczej źle świadcząca o tej większości (patrz model kompetencji analityka biznesowego IIBA). Używanie UML do modelowania procesów biznesowych jest ograniczaniem możliwości tych modeli gdyż UML reprezentuje paradygmat obiektowy a BPMN procesowy a to dwa odrębne światy (to, że powstały i są wykorzystywane równolegle te dwie, różniące się od siebie, notacje notacje także o tym świadczy). Trudno także mówić o “podejściu” do modelowania procesów w UML bo to tak, jak by mówić że “łodzie reprezentują zupełnie odmienne podejście do poruszania się po drogach publicznych”. Niestety są żeglarze, którzy nie uznają innej prawdy niż ta, że łodzią można wszędzie, trzeba się tylko postarać. Faktem jest, trzeba się dobrze postarać. […] Co do wymagań samych narzędzi UML nie podejmuję się dyskusji bo narzędzia są rożne i każdy sam sobie je dobiera. Co do samej ścieżki analizy to raczej w pierwszej kolejności modelujemy biznes (modele BPMN) a potem dopiero zastanawiamy się i projektujemy narzędzie, oprogramowanie dla tego biznesu czyli pora na UML. Odwrotną kolejność sugerują dostawcy gotowego oprogramowania ale ten wątek był na tym blogu już nie raz poruszany.

Czytaj dalej Miejsce BPMN w odniesieniu do UML

Analiza a programowanie czyli gramy w chińczyka na szachownicy

proszę programistów: róbcie to co rozumiecie i nie wmawiajcie nikomu, że wiecie lepiej jak zarządzać firmą Waszych klientów. Róbcie to co każdy dobry stolarz: poproście klienta o rysunek tego co ma powstać i zróbcie. Nie zapominajcie, że dobry stolarz to nie to samo do dobry projektant, jak klient nie potrafi rysować (a najczęściej nie, bo nie to jest jego kompetencją), dobry stolarz zawsze odeśle do projektanta po rysunek. Między innymi dlatego, by później nie być posądzonym o stronniczość czyli rysowanie tylko tego co jest łatwe w wykonaniu. Rzecz w tym, że nie ma być łatwe dla stolarza a dobre dla klienta.

Czytaj dalej Analiza a programowanie czyli gramy w chińczyka na szachownicy

Ach ten wstrętny, wścibski analityk

Cóż, zastąpienie procesu analizy i projektowania werbalną komunikacją to droga na skróty: czerwona strzałka. Czy to zła droga? Droga na skróty to wspomniane na początku ryzyko, ogromne bo statystyki wskazują stale, że ok. 70-80% projektów programistycznych ma poważne kłopoty. Statystyki te są takie same od lat.

Od lat znany jest powyższy proces i mimo to zawsze jest te 80% klientów i ich dostawców, którzy dogadują się, że analiza i projektowania żadnemu z nich nie służy… tak jak to napisano na początku.

Po co to napisałem? By każdy z Państwa sam, świadomie, oceniał ryzyko swoich projektów. Rezygnacja z analizy i projektowania to podjęcie pewnego ryzyka, przez klienta. Niestety rezygnacja z analizy i projektowania ze strony dewelopera to czasem dodatkowo skutek uznania, że analiza i projektowanie leży poza kompetencjami programistów (Ci obiektowo kodują) wiec wybierają jest droga na skróty.

Czytaj dalej Ach ten wstrętny, wścibski analityk

Czy wymagania opisują tylko to “co” system ma robić?

Bardzo często tak właśnie definiuje się produkt analizy wymagań: wymagania funkcjonalne opisują to co ma system robić. W dyskusjach (ile mam ich za sobą :)) z programistami przebija się teza, że analityk specyfikuje to “co” system ma robić, a oni już załatwia sprawę tego “jak” ma to robić. W czym problem? W tym, że funkcjonalności to test rozwiązania a nie wymagania! […] Przypadki użycia stanowią bardzo mierne przybliżenie rzeczywistości. […] Tak więc dokument wymagań to nie tylko przypadki użycia. Te są raczej testem poprawności rozwiązania, czy model jest poprawny (przypominam, że przypadki użycia, poza ich scenariuszami, zawierają stan początkowy i stan końcowy akcji użytkownika). […] Programiści, proszę, nie udawajcie, że znacie się na zarządzaniu, marketingu, biznesie, sprzedaży, rynku, produkcji itp. bo to (poza pewnie istniejącymi wyjątkami) nie prawda, a projektowanie na zasadzie “wydaje mi się że rozumiem” to droga do porażki. […] System ERP można wybrać na bazie projektu na wyższym poziomie abstrakcji. Analizy firmy także polega tu na opracowaniu modeli procesów. Jednak w tym wypadku ich celem jest stworzenie raczej “modelu filozofii działania” firmy a nie projektowanie systemu od zera.

Czytaj dalej Czy wymagania opisują tylko to “co” system ma robić?

Nowa specyfikacja Business Motivation Model v.1.1 i modelowanie biznesu

Stosowanie analizy systemowej, modelowania oraz formalnych notacji do tworzenia modeli, powoduje, że wyniki analiz są daleko bardziej wiarygodne. Z reguły celem pracy analityka biznesowego czy projektanta jest opracowanie opisu rekomendowanego rozwiązania. Może nim być docelowy model organizacji czy też opis oprogramowania jakie należy dostarczyć (bo nie zawsze wytworzyć!). W procesie formalnej analizy systemowej (nie jest to analiza systemu informatycznego, to analiza dowolnego systemu), powstają modele, które testujemy. Taki model to najpierw hipoteza, a po weryfikacji, jest to opis rozwiązania (projekt tego co ma powstać). Idealną sytuacją była by taka, a której mamy narzędzia do modelowania każdej analizowanej dziedziny. W klasycznej inżynierii jest to rysunek techniczny i zasady obliczania wytrzymałości, sformalizowany system tworzenia schematów elektrycznych i elektronicznych i wiele innych (zależnie od dziedziny), notacje UML w inżynierii oprogramowania. W sferze zarządzania mieliśmy do niedawna biała plamę, teraz mamy już BMM czy ArchiMate. Moim zdaniem utrzymywanie, że można coś skutecznie analizować metodami nieformalnymi świadczy raczej o niewiedzy i braku kompetencji.

Czytaj dalej Nowa specyfikacja Business Motivation Model v.1.1 i modelowanie biznesu

Co wybrać czyli cykl życia projektu tworzenia oprogramowania

Zbiegły się dwa fakty: gorąca dyskusja na forum na temat umiejętności programistów i przy okazji ich roli w procesie wytwarzania oprogramowania oraz przesyłka z kolejną nową książką na moja półkę. Ale po kolei. Najpierw fazy cyklu wytwarzania oprogramowania a potem kilka uwag. Zakupiona książka opisuje całość, ja tu skupie się na jej wstępie. Nie będę jej tłumaczył a jedynie opisze idee. Zwrócę także uwagę na pewne aspekty związane z dostarczaniem gotowego oprogramowania, np. systemów typu ERP lub ich komponentów.

Czytaj dalej Co wybrać czyli cykl życia projektu tworzenia oprogramowania

Domain Model – serce aplikacji

Całkiem niedawno pisałem o tworzeniu diagramów klas a konkretnie modelu dziedziny w odpowiedzi na post pewnego blogera. Wymiana poglądów skończyła się z e strony adwersarza na zwróceniu uwagi, iż diagram klas może pokazywać wiece niż mój (bo może) ja zaś zwróciłem uwagę na fakt, że diagram klas to jakiś model a model powinien modelowa jedne coś. Pokazanie na jednym diagramie klas dużo chyba mija się z celem bo można zabrnąć w rejon gdzie sprawdza się reklama Banki od wszystkiego są do niczego.

Czytaj dalej Domain Model – serce aplikacji

Cloud computing – czy aby na pewno nowinka…

Jeżeli miał bym coś polecić tym, którzy patrzą na cloud computing jak na potencjalne narzędzie uzyskania przewagi konkurencyjnej, to sugeruję po zanalizowaniu potrzeb i wyspecyfikowaniu wymagań, dokonanie oceny które wymagane funkcjonalności są biznesowo ryzykowne, ocenę na ile można je zdobyć na rynku w postaci usług innych aplikacji. W zasadzie jest to model SaaS (Software as a Service) ale tu mamy do czynienia z dedykowanymi usługami a nie kompletnym, zdalnie używanym oprogramowaniem.

Czytaj dalej Cloud computing – czy aby na pewno nowinka…