Piraci drogowi i limit prędkości – droga jako system

Artykuł ten napisałem z dwóch powodów. Pierwszy to odpowiedz na cytowaną tezę pod artykułem o radarach laserowych rodem z mojej Alma Mater (WAT). Sugeruję kierowcom nie używać na drodze prostych heurystyk tylko przestrzegać znaków drogowych, z dwojga złego lepiej zwolnić na źle oznakowanej jezdni niż kogoś zabić lub okaleczyć. Drugi to przestrzec przed prowadzeniem analiz wymagań metodą wywiadów wierząc, że "skoro klient mówi to wie i tak chce", bi niestety w większości przypadków jest to nieprawda.

Czytaj dalejPiraci drogowi i limit prędkości – droga jako system

Plansza do gry w szachy czyli analiza i projektowanie

Na ten wpis pew­nie wie­lu z Was cze­ka, tak przy­naj­mniej suge­ru­ją listy do mnie i gło­sy na forach, a tak­że poten­cjal­ni klien­ci. Ci, któ­rych nie­ste­ty cza­sem kry­ty­ku­ję, tak­że pew­nie cze­ka­ją. Pokażę na pro­stym przy­kła­dzie, pro­ces od ana­li­zy przez wyma­ga­nia aż do pro­jek­tu dedy­ko­wa­ne­go opro­gra­mo­wa­nia. Całość będzie zgod­na z faza­mi CIM/PIM (www​.omg​.org/​mda). Projekt dzie­dzi­ny, któ­ry powsta­nie będzie speł­niał zasa­dy SOLID pro­jek­to­wa­nia obiek­to­we­go, pro­jek­to­wa­nia przez kom­po­zy­cje (zamiast dzie­dzi­cze­nia) (pole­cam arty­kuł Łukasza Barana) i DDD. Opis doty­czy każ­de­go pro­jek­tu zwią­za­ne­go z opro­gra­mo­wa­niem, tak­że goto­wym np. ERP, CRM, EOD itp.

Korzystałem z opi­su zasad gry w sza­chy zamiesz­czo­ne­go na WIKI:

Zasady gry w sza­chy ? pra­wi­dła regu­lu­ją­ce spo­sób roz­gry­wa­nia par­tii sza­chów. Choć pocho­dze­nie gry nie zosta­ło dokład­nie wyja­śnio­ne, to współ­cze­sne zasa­dy ukształ­to­wa­ły się w śre­dnio­wie­czu. Ewoluowały one do począt­ków XIX wie­ku, kie­dy to osią­gnę­ły wła­ści­wie swą bie­żą­cą postać. W zależ­no­ści od miej­sca zasa­dy gry róż­ni­ły się od sie­bie, współ­cze­śnie za prze­pi­sy gry odpo­wia­da Międzynarodowa Federacja Szachowa (Fédération Internationale des Échecs, FIDE). Przepisy te mogą się róż­nić w przy­pad­ku róż­nych warian­tów gry, np. dla sza­chów szyb­kich, bły­ska­wicz­nych czy kore­spon­den­cyj­nych. (Zasady gry w sza­chy ? Wikipedia, wol­na ency­klo­pe­dia).

To na co chcę zwró­cić tu uwa­gę w szcze­gól­no­ści, to metafora:

pro­jek­tu­jąc (mode­lu­jąc) opro­gra­mo­wa­nie dla czło­wie­ka, mode­lu­je­my narzę­dzie dla tego czło­wie­ka a nie jego samego.

Swego cza­su pisa­łem, w arty­ku­le o nazy­wa­niu klas, że opro­gra­mo­wa­nie z regu­ły zastę­pu­je dotych­cza­so­we narzę­dzie czło­wie­ka a nie czło­wie­ka jako takie­go. Druga waż­na rzecz: aktor jest rów­no­praw­nym ele­men­tem sys­te­mu (tu sys­te­mem jest orga­ni­za­cja z jej ludź­mi i uży­wa­ny­mi przez nich narzę­dzia­mi). No to zaczynamy.

(wię­cej…)

Czytaj dalejPlansza do gry w szachy czyli analiza i projektowanie

Bo banki od wszystkiego są do niczego czyli złe modele dziedziny

Swego czasu na jednej z konferencji o analizie wymagań, mówiłem o potrzebie zrozumienia funkcjonowania analizowanej organizacji (firmy): ...wszystko to co nas otacza, samo w sobie jest naturalnie proste. Złożone są, nie poszczególne rzeczy, a to, że jest ich wiele i mają na siebie wzajemny wpływ. Pamiętajmy, że jedna z najtrudniejszych gier na świecie ? szachy ? to tylko kilkanaście figur i proste reguły ich przemieszczania. Nawet największą organizację można, w toku analizy, rozłożyć na skończoną liczbę ról i reguł ich postępowania i zrozumieć jej funkcjonowanie. (żr. Jarosław Żeliński, referat na konferencji o systemach ERP). Analiza biznesowa to etap opisu (zrozumienia) modelowanej organizacji (modele procesów itp.). Potem, powstaje model rozwiązania, którym jest nie raz własnie oprogramowanie, jego logika (patrz powyższy cytat) to "obiektowy model dziedziny systemu", a nie jakiś diagram klas nafaszerowany atrybutami i pozbawiony operacji bo jest dokładnie odwrotnie...

Czytaj dalejBo banki od wszystkiego są do niczego czyli złe modele dziedziny

Tablice decyzyjne

Wiele firm ma problemy zarządcze nie dlatego, że są źle zarządzane, ale dlatego, że stopień złożoności tych firm jest zbyt duży by podejmować je na wyczucie. W obecnych czasach decyzje muszą być podejmowane w relatywnie krótkim czasie bo rynek nie czeka, jednak jakość tych decyzji nie powinna być zła. Dlaczego bywa zła? Bo decyzje są nie raz podejmowane z niepełnym zrozumieniem sytuacji. Podejmowana decyzja, by była możliwie najlepsza, wymaga pełnego zrozumienia, tego czego dotyczy (co chyba nie jest dziwne). Jeżeli dotyczy firmy, nie powinno się podejmować decyzji bez pełnego zrozumienia potencjalnego wpływu tej decyzji na firmę. W przeciwnym wypadku skutki są dość losowe, czyli nie zarządzamy a staramy się zarządzać. [...] Analiza biznesowa organizacji poprzedzająca np. wdrożenie nowego oprogramowania, powinna polegać na wykonaniu audytu i uporządkowaniu reguł decyzyjnych oraz opracowaniu modeli procesów biznesowych by je zweryfikować. Drugi krok to ocena, jakiej wiedzy oczekujemy od ludzi (ich umiejętności i wiedza). Dokumentujemy ją z obawy przed "błędem ludzkim". Tu zwracam uwagę na to, że wymaganiem na oprogramowanie może być tablica decyzyjna, jeżeli planujemy automatyzację jakiejś czynności. Proces biznesowy nie jest wymaganiem, to co najwyżej kontekst wykonywanych czynności.

Czytaj dalejTablice decyzyjne

Analiza przyczyn wypadków – gdzie fotoradary

Problem widzę gdzie indziej. Mamy może dobre prawo o ruchu drogowym ale fatalne jego stosowanie. Zaufanie do znaków drogowych maleje, bo stawiane są nie raz w sposób niezrozumiały nie tylko dla przeciętnego kierowcy. Po drugie zaś, nauczyliśmy się, że egzekwowanie prawa jest w Polsce na bardzo niskim poziomie i wielu ludzi niestety oswoiło się z bezkarnością. Tak więc widzę ogromną potrzebę dyskusji o tym jakie i gdzie zakazy na drogach się stawia, a nie o tym czy podnoszenie skuteczności egzekwowania prawa z pomocą fotoradarów jest złe bo jest bardzo dobre, czytaj skuteczne. Czy podnoszenie trudności uzyskania prawa jazdy, "mierzenie zdolności", nie jest także bezsensowne? Oczekiwał bym więc więcej kompetencji od 'ustawodawcy". A od mediów i polityków atakujących fotoradary oczekiwał bym więcej przemyśleń i odpowiedzialności w krytykowaniu podnoszenia skuteczności egzekwowania prawa. Problemem jest jakość prawa a nie egzekwowanie prawa złego, bo to prowadzi do usankcjonowania tego, że ono jest złe. Widzę inne zagrożenie brnięcia w tłumaczenia, że skoro prawo jest złe to nie powinno być (z pomocą fotoradarów) restrykcyjnie egzekwowane: skoro nikt nie przestrzega prawa mimo tego, że ono istnieje, to znaczy. że można uznaniowo ukarać każdego kogo sobie "wybierzemy", komu na rękę taka sytuacja? Moim zdaniem, jako społeczeństwo, powinniśmy się bronić nie przed fotoradarami, a przez psuciem prawa.

Czytaj dalejAnaliza przyczyn wypadków – gdzie fotoradary

Od biznesu do przypadków użycia

Wymagania na oprogramowanie są często dokumentowane z pomocą Przypadków Użycia (PU), zwanych w "oryginale" Use Case (UC). Wygodą stosowanie tej konwencji jest traktowanie Systemu jako tak zwanej czarnej skrzynki, czyli czegoś, czego wewnętrznej budowy nie znamy, ale znamy reakcje na bodźce. W przypadku oprogramowania, nie wiemy jak jest ono zbudowane (w momencie zamawiania go, może ono jeszcze nie istnieć), ale wiemy jak reaguje na "polecenia". Jest to uznanie zasady, że zamawiający definiuje CO oprogramowanie ma robić a nie to JAK ono to robi. W przypadku gotowego oprogramowania, lub na etapie poprzedzającym projektowanie, ma to sens, jednak należy pamiętać, że przypadki użycia nie determinują tego co tak na prawdę dostaniemy, co opisałem w artykule o tym co na prawdę opisują przypadki użycia. Generalnie diagram PU jest bardzo dobrym "korzeniem" do analizy i tworzenia pozostałych modeli, ale bez powstającego "natychmiast" modelu dziedziny nie jest możliwe zaprojektowanie granic (bounded context) dla komponentów. Spotykam się w literaturze z tezami, które uważam za słuszne, że jeden system (podsystem) nie powinien przekraczać 50 klas biznesowych w dziedzinie (liczba bliska 100 to ogromny system). Praca nad oprogramowaniem powinna zacząć się od analizy i rozbicia problemu na "strawne" kawałki. Najpierw podział na podsystemy, potem na komponenty, a na końcu konkretne klasy i ich realizacje. Nie ma tu mowy o podziale z perspektywy aktora, bo jeżeli wiemy jaka jest konstrukcja zaprojektowanego młotka albo kalkulatora, to nie możemy ograniczyć (bo nie mamy podstaw) liczby ich użytkowników, bo każdy ma swoje uzasadnione powody by wziąć do ręki np. młotek....

Czytaj dalejOd biznesu do przypadków użycia

Business Model Canvas vs. Business Motivation Model

Jak widać, "klasyczny" model biznesowy pokazuje tylko "co jest przedmiotem działalności i kluczowym źródłem zysku". Model taki jest modelem procesu, ten proces jednak to tylko opis tego co, jaką wartość dodaną, dana organizacja dostarcza swoim klientom i gdzie się zaopatruje. Model to-Be opisuje stan pożądany, nie daje żadnej wiedzy o tym, jak do niego dojść. Model As-is i To-be ma lukę pomiędzy tymi As-Is i To-be. Tę lukę wypełnia moim zdaniem kompletny model BMM - każe "opracować" strategię, taktykę, analizę SWOT, ryzyka i inne mające wpływ na osiągnięcie celu, a nawet na to czy jest on w ogóle osiągalny. Po co to wszystko? Bo dobra analiza, powinna być sama dla siebie dowodem słuszności jej wyników (dlatego nie raz tu napisałem, że powinna być prowadzona "metodą naukową").

Czytaj dalejBusiness Model Canvas vs. Business Motivation Model

Business Model vs. System Model

Swego czasu pisałem o tym, że np. klasa przechowująca informacje o pracowniku raczej powinna nazywać się DaneOPracowniku a nie Pracownik. Dlaczego? Bo projekt systemu zawierający informacje o pracownikach i klientach, a także treść wielu dokumentów, powinien pozwalać zrozumieć co jest "w systemie" a co w "rzeczywistości" (pracownik jest żywym organizmem, oprogramowanie co najwyżej zarządza danymi opisującymi tego pracownika). Ku mojemu zaskoczeniu ale także radości, niemalże ten sam problem poruszył Ron Ross (bloger i autor książki BUILDING BUSINESS SOLUTIONS: Business Analysis with Business Rules): To make a long story short, business models talk directly about real-world things (as business people do);…

Czytaj dalejBusiness Model vs. System Model

Procesy biznesowe lepiej z regułami biznesowymi i zasobami

W wielu firmach system zarządzania jest tak niespójny, że jedynym sposobem funkcjonowania tych firm, jest łamanie zasad przez jej pracowników. Niestety pierwsza wpadka często powoduje załamanie się całego systemu (a nie raz i firmy). Wiele Zarządów firm nie zdaje sobie nawet sprawy z tego, jak duże jest ryzyko ciągłości funkcjonowania ich firm. Tak więc model procesu to nie algorytm działania firmy, wykazano nie raz, że algorytmizacja pracy ludzi jest niecelowa (wtedy stosujemy roboty). Znaczna część tego co robią ludzie to efekt ich kompetencji, wiedzy i doświadczenia, a nie dyktowania im jak mają wykonywać swoja pracę. Jeżeli wybierzemy drogę modelowania tego wszystkiego diagramami, to ilość tych diagramów szybko przekroczy granicę sensy całego projektu: nie będą czytane. Ich wartość będzie żadna. W procesie dobrze przygotowanej analizy (jakiejkolwiek) modele tworzy się by je badać, a nie tylko po to by powstały za pieniądze sponsora projektu. Należy też nabrać pokory: większość organizacji sprawnie funkcjonuje nie mając żadnych modeli procesów, więc teza, że ich brak szkodzi jest nie do obrony. Po co więc te modele? Żeby zrozumieć dlaczego tak jest i co się stanie, gdy zechcemy wprowadzać zmiany.

Czytaj dalejProcesy biznesowe lepiej z regułami biznesowymi i zasobami

W strefie parkowania mandat się opłaca – czyli analiza systemowa … nie wykonana

Jak było by "lepiej"? Kara powinna niszczyć "wygraną" parkującego tak więc powinna wynosić co najmniej 31,20zł zamiast ustalonej 25zł (minimalna opłata plus kara powinna być równa co najmniej opłaci należnej). Z uwagi na to, że rolą kary jest nie tylko niszczyć korzyść za łamania zasad ale także odwodzić od ich łamania, powinna być odczuwalnie (co by to tu nie miało znaczyć) wyższa. Nie będę się tu rozwodził się nad tym, jaka powinna być, inny jest cel artykułu (zainteresowanym teorią gier polecam na początek np. książkę [[Konkurencja i kooperacja. Teoria gier w ekonomii i naukach społecznych. Malawski, Wieczorek, Sosnowska]]). Chce pokazać, że projektowanie systemu opłat i kar powinno być przeprowadzone "profesjonalnie" a nie po amatorsku. System powinien być tak zaprojektowany by nie demoralizował i by był skuteczny. Radni będą, jak zadeklarowali, zmieniali system kar. Ale niestety ośmieszyli się w oczach obywateli i stracili znaczne środki (6,20 za każde źle opłacone parkowanie). Teza mówiąca "brzydko jest być nieuczciwym" raczej rozśmiesza, bo to prawda, że brzydko, ale nie zmienia to faktu, że ekonomia jest bezlitosna i na pewno ludzie (wielu) znajdą "wygrywającą" strategię, jeżeli tylko taka istnieje. Innymi słowy skoro miasto pobiera dwie różne opłaty za tę sama usługę (z karą i bez), wybrana zostaje wersja o niższej opłacie. Powyższe to namiastka zjawiska "psucia" prawa i niestety demonstrowania niekompetencji urzędników. Sam fakt, że tego nie przewidzieli wystawia im słabe świadectwo. A co dopiero w przypadkach bardziej złożonych? Urzędnicy, skoro już nie mają tych kompetencji, powinni uczyć się korzystać z pomocy specjalistów. I nie tylko oni...

Czytaj dalejW strefie parkowania mandat się opłaca – czyli analiza systemowa … nie wykonana

Prawo autorskie i wartości niematerialne – analiza systemowa

Problem w tym, że generalnie szwankuje etyka. Mało kto niestety postępuje etycznie, dowodem jest liczba użytkowników pirackich kopii. Z drugiej strony środowiska autorów raczej nie wychodzą na ulice protestować przeciwko prawu autorskiemu... Ostatnie protesty moim zdaniem pokazały, że problem tkwi w rozumieniu twórców, rozumieniu praw autorskich i tego, że jednak istnieją wartości niematerialne. Jeżeli jedynym powodem, dla którego obecnie nie ma nielegalnych rzeźb Nike z Samotraki jest to, że stworzenie takiej nielegalnej kopii wymagało by talentu rzeźbiarza, to kim są kopiujący nielegalnie muzykę, książki czy filmy? Osobiście odcinam się w tym artykule od relacji rząd a społeczeństwo, bo to dyskusja polityczna a nie systemowa. Nie znaczy to, że uchylam się od udziału w niej, po protu nie robię tego na ulicy. Martwi mnie to, że w rządzie chyba nikt nie myśli systemowo, w każdym razie nie widać tam produktów systemowego myślenia. Obym się mylił... Kończąc, piratów należy ścigać, warto jednak to robić w imieniu autorów dzieł. Nie podoba mi się ściganie piratów z urzędu - pakowania tego do prawa karnego. Prawo autorskie to sprawy cywilne i powinien być poszkodowany i pozew a nie ściganie 'bo tak", to zmusi twórców do samodzielnego dbania o własny interes, bez przerzucania kosztów prowadzonej działalności (egzekwowanie swoich praw autorskich) na Państwo czyli na nas wszystkich. Po drugie nie da się uniknąć mecenasów, jednak warto zastanowić się nad czasem ochrony i patentowej i praw autorskich. Wydaje mi się, że ochrona z tytułu praw autorskich powinna wygasać wraz ze śmiercią autora. A ochrona patentowa powinna wygasać po upływie okresu zwrotu z inwestycji, który to okres łatwo sprawdzić w biznesplanie. Twórca i jego dzieła musza być chronione ale posiadacze praw majątkowych nie powinni być dyktatorami... a posiadacze praw cudzych utworów: nie powinni być pasożytami... i to pasożytnictwo powinno być tępione a nie prawo autorskie i prawa autorów.

Czytaj dalejPrawo autorskie i wartości niematerialne – analiza systemowa

Prawo autorskie, szpiegostwo przemysłowe i projektowanie

Jak ustrzec się przed wyniesieniem z firmy tajemnicy jej funkcjonowania, tworzonej latami organizacji, procedur i procesów, reguł biznesowych? Jak zatrzymać w firmie wiedzę mino zamawiania oprogramowania, które siła rzeczy ja zawiera? Problem nie jest prosty. Sami prawnicy nie są między sobą zgodni co do tego, gdzie leży granica pomiędzy utworem literackim a szczegółowym opisem rozwiązania. Wydaje się, że kluczem jest to sposób tworzenia opisu tego co ma powstać. Standardem w IT jest opis wymagań, ten jednak z urzędu czyni autora oprogramowania także posiadaczem opisu logiki w nim zawartej, bo on jest autorem jej opisu. Wyjściem wydaje się zawarcie w umowie nie opisu wymagań na oprogramowanie a projektu oprogramowania. Metodą zdefiniowania granicy, za którą mamy nie utwór literacki (specyfikacje wymagań) a projekt wraz z algorytmami, jest metodyka MDA. Wtedy firma realizująca zamówione oprogramowanie tworzy dzieło zależne a zamawiający nie traci panowania nad tak powstałym produktem. Jest to sytuacja jaką znamy w branży budowlanej: developer dostaje projekt architektoniczny, i sam fakt, że postawił na jego podstawie obiekt nie daje mu żadnych praw do niego, gdyż wystarczająco szczegółowy projekt obiektu pozostaje dziełem projektanta a nie jego wykonawcy. Jednak zawsze, bo nie ma złotej reguły, wymaga to konsultacji i szczegółowego określenia zawartości dokumentacji, która ma stać się "opisem przedmiotu zamówienia".

Czytaj dalejPrawo autorskie, szpiegostwo przemysłowe i projektowanie

Koniec treści

Nie ma więcej stron do załadowania