{"id":696,"date":"2019-10-08T23:52:46","date_gmt":"2019-10-08T21:52:46","guid":{"rendered":"http:\/\/zwinnaanaliza.pl\/?p=696"},"modified":"2019-10-08T23:52:47","modified_gmt":"2019-10-08T21:52:47","slug":"jak-stworzyc-diagram-bez-sciemy","status":"publish","type":"post","link":"http:\/\/zwinnaanaliza.pl\/?p=696","title":{"rendered":"Jak stworzy\u0107 diagram &#8211; bez \u015bciemy"},"content":{"rendered":"\n<p>Jeden z mit\u00f3w w analizie, z jakim si\u0119 spotyka\u0142am, jest taki, \u017ce analityk powinien od razu, natychmiast, zrobi\u0107 rozbudowany dok\u0142adny i szczeg\u00f3\u0142owy diagram, w pe\u0142ni odpowiadaj\u0105cy rzeczywistym potrzebom. Taki diagram, jak to wiecie, w ksi\u0105\u017ckach o nim pisz\u0105 &#8211; \u017ce koder go bierze, i ju\u017c wszystko wie. (Jak z tego wynika z tego mitu, koder te\u017c doskonale zna j\u0119zyk notacji, i nie ma w\u0105tpliwo\u015bci jak odczyta\u0107 przedstawiony przez analityka, wypasiony model. Nie m\u00f3wi\u0105c ju\u017c o biznesie, kt\u00f3ry dostaje zaawansowany model wykorzystuj\u0105cy w pe\u0142ni mo\u017cliwo\u015bci notacji i jest zachwycony jak to super analityk pi\u0119knie potrafi wszystko na modelu uj\u0105\u0107..). A, no i \u017ce ten sam model powinien zar\u00f3wno by\u0107 bardzo zwi\u0119z\u0142y i hiper prosty, z drugiej strony przedstawia\u0107 wszystkie zale\u017cno\u015bci systemu. Czyli taki jeden model do wszystkiego .<\/p>\n\n\n\n<p>Jednak mity, jak to mity, nie s\u0105 prawdziwe \ud83d\ude09 i daleko im do szarej rzeczywisto\u015bci&#8230;<\/p>\n\n\n\n<p>W praktyce wygl\u0105da to bardziej jako rysowanie &#8220;od og\u00f3\u0142u do szczeg\u00f3\u0142u&#8221; &#8211; najpierw zapoznanie si\u0119 z analizowanym fragmentem (najlepiej, je\u015bli wcze\u015bniej zna si\u0119 ju\u017c og\u00f3lnie ca\u0142y projekt, \u017ceby mie\u015bci\u0107 si\u0119 w jego granicach). Potem, jak w analizie zdania na lekcji j\u0119zyka polskiego &#8211; wyizolowanie os\u00f3b (aktor\u00f3w), rzeczownik\u00f3w (obiekt\u00f3w), czasownik\u00f3w (u\u017cy\u0107) itd&#8230; <\/p>\n\n\n\n<p>A najcz\u0119\u015bciej wygl\u0105da to tak, \u017ce analityk siedzi p\u00f3\u0142 dnia gapi\u0105c si\u0119 w ekran monitora\/laptopa, co jaki\u015b czas z wypiekami na twarzy klepie w klawiatur\u0119 i bawi si\u0119 myszk\u0105\/touchpadem, a potem, na koniec dnia, \u015bmie twierdzi\u0107, \u017ce si\u0119 narobi\u0142, \u017ce jest niewiarygodnie zm\u0119czony i w og\u00f3le to g\u0142owa mu p\u0119ka. <\/p>\n\n\n\n<p>I kto\u015b na niego patrzy i pyta &#8211; a co Ty takiego przez te godziny robi\u0142e\u015b? <em>(Z\u0142o\u015bliwy programista pewnie by w tym momencie zripostowa\u0142 ile linii kodu napisa\u0142 albo ile task\u00f3w z Jiry w tym czasie przerobi\u0142 \ud83d\ude09 \u017beby nie by\u0142o &#8211; uwielbiam programist\u00f3w &#8211; m\u00f3j m\u0105\u017c jest programist\u0105! dlatego pisz\u0119 to z lekk\u0105 nutk\u0105 z\u0142o\u015bliwo\u015bci, ale z ogromnymi pozdrowieniami i szacunkiem dla czytaj\u0105cych to programist\u00f3w \ud83d\ude42 ).<\/em><\/p>\n\n\n\n<p>A analityk odpowiada: &#8220;My\u015bla\u0142em.<\/p>\n\n\n\n<p>My\u015bla\u0142em, jak ten skomplikowany, wielowymiarowy problem uj\u0105\u0107 zgrabnie na wystarczaj\u0105cym* diagramie ( *wystarczaj\u0105cym, czyli nie prze\u0142adowanym tre\u015bci\u0105, wykorzystuj\u0105c tylko to, co jest niezb\u0119dne, pomijaj\u0105c nieistotne elementy, o kt\u00f3rych jednak nie mo\u017cna zapomnie\u0107, tylko nale\u017cy rozpisa\u0107 je na innym modelu, kt\u00f3ry powinien by\u0107 logicznie powi\u0105zany z tym g\u0142\u00f3wnym&#8230;). Narysowa\u0107 to tak, \u017ceby wszyscy rozumieli to w ten sam spos\u00f3b, pilnuj\u0105c semantyki, r\u00f3l, granic rozpatrywanego problemu, wszelkich powi\u0105za\u0144, celu jaki ma spe\u0142nia\u0107, kierunku, w kt\u00f3rym powinno i\u015b\u0107. Perspektywy, dla kt\u00f3rej dany model jest tworzony. Produkt\u00f3w, jakie analizowany proces ma dawa\u0107. Uwzgl\u0119dniaj\u0105c wszystkie istotne powi\u0105zania (czy to z innym systemem, czy z innym procesem). &#8220;<\/p>\n\n\n\n<p>I przykra prawda jest taka, \u017ce analityka w takiej sytuacji zrozumie\u0107 mo\u017ce tylko inny analityk \ud83d\ude09 <em>(z pozdrowieniami dla wszystkich wspania\u0142ych analityk\u00f3w \ud83d\ude42 )<\/em>.<\/p>\n\n\n\n<p>Bo prawda jest taka, \u017ce dobrego modelu nie zrobi si\u0119 w godzin\u0119, dwie ani czasem nawet w kilka dni. <\/p>\n\n\n\n<p>Modelowanie, tak samo jak kodowanie, trwa. Og\u00f3lny zarys modelu, kt\u00f3ry powstaje w pierwszej chwili, nale\u017cy przetrawi\u0107 (czyli po prostu: da\u0107 sobie czas, zastanowi\u0107 si\u0119 czy jest ok, czy idzie w oczekiwanym kierunku, czy odzwierciedla to, co si\u0119 chcia\u0142 napisa\u0107\/narysowa\u0107). Nast\u0119pnie kawa\u0142ek po kawa\u0142ku, wchodzi si\u0119 w szczeg\u00f3\u0142y. Czasem trzeba b\u0119dzie przerobi\u0107 ca\u0142y utworzony do tej pory model, i to te\u017c jest ok! Czasem wystarczy, \u017ce zrobimy odniesienie do subprocesu, czasem zalinkujemy do innego procesu, kt\u00f3rego rozrysowaniem zajmiemy si\u0119 w tzw. mi\u0119dzyczasie.. Czasem poziom skomplikowania b\u0119dzie taki, \u017ce b\u0119dzie trzeba podzieli\u0107 to na mniejsze modele, czasem oka\u017ce si\u0119, \u017ce og\u00f3lny model jest wystarczaj\u0105cy i szkoda czasu na jego doszczeg\u00f3\u0142awianie&#8230;<\/p>\n\n\n\n<p>A czasem, utworzony model wywalimy u\u017cywaj\u0105c funkcji &#8220;delete&#8221; i zaczniemy od nowa, bo zabrniemy w taki \u015blepy zau\u0142ek, \u017ce wyj\u015bcie z niego zaj\u0119\u0142o by za du\u017co czasu i \u0142atwiej b\u0119dzie (czyt. szybciej) zacz\u0105\u0107 modelowa\u0107 od nowa.<\/p>\n\n\n\n<p>Od czego zale\u017cy to, jak rysowa\u0107 model? <\/p>\n\n\n\n<p>Od celu, jaki ma spe\u0142nia\u0107.<\/p>\n\n\n\n<p>Inaczej modeluje si\u0119 dla biznesu, inaczej dla koder\u00f3w. U\u017cywa si\u0119 innych technik, potrzebne s\u0105 inne poziomy szczeg\u00f3\u0142owo\u015bci. <\/p>\n\n\n\n<p>I tak np biznesowi z regu\u0142y wystarcza opis kroku typu &#8220;wype\u0142ni\u0107 formularz zam\u00f3wienia&#8221; , gdzie w notatkach wystarczy\u0142oby doda\u0107 og\u00f3lny opis, co ten formularz zawiera. Koderzy z kolei mog\u0105 (ale nie musz\u0105!) potrzebowa\u0107 informacji &#8220;krok po kroku&#8221; ca\u0142ego procesu wype\u0142niania kolejnych p\u00f3l, ich walidacji, kontroli, powi\u0105za\u0144, zachowa\u0144 systemu. Dla nich, o ile w ten spos\u00f3b przebiega wsp\u00f3\u0142praca, im bardziej szczeg\u00f3\u0142owy model, tym mniej pyta\u0144 na etapie implementacji. Z kolei taka ilo\u015b\u0107 szczeg\u00f3\u0142\u00f3w by\u0142aby zab\u00f3jcza dla biznesu \ud83d\ude42 <\/p>\n\n\n\n<p>Wi\u0119c tu wymagane jest wyczucie, co w danym momencie, dla danego odbiorcy modelu, jest potrzebne. Jakie informacje (jak bardzo dok\u0142adne), s\u0105 wymagane. Oczywi\u015bcie, idealnie by\u0142oby mie\u0107 obok siebie kogo\u015b do\u015bwiadczonego, kto podpowie jak w danej rzeczywisto\u015bci, potraktowa\u0107 omawiany problem. Czyli po prostu, jak w tej firmie, w tym przypadku taki model nale\u017cy rozpisa\u0107. Ale niestety, nie zawsze mamy obok siebie kogo\u015b, kto potrafi\u0142by pom\u00f3c, wi\u0119c musimy bazowa\u0107 na swojej intuicji.<\/p>\n\n\n\n<p>Trzeba jednak te\u017c pami\u0119ta\u0107 o tym, \u017ce im bardziej szczeg\u00f3\u0142owy model, tym d\u0142u\u017cej zajmuje jego zbudowanie. I tym bardziej kosztowne jest jego utrzymywanie. Wi\u0119c je\u015bli jeste\u015bcie proszeni o stworzenie Bardzo Szczeg\u00f3\u0142owego Modelu, mo\u017ce warto zapyta\u0107 &#8220;po co?&#8221;, &#8221; co b\u0119dzie z nim za miesi\u0105c\/dwa\/po zako\u0144czeniu wdro\u017cenia?&#8221;. Bo pisanie &#8220;dla pisania&#8221;.. czy na pewno ma sens? <\/p>\n\n\n\n<p>Z kolei im bardziej og\u00f3lny opis, tym wi\u0119cej niuans\u00f3w i wa\u017cnych szczeg\u00f3\u0142\u00f3w mo\u017cna pomin\u0105\u0107. W takiej sytuacji, model taki nie dawa\u0142by czytaj\u0105cemu pewno\u015bci, \u017ce mo\u017ce na jego podstawie wystarczaj\u0105co dok\u0142adnie pozna\u0107 system, \u017ce w kodzie mo\u017ce by\u0107 ukrytych du\u017co niezamodelowanych &#8220;if\u00f3w&#8221;..<br><\/p>\n\n\n\n<p>Uff je\u015bli dobrn\u0119li\u015bcie do tego miejsca, to gratuluje:) Wyszed\u0142 d\u0142ugi wpis, mimo, \u017ce zaczyna\u0142am go pisz\u0105c o zupe\u0142nie czym\u015b innym \ud83d\ude09 <\/p>\n\n\n\n<p>Ale mimo, \u017ce zaczyna\u0142am ten wpis na zupe\u0142nie inny temat, to ciesz\u0119 si\u0119, \u017ce moje my\u015bli posz\u0142y w tym kierunku. Uwa\u017cam, \u017ce &#8220;tworzenie modeli&#8221; to niesamowicie wa\u017cna kwestia. Uwa\u017cam, \u017ce jest wielkie niezrozumienie przez otoczenie tego, \u017ce porz\u0105dne, dobre modele nie le\u017c\u0105 na ziemi i \u017ce nie wystarczy ich podnie\u015b\u0107 i ju\u017c s\u0105. \u017be napisanie dobrego modelu zajmuje czas. \u017be modele s\u0105 r\u00f3\u017cne, bardziej i mniej skomplikowane (zawieraj\u0105ce mniej lub wi\u0119cej detali), i \u017ce to te\u017c jest ok! Bo to, jak wygl\u0105da model zale\u017cy od tego, do czego ma by\u0107 wykorzystany. I \u017ce sam proces budowania modelu to bardzo &#8220;m\u00f3zgo\u017cerna&#8221; czynno\u015b\u0107 , kt\u00f3ra nierzadko ko\u0144czy si\u0119.. usuni\u0119ciem dotychczasowych efekt\u00f3w i rozpoczynaniem od nowa.<\/p>\n\n\n\n<p>Ale na szcz\u0119\u015bcie efekt ko\u0144cowy, jak wychodzi z naszej wyt\u0119\u017conej pracy, wynagradza wszelkie wysi\u0142ki i problemy, kt\u00f3re napotkali\u015bmy po drodze:) <\/p>\n\n\n\n<p>Mam pro\u015bb\u0119 &#8211; je\u015bli dotarli\u015bcie do tego momentu, dajcie mi zna\u0107 o tym i prosz\u0119 wpiszcie w komentarzu s\u0142owo &#8220;<em><strong>\u015bliwka<\/strong><\/em>&#8221; ! \ud83d\ude42 <\/p>\n\n\n\n<p>I podzielcie si\u0119 prosz\u0119 swoim do\u015bwiadczeniem! Jakie modele robicie cz\u0119\u015bciej &#8211; og\u00f3lne, czy mo\u017ce tworzycie bardzo skomplikowane diagramy? Czy spotykacie si\u0119 ze zrozumieniem od waszych koleg\u00f3w? <\/p>\n\n\n\n<p>Dajcie zna\u0107 w komentarzach!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jeden z mit\u00f3w w analizie, z jakim si\u0119 spotyka\u0142am, jest taki, \u017ce analityk powinien od razu, natychmiast, zrobi\u0107 rozbudowany dok\u0142adny i szczeg\u00f3\u0142owy diagram, w pe\u0142ni odpowiadaj\u0105cy rzeczywistym potrzebom. Taki diagram, jak to wiecie, w ksi\u0105\u017ckach o nim pisz\u0105 &#8211; \u017ce<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[60,4,43,29,58,79,1],"tags":[],"_links":{"self":[{"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=\/wp\/v2\/posts\/696"}],"collection":[{"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=696"}],"version-history":[{"count":5,"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=\/wp\/v2\/posts\/696\/revisions"}],"predecessor-version":[{"id":734,"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=\/wp\/v2\/posts\/696\/revisions\/734"}],"wp:attachment":[{"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=696"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zwinnaanaliza.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}