{"id":123,"date":"2017-10-19T15:27:30","date_gmt":"2017-10-19T13:27:30","guid":{"rendered":"http:\/\/rafallancucki.pl\/?p=123"},"modified":"2017-10-19T17:54:35","modified_gmt":"2017-10-19T15:54:35","slug":"podejscie-waterfall-raz-jeszcze","status":"publish","type":"post","link":"https:\/\/rafallancucki.pl\/index.php\/2017\/10\/19\/podejscie-waterfall-raz-jeszcze\/","title":{"rendered":"Podej\u015bcie Waterfall raz jeszcze"},"content":{"rendered":"<p style=\"text-align: justify; text-indent: 30px;\">W sumie porusza\u0142em ju\u017c ten temat we wpisie <a href=\"http:\/\/rafallancucki.pl\/index.php\/2017\/05\/26\/agile-vs-waterfall-jak-przekonac-zarzad-i-klienta\/\">Agile vs Waterfall \u2013 jak przekona\u0107 zarz\u0105d i klienta<\/a>, ale poniewa\u017c znowu odby\u0142a si\u0119 ciekawa dyskusja na ten temat, to chcia\u0142bym jeszcze raz do tego wr\u00f3ci\u0107 mo\u017ce na bardziej konkretnym poziomie. Bo czasami zbyt wysoki poziom abstrakcji powoduje trudno\u015bci w zrozumieniu tematu.<\/p>\n<p style=\"text-align: justify; text-indent: 30px;\">Pocz\u0105tkiem dyskusji by\u0142a opinia, \u017ce mimo wszystko czasami lepiej jest przygotowa\u0107 projekt z g\u00f3ry, opisa\u0107 architektur\u0119, wymogi itp. Takie podej\u015bcie powinno pom\u00f3c unikn\u0105\u0107 pu\u0142apek, kt\u00f3re mog\u0105 pojawi\u0107 si\u0119 w trakcie tworzenia systemu, zaprojektowa\u0107 architektur\u0119, przewidzie\u0107 technologi\u0119 &#8230;<\/p>\n<div style=\"width: 50%; margin: 0 auto;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-126\" style=\"display: block; margin: 0 auto;\" src=\"http:\/\/rafallancucki.pl\/wp-content\/uploads\/2017\/10\/waterfall-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" srcset=\"https:\/\/rafallancucki.pl\/wp-content\/uploads\/2017\/10\/waterfall-225x300.jpg 225w, https:\/\/rafallancucki.pl\/wp-content\/uploads\/2017\/10\/waterfall.jpg 540w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/><\/div>\n<div style=\"width: 80px; margin: 0 auto; font-size: 10px;\">CC BY-NC-ND 2.0<\/div>\n<p><!--more--><\/p>\n<p style=\"text-align: justify; text-indent: 30px;\">Opisz\u0119 tu pokr\u00f3tce sytuacj\u0119 z jak\u0105 mia\u0142em do czynienia na pocz\u0105tku mojej kariery. Odbywa\u0142a si\u0119 dyskusja jak cz\u0119sto synchronizowa\u0107 dane do hurtowni danych (i raport\u00f3w). Prezes firmy oczywi\u015bcie naciska\u0142, \u017ceby to by\u0142o tak cz\u0119sto jak tylko si\u0119 da &#8211; najlepiej co 5 minut. Wtedy w\u0142a\u015bnie obecna na spotkaniu ksi\u0119gowa zapyta\u0142a (a to w\u0142a\u015bnie ksi\u0119gowo\u015b\u0107 mia\u0142a by\u0107 \u017ar\u00f3d\u0142em tych danych): po co tak cz\u0119sto, skoro my i tak wprowadzamy dane z kilkudniowym lub wi\u0119kszym op\u00f3\u017anieniem? Okaza\u0142o si\u0119, \u017ce ksi\u0119gowo\u015b\u0107 wprowadza dokumenty kiedy zbierze si\u0119 &#8222;wi\u0119ksza kupka&#8221;, a nie w momencie, kiedy kto\u015b przyniesie faktur\u0119. I jest to powszechna praktyka. Wynika ona r\u00f3wnie\u017c z faktu, \u017ce w ksi\u0119gowo\u015bci wa\u017cna jest chronologia (ale to temat na inne rozwa\u017cania).<\/p>\n<p style=\"text-align: justify; text-indent: 30px;\">Nie b\u0119d\u0119 ci\u0105gn\u0105\u0142 tej historii dalej (mo\u017ce przy innej okazji) ale chcia\u0142bym jej u\u017cy\u0107 do naszkicowaniu r\u00f3\u017cnic w podej\u015bciach waterfall i agile. Pomin\u0119 r\u00f3wnie\u017c fakt, \u017ce ksi\u0119gowa by\u0142a na tyle odwa\u017cna, \u017ce zg\u0142osi\u0142a problem natychmiast. Za\u0142\u00f3\u017cmy hipotetycznie, \u017ce mamy Product Owner-a i tradycyjnego PM-a, kt\u00f3rzy realizuj\u0105 projekt metodami agile i waterfall. Ka\u017cdy z nich wybra\u0142by si\u0119 do prezesa, uzyska\u0142 informacj\u0119 o potrzebie pokazywania danych jak najszybciej i poszed\u0142 dalej po swojemu. PO prawdopodobnie wrzuci\u0142by do backlogu pokazanie danych bez zwracania jeszcze uwagi na szybko\u015b\u0107 (pewnie raz na dzie\u0144), PM rozrysowa\u0142by projekt waterfall z mechanizmami i serwerami do synchronizacji (wydajno\u015b\u0107!) &#8211; du\u017co pracy. PO po prezentacji rezultat\u00f3w pierwszego sprintu dosta\u0142by feedback i wywo\u0142a\u0142by dyskusj\u0119, jaka odby\u0142a si\u0119 w opisie powy\u017cej. Rezultat &#8211; nie ma sensu robi\u0107 nast\u0119pnych user story (synchronizacja w czasie rzeczywistym itp.). W waterfall-u te\u017c by\u0142by ten feedback ale najprawdopodobniej po kilku sprintach kiedy synchronizacja ju\u017c by dzia\u0142a\u0142a co sekund\u0119 &#8211; masa zmarnowanej pracy.<\/p>\n<p style=\"text-align: justify; text-indent: 30px;\">Oczywi\u015bcie, mog\u0119 si\u0119 pojawi\u0107 g\u0142osy, \u017ce analityk biznesowy m\u00f3g\u0142by zrobi\u0107 podobne spotkanie i wykry\u0107 zagro\u017cenie, \u017ce PO te\u017c mo\u017ce zacz\u0105\u0107 od czego innego (cho\u0107 tu szansa nik\u0142a &#8211; pokazanie danych jako jedyne ma warto\u015b\u0107 biznesow\u0105) itp. Najwa\u017cniejsze jednak jest to, \u017ce Agile, jak \u017caden inny spos\u00f3b tworzenia oprogramowania jest nakierowany na unikanie tworzenia niepotrzebnych rzeczy. A dzi\u0119ki oszcz\u0119dno\u015bci czasu z tym zwi\u0105zanej pozwala rozwin\u0105\u0107 znacznie bardziej obszary, kt\u00f3re s\u0105 u\u017cywane.<\/p>\n<p style=\"text-align: justify; text-indent: 30px;\">Praktycznie nikt nie tworzy oprogramowania &#8222;czystym&#8221; waterfall-em, raczej s\u0105 to kaskady kaskad (z grubsza naszkicowany plan, realizacja mniejszych krok\u00f3w ma\u0142ymi kaskadami projekt-wykonanie). Mimo to brak wczesnej informacji zwrotnej od u\u017cytkownik\u00f3w powoduje wytwarzanie niepotrzebnych funkcjonalno\u015bci. Niepotrzebnych w sensie nieu\u017cywanych lub u\u017cywanych ale niewygodnych dla u\u017cytkownik\u00f3w. Zmiany na p\u00f3\u017anym etapie projektu wywo\u0142uj\u0105 r\u00f3wnie\u017c konieczno\u015b\u0107 modyfikowania tych nieu\u017cywanych funkcjonalno\u015bci co dodatkowo pogarsza tempo rozwoju.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W sumie porusza\u0142em ju\u017c ten temat we wpisie Agile vs Waterfall \u2013 jak przekona\u0107 zarz\u0105d i klienta, ale poniewa\u017c znowu odby\u0142a si\u0119 ciekawa dyskusja na ten temat, to chcia\u0142bym jeszcze raz do tego wr\u00f3ci\u0107 mo\u017ce na bardziej konkretnym poziomie. Bo czasami zbyt wysoki poziom abstrakcji powoduje trudno\u015bci w zrozumieniu tematu. Pocz\u0105tkiem dyskusji by\u0142a opinia, \u017ce [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/posts\/123"}],"collection":[{"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/comments?post=123"}],"version-history":[{"count":4,"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":141,"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/posts\/123\/revisions\/141"}],"wp:attachment":[{"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/media?parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/categories?post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rafallancucki.pl\/index.php\/wp-json\/wp\/v2\/tags?post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}