The Business Agility Manifesto – jest nadzieja

Open flying old books

Agile (czytaj, ażil) w korporacji, jak na razie, kojarzy mi się z wielkim bałaganem, jeszcze większym nieporozumieniem i niekończącym się poganianiem jednego wzniosłego hasła, innym wzniosłym hasłem uzupełnianym metaforami coach’ów z zupełnie niepasującej bajki. Może trochę przesadzam, ale jeśli przesadzam, to tylko trochę.

Dwa tygodnie temu w ręce moje wpadł Manifest (https://busagilitymanifesto.org/) opracowany przez osoby, które bardziej kojarzą się z tymi niedobrymi czasami twardej inżynierii niźli ze zwinnością. Roger Burlton, Ronald Ross oraz John Zachman po raz kolejny połączyli siły i na bazie swoich doświadczeń wypracowali zestaw zasad dla zwinnego biznesu. I po raz kolejny, trafili w moje potrzeby. Najważniejszą z nich była potrzeba odnalezienia się w tym szaleństwie, które obserwuję i choćby drobnego odniesienia się do fundamentalnych wątpliwości odnośnie prób skalowania sofware’owego agile’a do potrzeb agile’owej korporacji. I postawienia przeciwwagi dla narracji w stylu „ostatecznie liczy się działający soft”. Bo moim zdaniem tak nie jest. Działający soft jest środkiem do celu, ale nie tylko on decyduje o zwinności organizacji. I od oprogramowania chciałbym zacząć analizę zaleceń manifestu, świadom tego, że zaczynam niejako od środka.

Developing software faster is not sufficient, in and of itself, for survival and growth because once operational, such software is likely to prove difficult to continuously and rapidly change without unintended consequences.

Samoorganizujące się zespoły, dobierające techniki głównie pod potrzeby szybkiego dostarczenia oprogramowania, nie zwracające szczególnej uwagi na szeroki kontekst organizacyjny tworzenia i utrzymania oprogramowania miesiąc po miesiącu dozbrajają tykającą od wdrożenia pierwszego przyrostu bombę. Ograniczanie wiedzy o biznesowym kontekście przedsięwzięcia do form akceptowanych w słownomuzycznym backlogu, odżegnywanie się od technik badających spójność biznesową rozwiązania oraz zgodność z otoczeniem, w którym przyjdzie je zastosować oraz stawianie na piedestale potrzeb deweloperów skutkuje zaciąganiem biznesowego i technologicznego długu, którego termin spłaty może nadejść gwałtownie, bez wcześniejszego uprzedzenia.

W moim przekonaniu, aby oprogramowanie mogło wspierać zwinne zarządzanie organizacją, musi być oparte o solidne fundamenty, w szczególności:

  • uwzględniać biznesową interpretację rzeczywistości organizacyjnej (być w zgodzie z modelem pojęć (koncepcji) ),
  • stanowić naturalne rozwinięcie wynikającego ze strategii organizacji łańcucha tworzenia wartości (być w zgodzie z modelem procesowym bądź innym, holistycznym spojrzeniem na opis realizowanych w organizacji działań dostarczających produkt Klientowi),
  • opierać się o solidny fundament analizy systemowej, zapewniający wewnętrzną spójność oprogramowania.

Część z tych tematów znajduje swoje rozwinięcie w materiałach uzupełniających manifest.

True business agility is measured not just by speed of response to requests, changes, or disruption, but also by the coherence of the response.

Spójność, której dotyczy postulat, powinna być traktowana wielowymiarowo – w poziomie, jako wewnętrzna synergia komponentów rozwiązania informatycznego, jak i w pionie – jako zgodność z rozwiązaniem biznesowym. Aby można było to stwierdzić, wymagane jest stworzenie jednoznacznego opisu wymiarów rozwiązania w formie umożliwiającej ich szczegółową analizę w efektywny sposób. Do tego potrzebny jest aparat narzędziowy bogatszy niż szkice i historyjki.

A critical skill for analysts is the ability to engage in dialogs to assess business knowledge for gaps, conflicts, ambiguity, and completeness.

Aparat ten daje szansę na nawiązanie efektywnego i skutecznego dialogu ze wszystkimi stronami wpływającymi na rozwiązanie, nie tylko tymi, którzy są w stanie zrozumieć potrzebę wytwórcy oprogramowania.

Instantaneous change is not the goal. The goal is well-considered change that achieves the desired business effect and avoids unintended side effects.

Frictionless change is not the goal. The goal is change that is dependably shaped according to business strategy, policies, and business obligations and commitments obligations.

Dobrze zaprojektowane rozwiązanie, uwzględniające wymagania wielu stron, pozwoli na jego płynniejsze wdrożenie oraz dłuższe wykorzystywanie, bez konieczności poprawiania go zaraz po wdrożeniu.

Skimping on the quality of business software – creating a tech debt – has no place in businesses striving for change in existing lines of business.

Dobrze zaprojektowanie rozwiązanie nie będzie automatycznie obciążone żadnym długiem, wręcz przeciwnie, będzie kolejnym małym krokiem w kierunku realizacji strategii.

Failing expensively or repeatedly, even if fast, is nonetheless waste to be eliminated.

The value of failing fast in order to learn fast must be balanced against other factors including: impact on business customers, cost of rework, and exposure to risk.

A jeśli już przyjdzie nam od razu poprawiać świeżo opracowany produkt, oznaczać to będzie, iż najprawdopodobniej po prostu źle wykonaliśmy swoją pracę. Strategia Fail fast ma swoje określone miejsce i nie powinna tłumaczyć każdej porażki.

Self-organizing teams and other agile organization schemes alone do not lead to business agility.

Self-organizing teams are a means, not an end. They do not reduce, but rather increase, the need for business strategy, value chain coherence, reuse of business knowledge, and effective portfolio governance.

A i jeszcze te zespoły. Samostanowiące o sobie. Samoorganizujące się. Szlachcic na zagrodzie… Pracujemy w dużej firmie. Musimy dbać o synergię. Musi być ktoś, kto ustanawia reguły, a zespoły samostanowiąc o sobie, muszą się w wyznaczonych ramach mieścić. Musi być ktoś, kto rozlicza ze stosowania się do reguł. Musi być lider. Konsekwentny.

Tyle na pierwszy raz.

Reklamy

Warsztaty nieoczywiste – style myślenia i działania a zespoły analityczne

Pod koniec czerwca, wraz z Jolantą Korczowską, poprowadzimy we Wrocławiu dwugodzinne warsztaty z zakresu stylów myślenia oraz działania, w kontekście organizacji pracy zespołów analitycznych. Z punktu widzenia teorii i standardów analizy biznesowej, temat należy uznać za rewolucyjny. Dla nas, jako prowadzących, temat jest sporym wyzwaniem. Mamy jednakże nadzieję, że dla Państwa, jako dla uczestników, temat będzie podróżą w nowym, inspirującym kierunku.

Serdecznie zapraszamy! Aktualności związane z warsztatami są publikowane na stronie IIBA Polska.

Analiza biznesowa jest ą, ę

Notebook and coffee with copy space on a wooden background. selective focus

Słuchałem jakiś czas wywiadu z prof. Bralczykiem na temat języka polskiego. Z wywiadu tego, utkwił mi w głowie fragment dotyczący ewolucji języka, która między innymi skutkuje znacznym zubożeniem słownictwa będącego w powszechnym użyciu. Mnogość określeń bazujących na subtelnościach i niuansach jest zastępowana zwrotami typu wporzo, mega, czy zapożyczeniami w stylu ołmajgod. Tak, wiem, makaronizmy od wieków uzupełniały nasz język, aczkolwiek, jak mi się wydaje, nie w takim stopniu.

Nałożyłem tę sytuację na inne języki – języki wyrazu myśli analitycznej. Od dziesiątek lat rozwijane z myślą o radzeniu sobie w sytuacjach, w których język naturalny jest niewystarczający, gdy zwykły zapis myśli w formie zdań utrudnia pracę, a czasami czyni ją niewykonalną w zadanym czasie i w oczekiwanej jakości. W obszarze tym także widać było pewną ewolucję – strukturalne metodyki wytwarzania oprogramowania zostały płynnie zastąpione paradygmatem obiektowym, poszerzający się zakres technologiczny odnajdywał wsparcie w nowych środkach wyrazu – nowych językach. Kolejne obszary analizy biznesowej, architektury biznesowej, architektury korporacyjnej zostały objęte dedykowanymi językami. Środki wyrazu, jakimi aktualnie dysponuje (a precyzyjniej, powinien dysponować) kompetentny analityk są ogromne. Nic tylko uczyć się, uczyć, uczyć, nabierać doświadczenia i świadomie, płynnie i adekwatnie do sytuacji stosować.

I nagle okazało się, że to wszystko jest niepotrzebne. Że JAKO analityk CHCĘ stosować bardzo proste techniki ABY szybko wdrażać rozwiązania. I niewiele więcej jest potrzebne. I skomplikowane stało się proste. Jak budowa cepa.

OMG! Ja jednak wolę ą, ę. Rili.

 

Analityk biznesowy jako lider

Lider. Często określenie to niesie za sobą skojarzenia z charyzmatycznym prezesem firmy, która osiągnęła spektakularny sukces. Bądź z rozpoznawalnym przywódcą partii politycznej. Z drużyną sportową i jej najlepszym zawodnikiem.

W analizie biznesowej, szczególnie w trudnych organizacyjnie projektach, w ramach których podejmowane są niełatwe decyzje analityk biznesowy musi stać się takim liderem. Liderem zmiany. Twarzą tej zmiany. Kompetencje przywódcze będą wymagane w różnych sytuacjach – w trakcie rozmów ze specjalistami dziedzinowymi o aktualnym stanie organizacji, o występujących problemach, w trakcie wypracowywania docelowych rozwiązań, prezentacji rozwiązań innym interesariuszom projektów. Uzyskanie właściwego poziomu dialogu będzie możliwe w sytuacji, gdy specjaliści dziedzinowi oraz osoby oceniające i podejmujące kierunkowe decyzje odnośnie wdrożenia rozwiązania uznają nas za wiarygodnego partnera. Na wiarygodność wpływa wiele kryteriów: wiedza dziedzinowa, kompetencje inżynierskie (analityczne), umiejętność komunikowania się, negocjowania. W ogromnym stopniu wiarygodność buduje postawa lidera, postawa osoby która całym sobą potwierdza zasadność uczestniczenia w pracach.

Analityk biznesowy uczestniczący w nietrywialnym przedsięwzięciu przez cały czas będzie się zmagał z koniecznością motywowania członków zespołu do zaangażowania się w prace, stawić będzie musiał czoła oporowi, który może się pojawić w sytuacjach, gdy uczestnicy zauważą zagrożenie dla swojego aktualnego miejsca w organizacji, będzie negocjował fragmenty rozwiązania z opiekunami obszarów biznesowych, na które zmiana wpłynie. W tego typu sytuacjach ogromną rolę będą odgrywały kompetencje przywódcze, kompetencje które przekonają inne strony do pójścia we wskazanym kierunku.

Liderem nie można zostać w efekcie dekretacji. Lidera wybiera i akceptuje grupa, z którą pracuje. Lider musi do siebie grupę przekonać. Lider musi pokazać, że warto z nim udać się w długą i niełatwą drogę. Lider musi o swoją pozycję dbać (nie mylić, z walką).

Liderem albo się jest z natury, albo trzeba się nauczyć nim być. Pozycja lidera nie jest dana raz na zawsze – o utrzymanie tej pozycji należy stale dbać. Aby dbać o nią skutecznie, trzeba wyrobić w sobie umiejętności zauważania sytuacji, w której wymagana będzie świadoma interwencja mająca na celu podtrzymanie pozycji. Skutecznego interweniowania także należy się nauczyć.

Proces dydaktyczny w tak subtelnej kompetencji, jaką jest przywództwo nie jest łatwy. W szczególności, niełatwo jest ocenić, czy prezentowana postawa jest przekonująca, czy da szanse zbudować wokół siebie zespół. Pomoc w tym zakresie przyszła do nas z zupełnie nieoczekiwanego kierunku. Wiele lat temu, w szeroko pojętym światku hipicznym, pojawił się nurt naturalnych metod pracy z końmi. Zaowocował on zakrojonymi na szerszą niż dotąd skalę pracami w zakresie behawioryzmu tych wrażliwych zwierząt. Potwierdziły one między innymi fakt, iż konie żyją w bardzo hierarchicznym świecie, w którym to od skuteczności lidera zależy dobrobyt, a często i życie grupy. Jest to świat w którym wykluczenie z grupy oznacza śmierć, a proces ustalania miejsca w stadnej hierarchii odbywa się nieustannie. Często sygnały świadczące o próbie zrewidowania miejsca w hierarchii są subtelne – koń „niechcący” delikatnie kogoś przesunął, koń „przypadkowo” nie usłyszał. Koń nie zrobił nic przypadkowo. Koń sprawdza, czy Ten Drugi jest wyżej (i musi go słuchać), czy przypadkiem dzisiaj To Ja jestem wyżej. Koń nie czyta wizytówek. Koń nie wie, kim jest tato, czy ciocia. Koń widzi Tego Drugiego. I sprawdza go.

Na bazie tego typu wiedzy powstały unikalne w swoim charakterze warsztaty budujące kompetencje przyszłych liderów. W trakcie warsztatów trzeba przekonać konie, iż warto nam zaufać. Konie szczerze nam odpowiedzą. A ja szczerze polecam.

Ulotka: Lustro Lidera

Unikalne warsztaty mające na celu budowanie kompetencji przywódczych, w trakcie których ocena uczestników jest dokonywana przez konie.

 

 

Grafika: http://www.freepik.com/free-photos-vectors/background Background image created by Katemangostar – Freepik.com

SCRUM responsibly

W którą stronę bym się nie obrócił, przed oczami widzę zwinność. Nie, żebym miał wizje – tak mnie uszczęśliwia szara rzeczywistość. W zasadzie nie miałbym nic przeciwko temu, gdyby nie fakt, iż w większości przypadków zwinność ta przybiera karykaturalną formę pogoni za nieosiągalnym – a im bardziej nieosiągalne staje się nieosiągalne, tym szybszy i mniej kontrolowany staje się pościg.

Patrząc na ten fenomen z punktu widzenia analityka biznesowego, nie mogę pojąć sposobu, w jaki zwinność, promowana przez praktyki SCRUM, miałaby pomóc realizować przedsięwzięcia prowadzone w nietrywialnym środowisku. Trudność z pojmowaniem rozpoczyna się już na poziomie roli o nazwie Product Owner. Tłumacząc literalnie na język polski, mamy do czynienia z właścicielem produktu. Ale jakiego produktu? Czy produktem jest cała zmiana, która została zainicjowana (na przykład w formie projektu)? Jeżeli tak, to właściciel produktu powinien być nazywany właścicielem zmiany. Jeżeli jednak powinien być jawnie wskazany produkt, to jaki? Załóżmy, że zmiana dotyczy usprawnienia jakiegoś obszaru organizacji – czy w takim razie ten obszar jest produktem? Jeżeli tak, to czy w przypadku szerokiej zmiany, dotykającej na przykład wielu procesów biznesowych, nie wystąpi konflikt choćby pomiędzy właścicielem produktu a właścicielami procesów biznesowych?

Bez względu na to, co jest produktem, zgodnie z zaleceniami SCRUM, właściciel tegoż jest odpowiedzialny za zawartość product backlogu, a zespół deweloperski, za jego przetworzenie w finalny, wartościowy produkt każdego sprintu. Załóżmy, że rozpoczynamy prace w przedsięwzięciu o charakterze opisanym wcześniej. Efektem prac sprintu mogą być wskazane w procesach punkty nieciągłości, wykazana niezgodność pomiędzy celami procesów a modelem biznesowym, oraz wskazane do zrewidowania polityki, reguły biznesowe oraz definicje niektórych pojęć. Pytanie, czy to ma wartość biznesową w kontekście SCRUM (boć nie jest to przecież działający fragment systemu).? Kim są deweloperzy (boć miejsca dla projektantów, programistów i testerów tam nie ma)? Analiza biznesowa na tym poziomie ma to do siebie, iż nie jest zbyt przewidywalna. Mnogość międzyludzkich interakcji, często powiązanych z emocjami wynikającymi z zaburzenia komfortu na najniższych poziomach piramidy potrzeb, powoduje, iż zwroty analitycznych akcji są częste, a z dnia na dzień odkrywane mogą być obszary wymagające osobnego potraktowania. W praktyce, sprinty zaczynają określać częstotliwość raportowania, pozostawiając prace swojemu własnemu rytmowi. Innymi słowy, zaczynamy praktykować sztukę dla sztuki. Po co?

W trakcie kilkunastu rozmów na temat praktyk SCRUM w kontekście analizy, docierał do mnie przekaz, iż SCRUM jest techniką deweloperską, w której deweloper to członek zespołu pracujący nad rozwiązaniem IT. Gdyby przyjąć taki punkt widzenia, to cała praca związana z projektowaniem docelowego kształtu organizacji w ramach szeroko pojętej zmiany odbywać się powinna poza SCRUM. Jeżeli tak, to za właścicielem produktu powinien stać sztab analityków biznesowych i architektów biznesowych, wspierających go w podejmowaniu decyzji dotyczących product backlogu. Ale zaraz – czy nie sankcjonujemy przypadkiem podejścia waterfall (które, dla przypomnienia, jest ZŁEM)? Najpierw analiza a potem „kodowanie”?

Kontynuując podróż w dół procesu wytwórczego, docieramy w końcu do zespołu deweloperskiego, którego zadaniem jest wytwarzanie, w odstępach wyrażanych długością sprintów, upragnionego oprogramowania. Podtrzymując założenie, iż pracujemy na problemach o złożoności nietrywialnej (np. dowolna korporacja), zmiana na poziomie IT będzie wymagała zmian w wielu systemach jednocześnie, które rozwijane są w różnych technologiach, jednostkach organizacyjnych i podmiotach (spółki zależne, dostawcy w pełni zewnętrzni). Zakładając zdroworozsądkowo, iż planowanie logiki rozwiązania (poziom PIM według MDA) dokonywane jest według zasad wspierających systemowe podejście do problemu, analiza poszczególnych funkcjonalności może trwać zauważalnie długo z punktu widzenia długości sprintu. W praktyce może się to przełożyć na funkcjonowanie podzespołów scrumowych dwóch prędkości – zespół analityków, ux-owców, architektów IT pracujących nad przyrostem n, i deweloperów, zajmujących się przyrostem n-1. Oczywiście, nic nie stoi na przeszkodzie aby deweloperzy w jakimś zakresie pracowali nad przyrostem n, aczkolwiek małe jest prawdopodobieństwo, aby ukończyli go w sprincie, w którym ukończą go analitycy. To tez prowadzi do wniosku, iż do pewnego stopnia mamy jawnie do czynienia z podejściem (iteracyjnym i przyrostowym) waterfall.

Poszczególne wątki można rozwijać dalej, aczkolwiek z punktu widzenia celu niniejszego wpisu nie jest to zasadne. Wątpliwości, które opisałem mam od dawna. Dane mi było przeprowadzić wiele rozmów, z wieloma osobami, z wielu organizacji i żadna z tych rozmów wątpliwości nie rozwiała, a większość tylko je potwierdziła. Z drugiej strony, ze środowisk promujących zwinne, oparte o SCRUM podejście, uzyskuję zapewnienia, iż da się to wszystko ogarnąć, tylko trzeba zmienić styl myślenia, podejście, zaufać, i takie tam. Cierpliwie czekam, bom ciekaw. Aczkolwiek coraz bardziej utwierdzam się w przekonaniu, że jedyną rzeczą, jaka nas może uchronić od porażki są wysokie kompetencje osób pełniących poszczególne role w projekcie (architektów korporacyjnych, architektów biznesowych, analityków biznesowych, analityków systemowych, architektów IT, projektantów, programistów, testerów, specjalistów dziedzinowych, scrum masterów, kierowników projektów, i innych), dobrze określony proces wytwórczy (metodyka dostosowana do charakteru przedsięwzięcia), dobrze określony proces zarządczy (dostosowany do specyfiki przedsięwzięcia), postawa skierowana na rozwiązywanie problemów oraz zdrowy rozsądek, nakazujący czerpanie z różnych źródeł (waterfall, agile, TQM, facylitacja, BPM, design thinking, itd.).

Howgh!

 

Grafika: http://www.freepik.com/free-photo/silhouettes-of-a-tree-and-a-man-on-a-book_969890.htm” Designed by Freepik

Back to the roots

Close-up of two white pieces of chalk on blackboardSzkolenia i konsultacje z zakresu analizy prowadzę już ponad 20 lat. Pomijając mój debiut, w trakcie którego posługiwałem się rzutnikiem slajdów oraz wydrukami na folii, zawsze towarzyszył mi PowerPoint. Stylistyka slajdów oraz ich charakter ewoluowały wraz z trendami (a te ładnie co roku opisuje m.in. SlideShare). I wydawało mi się, że od prezentacji nie ma odwrotu (pomijając konkretne narzędzie), aż tu wpadł mi w ręce artykuł o profesorach lwowskich, ich wiedzy, pasji i umiejętności fechtowania słowem i rysunkiem, która na godziny przykuwała uwagę słuchaczy.

I pomyślałem sobie, że może warto się zmierzyć z wyzwaniem. Że może warto sprawdzić się i wyjść na szkolenie jedynie z „kredą” i pomysłem w głowie. I przed takim wyzwaniem właśnie staję. Dwa dni praktycznych warsztatów z analizy biznesowej. Proces wytwórczy na poziomach CIM i PIM, kilka języków modelowania do wprowadzenia (BPMN, UML SysML, ArchiMate), dobór jedynie tych elementów języków, które są istotne z punktu widzenia prezentowanej metodyki, rzeczywisty, szeroki problem do warsztatowych rozważań. I to wszystko tylko z kredą i tablicą we współczesnym wydaniu. Ani jednego slajdu.

Przygotowując się do warsztatów już widzę, jak ogromna to różnica w stosunku do prezentacji, która prowadzi. Kto by pomyślał, że poczuję jeszcze tak intensywny dreszczyk emocji. Już czuję, że warto.

Model informacyjny w systemach klasy frontend

Frontend XSPrzez ostatnich kilka miesięcy mam okazję uczestniczyć w analizie biznesowej oraz systemowej systemu klasy frontend. Z jednej strony, system jak system, z drugiej, to co w nim wydaje się ciekawe to model danych. Oczywiście, z punktu widzenia języka specyfikacji, w dalszym ciągu jest to stary, dobry, sprawdzony diagram klas języka UML. Natomiast, to co w nim najciekawsze, to liczności.

Ale po kolei. Systemy omawianej kategorii sporą część danych prezentowanych na ekranach czerpią z innych systemów korzystając najczęściej z dedykowanych interfejsów. Różne funkcjonalności, mogą nieść ze sobą wymagania na określone dane, także w ramach jednej klasy. Dla przykładu, załóżmy, że w momencie wprowadzania wniosku o wydanie duplikatu prawa jazdy, osoba wprowadzająca wniosek ma za zadanie podanie swojego numeru PESEL, na podstawie którego system frontend, o hipotetycznej nazwie System Obsługi Dokumentów Drogowych (SODODRO), wysyła żądanie do Systemu Ewidencji Obywateli (SEO) i pobranie podstawowych danych o osobie, na które składają się imię, nazwisko, data urodzenia i miejsce zamieszkania. Przykładowa definicja klasy mogłaby wyglądać, jak poniżej.

klasy1

Podstawowe dane Obywatela

Takie dane są prezentowane osobie składającej wniosek, która po potwierdzeniu ich poprawności otrzymuje możliwość podania powodu ubiegania się o wystawienie duplikatu. Jednocześnie, dane te zostają przepisane do wniosku, stając się jego integralną częścią. W momencie kierowania wniosku do realizacji, odnotowywany jest moment jego złożenia oraz nadawany jest unikalny identyfikator wniosku. Przykładowy diagram klas systemu SODORO dla opisywanej sytuacji przedstawia poniższy rysunek.

 

klasy2

Model klas dla funkcjonalności składania wniosku

Wniosek jest zapisywany w systemie SOW (System Obsługi Wniosków) poprzez usługę zapiszWniosek. System SODORO musi przekształcić dane do struktury danych wejściowych usługi, co jest już odzwierciedlane w przebiegu przypadku użycia (jeżeli ta technika jest stosowana do opisu funkcjonalności systemu).

Inna funkcjonalność systemu SODORO, pozwala na wyświetlenie wszystkich wniosków złożonych przez określonego obywatela. W efekcie wywołania tej funkcjonalności, system SODORO wywołuje usługę dajWnioskiObywatela systemu SOW i w efekcie otrzymuje kolekcję wniosków, opisanych cechami: moment złożenia, identyfikator wniosku. Oznacza to, iż model informacyjny systemu musi uwzględnić fakt, iż w niektórych sytuacjach dane wniosku będą zubożone w stosunku do jego pełnej zawartości informacyjnej, co musi skutkować jawnym wprowadzeniem opcjonalności w modelu klas.  Atrybutom imię składającego, nazwisko składającego, data urodzenia składającego, PESEL składającego oraz miejsce zamieszkania składającego przypisano liczności [0..1]. Podobny zabieg został zastosowany dla roli składający asocjacji składa. Co więcej, w związku z faktem, iż dane wniosku są odczytywane bez kontekstu obywatela go składającego, należy usunąć znacznik wnioskowalności atrybutów. Przykład takiej modyfikacji przedstawia poniższy rysunek.

klasy3

Osłabione liczności w modelu klas

Wraz ze wzrostem opisywanej funkcjonalności może następować dalsze osłabianie wymagalności poszczególnych cech klas oraz końców asocjacji łączących klasy. Docelowy model, może więc teoretycznie przyjąć formę diagramu, w którym zdecydowana większość właściwości klas jest opcjonalna, dzięki czemu model stanie się adekwatny do kontekstu pojedynczych funkcjonalności.

Sytuacja taka może sprowokować pytanie, jaka jest wartość takiego modelu? Czy nie lepiej byłoby tworzyć modele pod pojedyncze funkcjonalności, i uznać, iż nie ma czegoś takiego jak jednolity model informacyjny systemu klasy frontend? Przyznam, że sam miałem jakiś czas temu takie dylematy, ale na chwilę obecną stwierdzam, iż model taki ma sens. Po pierwsze, prezentuje on spójny obraz tego, czego można się spodziewać po posiadanych danych. Po drugie, pozwala on na unifikację danych wykorzystywanych przez system frontend, niezależnie od tego, skąd te dane są zaczytywane (oczywiście, pod warunkiem, że można przekształcić dane z systemów źródłowych do struktury systemu frontend). A gdyby tak przyglądnąć się modelowi z punktu widzenia narzędzi integracyjnych, czy BPMS, można byłoby dojść do wniosku, że jest to nic innego, jak model kanoniczny. A takowy przecież sens ma.

Prace analityczne trwają, więc być może mój pogląd na sprawę się zmieni. Gdyby tak się stało, postaram się podzielić swoją opinią na powyższy temat ponownie.

A przed zakończeniem…

P.S. Sposób odnotowywania zapisu wniosku

Przebiegi przypadków użycia, w ramach których m.in. następują wywołania do systemów zewnętrznych, są opisywane w metodyce AION diagramami aktywności, w których odwołanie do współdzielonej funkcjonalności (zachowania, w terminologii UML) jest reprezentowane akcją wywołania zachowania (ang. call behavior action).  Sytuacje wywoływania usług zewnętrznych systemów doczekały się w metodyce wzorca analitycznego, na który składa się przede wszystkim aktywność zawierająca dwuetapowe wywołanie. Strukturę takiej aktywności, dostosowaną do omawianego przykładu, prezentuje poniższy rysunek. Pierwsza etap, to przekształcenie informacji zapisanych w modelu informacyjnym systemu wywołującego usługę, do struktury danych wymaganej do wywołania usługi. We wzorcu etap ten reprezentuje akcja Przygotowanie danych. Precyzyjne opisanie zasad przekształcania wymaga zastosowania prostych konstrukcji języka OCL (patrz P.S. 2). Drugi etap, to wywołanie samej usługi systemu zewnętrznego, reprezentowane akcją wywołania zachowania o nazwie Wywołanie usługi. Pinem wejściowym dla tej akcji jest struktura danych będąca pinem wyjściowym wcześniejszej akcji.

activity

Opis aktywności zawierającej ciąg działań wymaganych do wywołania zewnętrznej usługi

Odwołanie do wywołania usługi zewnętrznej w przebiegach poszczególnych przypadków użycia jest reprezentowane także akcją wywołania zachowania, ale w tym przypadku wywoływana jest aktywność opisana omówionym wzorcem. Przykład wywołania prezentuje poniższy rysunek.

 

use case flow

Wywołanie wzorca wywołania usługi z przebiegu przypadku użycia

 

P.S. 2 Sposób przygotowania wyrażenia OCL transformującego dane z modelu informacyjnego aplikacji frontend na struktury parametru wywołania usługi

Język OCL może znaleźć zastosowanie między innymi do jawnego pokazania konwersji danych ze struktur modelu informacyjnego systemu frontend do struktur wywołania usługi. Poniższy rysunek prezentuje przykładowe wyrażenie OCL. Pierwsza część wyrażenia, rozpoczynająca się od słowa context stanowi deklarację kontekstu definiowania ograniczenia. Kontekstem takim, zgodnie z UML, może być klasa, albo określone zachowanie. Odwołanie się do akcji jest konwencją AION, która moim zdaniem jest naturalnym rozszerzeniem koncepcji zawartych w UML.

Druga część wyrażenia, rozpoczynająca się od słowa post opisuje warunek, który musi być spełniony po zakończeniu realizacji akcji. Pierwsza linia wyrażenia  – result.oclIsNew() – wskazuje, iż elementem wyjściowym wywołania jest nowopowstały obiekt. Dalsze składowe wyrażenia pokazują zasady transformacji.

 

ocl

Przykład zastosowania OCL do jawnego pokazania konwersji struktur danych

 

 

Ilustracją wpisu jest zdjęcie pobrane z serwisu Freepik.

Pańskie oko w korporacji…a w zasadzie jego brak

Notebook and coffee with copy space on a wooden background. selective focus

O dawna wiadomo, że pańskie oko konia tuczy. Nie do końca jest jednak pewne, czym skutkuje pańskiego oka brak. Niniejszy wpis jest swoistą kontynuacją luźnych myśli na temat korporacji, wynikających z moich osobistych, analitycznych obserwacji.

Moje ostatnie dłuższe pobyty w korporacjach prowadzą jednakowoż do wniosku, iż brak jasno określonego Pana, który pańskim okiem swym, nastawionym na weryfikację kierunku rozwoju jego własności, powoduje, iż zarówno kierunek ten jak i tempo rozwoju mogą się zewnętrznemu obserwatorowi wydać co najmniej odbiegające od spodziewanego. Rozdrobnieni właściciele, weryfikujący skuteczność działania organizacji raportami giełdowymi, nie mający możliwości zweryfikowania w jaki sposób zarządza się ich środkami, powodują, iż w dużej mierze gospodarne zarządzanie jest efektem etyki menedżerów. A menedżerowie to przede wszystkim ludzie. Z ich ambicjami, problemami, animozjami, sympatiami, pragnieniami. Ludzie Ci stają bardzo często przed wyborami:

  • zburzyć status quo i zacząć działać inaczej (lepiej z punktu widzenia strategii organizacji), czy pozostać w układzie, który nie jest optymalny, ale stabilny,
  • podjąć ryzykowną decyzję, która może skutkować utratą pozycji, czy stabilnie iść utartym szlakiem,
  • podjąć decyzję, która pchnie firmę do przodu, czy taką, która utrudni życie wewnętrznemu rywalowi,
  • piąć się do góry, bez względu na koszty, czy zająć się działaniami w obszarze własnych kompetencji,
  • działać, czy trwać?

Dylematów różnej natury można mnożyć w nieskończoność. W nieskończoność można także mnożyć KejPIaje, KejeRaIe, którymi można w nieskończoność mierzyć skuteczność działań. Ale aby były rzetelne, potrzebne są wiarygodne dane i poprawne wyliczenia. Potrzebne są także osoby tym zainteresowane, posiadające jednocześnie zdolność do weryfikacji ich rzetelności. Gdy ich brakuje, dzieją się Rzeczy Różne.

Co to ma do analizy biznesowej? Ano to, że analiza pokazuje między innymi Różne Rzeczy. I co z  nimi robić, gdy Pańskiego oka brak?  Można robić różne rzeczy, a przy okazji narobić sobie wrogów. A korporacja będzie, niezależnie od tego, trwać.

Tu, przy okazji, dotykamy problemu etyki analityka… ale to już na osobny wpis.

10x Business Analyst

10xPojęcie 10x Developer już chyba weszło do języka powszechnego i jest dość dobrze zrozumiałe. Gdyby w przypadku zaciekawionego tytułem wpisu czytelnika, tak nie było, polecam krótkie jego wyjaśnienie. Naszła mnie niedawno myśl, dlaczego nie mówi się o 10x Analitykach Biznesowych? A przynajmniej, nie słyszałem, aby się mówiło.

W całej swojej karierze zawodowej poznałem (ale za to, dość dobrze) jednego 10x Dewelopera. Ponieważ miałem okazję zetknąć się z tą osobą już na początku mojej zawodowej przygody z IT, bardzo szybko zrozumiałem, że nigdy nie będę dobrym deweloperem, i pomyślałem, że może lepiej będzie jeśli zajmę się analizą. Próbuję sobie w głowie ułożyć charakterystykę teniksa i jawi mi się ona następująco:

  • ogromna wiedza z zakresu programowania zarówno w obszarze teoretycznym (algorytmy + struktury danych) jaki i językowym (zapomniane już prawie COBOLE, Prologi, Lispy, Pascale a nawet Turbo, SmallTalki, C, i bardziej współczesne C++, Java, VS, itd…),
  • duża wiedza o tzw. okolicach programowania (projektowanie, architektura systemów, także analiza systemowa),
  • koncentracja na zadaniu,
  • stałe dokształcanie się (doczytywanie, dyskutowanie, weryfikowanie).

Z mojego punktu widzenia, była to osoba, do której na tzw. pewniaka szedłem, gdy potrzebowałem zrozumiałego wyjaśnienia jakiegoś pojęcia z zakresu projektowania, architektury systemów czy technologii IT. W 90% przypadków otrzymywałem satysfakcjonującą mnie odpowiedź – nawet jeśli była daleka od tego, co aktualnie robiliśmy, a w pozostałych przypadkach, odpowiedź uzyskiwałem po chwili, po doczytaniu.

Przez ostatnie naście lat miałem okazję trafić do małych, średnich, dużych i bardzo dużych zespołów analitycznych u naszych Klientów. Próbuję sobie przypomnieć, ilu 10x Analityków Biznesowych czy Systemowych napotkałem. I wyszło mi, że jednego (słownie: jednego). A w zasadzie, jedną. Oczywiście, poznałem mnóstwo dobrych, czy nawet bardzo dobrych analityków, ale 10x, jak wyżej.

Próbując znaleźć wspólne cechy, od razu przyszło mi na myśl – stałe dokształcanie się. W obydwu przypadkach, gdy widziałem, że osoby te nie realizują aktualnie niczego bieżącego (nawet jeśli to był krótki odpoczynek pomiędzy zadaniami) na monitorze widać było jakiś portal albo blog zawodowy. Pamiętam, że parokrotnie zapytałem, skąd zainteresowanie tematem – odpowiedzi padały także w stylu Nie wiem tak do końca, gdzieś zauważyłem hasło i doczytuję.

Bardzo rzadko widzę takie czytelnicze odruchy w projektach wśród analityków biznesowych i systemowych. Nie mam wiedzy, by podać przyczyny źródłowe takiego stanu rzeczy, ale fakt pozostaje faktem. Rzadko prowadzę też rozmowy rozpoczynające się od sformułowań Wiesz, czytałem ostatnio o, nie orientujesz się co to jest, wiesz, że w takiej publikacji zalecono. Często natomiast słyszę, że w prawdziwym świecie, gdybym był na uczelni, tak w teorii. Na pytanie, czy coś więcej o tym wiesz, czy próbowałeś najczęściej słyszę różne odmiany sformułowania Panie! Kto ma na to czas?

Kto ma na to czas? Gdy znajdę drugiego 10X Business Analyst, dam znać.

Analiza biznesowa jest zbyt trudna, czy brakuje kompetentnych analityków biznesowych?

Notebook and coffee with copy space on a wooden background. selective focusTakie pytanie (wydaje się, że retoryczne) padło podczas dzisiejszej, niespodziewanej, popołudniowej rozmowy telefonicznej zainspirowanej wpisem o architekturze procesów. A nawet się nie wydaje – jest retoryczne. Wykształconych analityków biznesowych brakuje. Głównie dlatego, że żadna uczelnia, w cyklu dziennym, ich nie kształci. Kształcą studia podyplomowe, ale pół roku, czy rok to zdecydowanie za mało. Brakuje mistrzów, przy których młody adept (dawniej, czeladnik) mógłby się uczyć i nauczyć. Mistrzów brakuje, ponieważ jeśli ktoś jest wyjątkowo zdolny i jakimś cudem dane mu było pracować i poszerzać przez dziesiątki lat swoją wiedzę i praktykę, to pracuje na 200% i nie ma czasu na dyrdymały. Brakuje wewnątrzorganizacyjnych metodyk analizy, gdyż brakuje mistrzów, którzy dostosowaliby dziesiątki standardów analizy biznesowej do realiów firmy, a mianowani, trzydziestoletni Senior Specials, Evangelists, Experts nie radzą sobie z zadaniem (i nic w tym dziwnego).

Pojawia się pytanie, czy jest szansa na poprawę? Systemowej, nie widzę. Mój rozmówca, także. Rynkowa…może, wraz ze wzrostem (powolnym) świadomości, że kapitałem firmy są kompetentni i zmotywowani ludzie oraz tego, że są problemy, których nie da się rozwiązać tuzinem (i wielokrotnością) dobrych ludzi, lecz jedynie co najmniej jednym wybitnym, coś ulegnie poprawie? Kto wie?

Trzymam(y) kciuki. Na razie jest smutek.