{"id":505,"date":"2020-03-10T14:15:45","date_gmt":"2020-03-10T14:15:45","guid":{"rendered":"https:\/\/kalkus.dev\/?p=505"},"modified":"2023-08-24T23:25:32","modified_gmt":"2023-08-24T23:25:32","slug":"scrum-zabija","status":"publish","type":"post","link":"https:\/\/kalkus.dev\/blog\/2020\/03\/10\/scrum-zabija\/","title":{"rendered":"Scrum zabija"},"content":{"rendered":"\n<h3>Z nadej\u015bciem Agile wi\u0105za\u0142y si\u0119 du\u017ce nadzieje. Wszelkie szkolenia i manifesty obiecywa\u0142y przys\u0142owiowe z\u0142ote g\u00f3ry. Waterfall mia\u0142 by\u0107 z\u0142y, dostarcza\u0107 biznesowi co\u015b, czego ju\u017c nie chcia\u0142 albo nigdy nie chcia\u0142, za\u015b metodyki zwinne wprowadza\u0142y nas w \u015bwiat, w kt\u00f3rym klienci s\u0105 zadowoleni, a produkt powstaje przyrostowo&#8230;<\/h3>\n\n\n\n<p>W wi\u0119kszo\u015bci przypadk\u00f3w obietnice Agile okaza\u0142y si\u0119 k\u0142amstwem.<\/p>\n\n\n\n<p>Widzia\u0142em projekty. Wielkie projekty. Ma\u0142e projekty. D\u0142ugie i kr\u00f3tkie. Zabite przez Scrum.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><em><strong>Przed<\/strong><\/em><\/p>\n\n\n\n<p>Jak wspomnia\u0142em, w narracji Agile pojawia si\u0119 omal zawsze manicheizm, czyli walka dobra ze z\u0142em. Dobry Agile przybywa nas zbawi\u0107 od z\u0142ego Waterfalla. Tyle tylko, \u017ce w projektach, w kt\u00f3rych pracowa\u0142em ja i moi wsp\u00f3\u0142pracownicy nie by\u0142o mitycznego Waterfalla. Zamiast niego by\u0142y jakie\u015b nieustrukturyzowane pr\u00f3by zarz\u0105dzania projektami. Bez nazwy, bez dziesi\u0119ciu przykaza\u0144 jak dzia\u0142a\u0107, za to z do\u015bwiadczeniem i m\u0105dro\u015bci\u0105 organizacji, kt\u00f3re te projekty organizowa\u0142y. Co ciekawe te metodyki <em>ad hoc<\/em> dzia\u0142a\u0142y. Nie by\u0142y sformalizowane, ale przynosi\u0142y warto\u015b\u0107 przedsi\u0119biorstwom.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"808\" height=\"1024\" src=\"https:\/\/kalkus.dev\/wp-content\/uploads\/2020\/03\/fight-good-devil-024.Jacob_Wrestles_with_the_Angel-808x1024.jpg\" alt=\"walka dobra ze z\u0142em scrum\" class=\"wp-image-1055\" srcset=\"https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/03\/fight-good-devil-024.Jacob_Wrestles_with_the_Angel-808x1024.jpg 808w, https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/03\/fight-good-devil-024.Jacob_Wrestles_with_the_Angel-237x300.jpg 237w, https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/03\/fight-good-devil-024.Jacob_Wrestles_with_the_Angel-768x973.jpg 768w, https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/03\/fight-good-devil-024.Jacob_Wrestles_with_the_Angel-1212x1536.jpg 1212w, https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/03\/fight-good-devil-024.Jacob_Wrestles_with_the_Angel.jpg 1486w\" sizes=\"(max-width: 808px) 100vw, 808px\" \/><\/figure>\n\n\n\n<p>W \u017cadnym \u201epre-Agile\u2019owym\u201d projekcie, o kt\u00f3rym s\u0142ysza\u0142em nie by\u0142a problemem nadmierna analiza, czy kurczowe trzymanie si\u0119 planu, jakie rzekomo mia\u0142o miejsce w Waterfallu. By\u0107 mo\u017ce obserwowa\u0142em ju\u017c inny \u015bwiat, ni\u017c tw\u00f3rcy metodyk zwinnych, mo\u017ce by\u0142 to jaki\u015b z\u0142oty \u015brodek, moment przej\u015bciowy \u2013 tego nie wiem.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><em><strong>Transformacja<\/strong><\/em><\/p>\n\n\n\n<p>Pocz\u0105tek implementacji Agile w kraju, w mojej percepcji, zacz\u0105\u0142 si\u0119 od szkole\u0144. Robi\u0142y wra\u017cenie. Na warsztatach wszystko si\u0119 udawa\u0142o, teoria brzmia\u0142a rozs\u0105dnie. Wszyscy przecie\u017c chcieli\u015bmy zadowoli\u0107 klient\u00f3w i dostarcza\u0107 warto\u015b\u0107 biznesow\u0105 od pierwszwego sprintu. To szlachetne pobudki.<\/p>\n\n\n\n<p>Wykresy wygl\u0105da\u0142y ciekawie i idea ogl\u0105dania post\u0119pu pracy w czasie rzeczywistym by\u0142a kusz\u0105ca \u2013 technokratyczna i nowoczesna. Estymacja nie czasu, a z\u0142o\u017cono\u015bci wydawa\u0142a si\u0119 odsuwa\u0107 od nas odwieczn\u0105 czar\u0119 goryczy \u2013 podawania czasu, jaki zajmie nam wykonanie zadania. Byli\u015bmy do\u015b\u0107 entuzjastyczni.<\/p>\n\n\n\n<p>Dodam, \u017ce w lokalnej, polskiej specyfice Agile oznacza\u0142 omal zawsze Scrum. Moje uwagi krytyczne dotycz\u0105 g\u0142\u00f3wnie, je\u015bli nie wy\u0142\u0105cznie tej metodologii. <\/p>\n\n\n\n<p class=\"has-medium-font-size\"><em><strong>Efekty<\/strong><\/em><\/p>\n\n\n\n<p>Do\u015b\u0107 szybko okaza\u0142o si\u0119, \u017ce Agile jest troch\u0119 jak\nkomunizm \u2013 idee brzmi\u0105 pi\u0119knie, ale w praktyce ju\u017c tak cudownie nie jest. Co\nwi\u0119cej zarzuty, \u017ce Scrum nie przynosi korzy\u015bci bywaj\u0105 r\u00f3wnie\u017c krytykowane na\nspos\u00f3b sowiecki \u2013 \u201eto nie by\u0142 prawdziwy scrum\u201d.<\/p>\n\n\n\n<p>By nie pozosta\u0107 go\u0142os\u0142ownym, co do problem\u00f3w, przejd\u0119 przez kolejne dysfunkcjonalne elementy&#8230;<\/p>\n\n\n\n<p><em><strong>Estymacja<\/strong><\/em><\/p>\n\n\n\n<p>Estymacja oderwana od czasu i ograniczona do liczb z ci\u0105gu Fibonacciego sta\u0142a si\u0119 rytua\u0142em nu\u017c\u0105cym i w istocie bezu\u017cytecznym. W wi\u0119kszo\u015bci zespo\u0142\u00f3w, z kt\u00f3rymi pracowa\u0142em mo\u017cna by\u0142o bez zastanowienia \u201ewyceni\u0107\u201d zadanie. W jednym z nich w zasadzie wyceny sprowadza\u0142y si\u0119 do 3 i 5. Mimo tego po\u015bwi\u0119ca\u0142o si\u0119 zawsze mn\u00f3stwo czasu na wyja\u015bnianie natury zada\u0144.<\/p>\n\n\n\n<p>We wszystkich zespo\u0142ach wyceny r\u00f3\u017cnicowa\u0142y si\u0119 szybko do 3-5-8. Osiem zwykle za\u015b by\u0142o rozbijane na mniejsze zadania. De facto zadania by\u0142y ma\u0142e albo du\u017ce, lub te\u017c za du\u017ce &#8211; i wtedy przekszta\u0142cane w ma\u0142e albo du\u017ce. Mn\u00f3stwo na to czasu zwykle by\u0142o marnotrawione, a trafno\u015b\u0107 estymacji &#8220;pojemno\u015bci&#8221; sprintu i tak znikoma.<\/p>\n\n\n\n<p><strong>W<em>ykres spalania i planowanie sprintu<\/em><\/strong><\/p>\n\n\n\n<p>Wykres spalania to chyba najbardziej zabawna rzecz w\nScrumie. Prawd\u0119 m\u00f3wi\u0105c w \u017cadnym zespole nie widzia\u0142em jeszcze, by wykres cho\u0107\nodrobin\u0119 przypomina\u0142 to, jak wygl\u0105da\u0107 powinien. Albo nic nie jest \u201espalane\u201d\nprzez tydzie\u0144, a potem nagle spada. Albo ro\u015bnie, bo nowe zadania s\u0105 dodawane do\nsprintu. Albo zn\u00f3w jest sta\u0142\u0105, bo praca jest wykonywana, ale zadania nie s\u0105\nzamykane z powodu blokad.<\/p>\n\n\n\n<p>Oczywi\u015bcie powodem niewydolno\u015bci jest binarno\u015b\u0107 statusu zada\u0144. Zadania nie maj\u0105 natury \u201edo zrobienia\u201d albo \u201ezrobione\u201d. Je\u015bli w \u017cyciu zaplanujemy sobie w przysz\u0142ym roku kupi\u0107 mieszkanie, straci\u0107 10 kilo, zrobi\u0107 kurs Vue.js i kupi\u0107 psa, to o ile to ostatnie mo\u017ce odby\u0107 si\u0119 szybko, to kolejne zadania b\u0119d\u0105 na rocznym wykresie nieustannie lini\u0105 prost\u0105 \u2013 a\u017c do momentu zako\u0144czenia. Co przecie\u017c przeczy celowi samego wykresu \u2013 ilustracji post\u0119pu.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"737\" height=\"557\" src=\"https:\/\/kalkus.dev\/wp-content\/uploads\/2020\/03\/burndown.png\" alt=\"\" class=\"wp-image-537\" srcset=\"https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/03\/burndown.png 737w, https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/03\/burndown-300x227.png 300w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><\/figure><\/div>\n\n\n\n<p>Planowanie sprintu te\u017c z kolei nigdy si\u0119 nie udaje. Jest to pochodna wadliwych estymat, ale te\u017c z\u0142o\u017cono\u015bci procesu wytwarzania oprogramowania, kt\u00f3r\u0105 pr\u00f3buje si\u0119 kolanem dopchn\u0105\u0107 i ukry\u0107. Jacek robi \u015brednio 12 story point\u00f3w na sprint, Marek 10, \u0141ukasz 5, a Maks 6. Jacek poszed\u0142 na urlop na 2 tygodnie. Wszyscy zrobiliby 33. Zak\u0142adamy, \u017ce odpadnie 8.25, bo przecie\u017c nie b\u0119dziemy wylicza\u0107 velocity ka\u017cdemu z osobna. I co? 3.75, czyli ma\u0142e zadanie nie zmie\u015bci si\u0119 w sprincie, cho\u0107 pozornie powinno. Nie m\u00f3wi\u0105c ju\u017c o tym, \u017ce \u0141ukasz jest praktykantem i bez Jacka robi 3 zamiast 5 story point\u00f3w, a Maks 4 zamiast 6, bo jest juniorem i te\u017c Jacka potrzebuje. Sprint nie dojedzie. <\/p>\n\n\n\n<p><em><strong>Bezmy\u015blna zmienno\u015b\u0107<\/strong><\/em><\/p>\n\n\n\n<p>Klient powinien m\u00f3c zmieni\u0107 kierunek, w kt\u00f3rym idzie\nprojekt, je\u015bli istotne parametry biznesowe uleg\u0142y zmianie. To bez w\u0105tpienia\nzaleta metodyk zwinnych, ich du\u017ca przewaga. Jednak\u017ce w wielu przypadkach\npojawia si\u0119 bezmy\u015blna zmienno\u015b\u0107. Zamiast rozpocz\u0105\u0107 od prototypu, od rysunku,\nzaczyna si\u0119 od pe\u0142nej implementacji, maj\u0105c \u015bwiadomo\u015b\u0107, \u017ce wszystko mo\u017ce by\u0107\nnast\u0119pnie zmienione, bo dzia\u0142amy zwinnie.<\/p>\n\n\n\n<p>W jednym z projekt\u00f3w Agile coach t\u0142umacz\u0105c ide\u0119 zwinno\u015bci narysowa\u0142 zespo\u0142owi kolejno hulajnog\u0119, skuter, motor i samoch\u00f3d. Narysowa\u0142, popatrzy\u0142 i powiedzia\u0142 \u2013 oto zwinno\u015b\u0107, oto iteracyjny rozw\u00f3j. C\u00f3\u017c jednak, gdy od pocz\u0105tku wiemy, \u017ce chcemy zbudowa\u0107 samoch\u00f3d? Czy naprawd\u0119 budowa hulajnogi na pocz\u0105tku pomaga nam w budowie auta p\u00f3\u017aniej? Czy nie jest wr\u0119cz przeciwnie? Czy nie b\u0119dziemy pr\u00f3bowali wykorzysta\u0107 amortyzator\u00f3w z motocykla do projektu samochodu, nara\u017caj\u0105c u\u017cytkownik\u00f3w na niebezpiecze\u0144stwo?<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/external-content.duckduckgo.com\/iu\/?u=http%3A%2F%2Fblog.crisp.se%2Fwp-content%2Fuploads%2F2016%2F01%2FMaking-sense-of-MVP-5.jpg&amp;f=1&amp;nofb=1\" alt=\"Crisp's Blog \u00bb Making sense of MVP (Minimum Viable Product ...\"\/><\/figure>\n\n\n\n<p>Nie musz\u0119 chyba dodawa\u0107, \u017ce powoduje to marnotrawstwo zasob\u00f3w i frustracj\u0119 programist\u00f3w, kt\u00f3rych praca jest wyrzucana do kosza przez kolejne miesi\u0105ce i pory roku&#8230;<\/p>\n\n\n\n<p><em><strong>Trudne pocz\u0105tki<\/strong><\/em><\/p>\n\n\n\n<p>Za\u0142o\u017cenie, \u017ce b\u0119dziemy dostarcza\u0107 warto\u015b\u0107 biznesow\u0105 od pierwszego sprintu jest ca\u0142kowicie idealistyczne. Zawsze, ale to zawsze konieczne jest przygotowanie cho\u0107by pobie\u017cnego planu, wykonanie pewnych czynno\u015bci wst\u0119pnych i pocz\u0105tkowa organizacja. Szczeg\u00f3lnie naiwne jest twierdzenie, \u017ce da si\u0119 \u201edostarcza\u0107 od razu\u201d w dzisiejszych czasach, gdy cz\u0119sto konfiguracja infrastruktury na chmurze, konteneryzacja i projekt architektury \u015bredniej wielko\u015bci projektu mo\u017ce zaj\u0105\u0107 tygodnie.<\/p>\n\n\n\n<p><em><strong>Spotkania<\/strong><\/em><\/p>\n\n\n\n<p>Czasami trzeba si\u0119 spotka\u0107. Przewa\u017cnie jednak trzeba si\u0119\nraczej skupi\u0107 i zastanowi\u0107, ni\u017c spotka\u0107. Spotkania s\u0105 moim zdaniem\nprzekle\u0144stwem Scrum. Widzia\u0142em spotkania, na kt\u00f3rych dwadzie\u015bcia os\u00f3b\nobserwowa\u0142o jedn\u0105, kt\u00f3ra wpisywa\u0142a do Jiry zadanie. Widzia\u0142em spotkania, na\nkt\u00f3rych po\u0142owa zespo\u0142u milcza\u0142a. Widzia\u0142em takie, gdzie dwadzie\u015bcia procent\ngapi\u0142o si\u0119 w telefony.<\/p>\n\n\n\n<p>Spotkania maj\u0105 to do siebie, \u017ce cz\u0119sto nie dotycz\u0105 bezpo\u015brednio uczestnik\u00f3w. Pojawia si\u0119 wtedy nuda. Nuda oraz marnotrawstwo czasu. Dlaczego pracownik, kt\u00f3ry na spotkaniach sp\u0119dza 20% swojego czasu, a z tego po\u0142owa jest marnowana, ma by\u0107 efektywny po spotkaniu? Skoro nie szanuje si\u0119 jego czasu, to czy nie zabija si\u0119 jego nawyku szanowania czasu pracodawcy, klienta?<\/p>\n\n\n\n<p>Oczywi\u015bcie rozwi\u0105zaniem powy\u017cszego jest tworzenie spotka\u0144 w ma\u0142ych grupach. Ma to jednak miejsce rzadko i naturalna jest tendencja do gromadzenia du\u017cej ilo\u015bci os\u00f3b. <\/p>\n\n\n\n<p>O spotkaniach mo\u017cna by pisa\u0107 wiele:<\/p>\n\n\n\n<ul><li>zabijaj\u0105 produktywno\u015b\u0107 programist\u00f3w wyrywaj\u0105c ich ze skupienia, <\/li><li>cz\u0119sto staj\u0105 si\u0119 bezproduktywn\u0105 dyskusj\u0105 o niczym, o ile nie ma agendy i dobrego prowadz\u0105cego,<\/li><li>organizowane za wcze\u015bnie, za p\u00f3\u017ano, zbyt d\u0142ugie, w okolicach obiadu \u2013 potrafi\u0105 uczestnikom odebra\u0107 sen, rado\u015b\u0107 i entuzjazm<\/li><li>zbyt cz\u0119ste \u2013 rujnuj\u0105 poczucie produktywno\u015bci, sensu pracy, irytuj\u0105<\/li><\/ul>\n\n\n\n<p><em><strong>Rezultaty<\/strong><\/em><\/p>\n\n\n\n<p>Wbrew pocz\u0105tkowemu entuzjazmowi na w\u0142asne i cudze oczy\nprzekona\u0142em si\u0119, \u017ce implementacja Scrum w wielu, chyba nawet w wi\u0119kszo\u015bci\nprzypadk\u00f3w, nie podnios\u0142a efektywno\u015bci zespo\u0142\u00f3w i zadowolenia klient\u00f3w, a chaos\nprzypudrowany rytua\u0142ami, spadek wydajno\u015bci i op\u00f3\u017anienie w dostarczaniu\nprodukt\u00f3w. <\/p>\n\n\n\n<p>Nie chcia\u0142bym sprawi\u0107 wra\u017cenia, \u017ce odrzucam ide\u0119 zwinno\u015bci, kt\u00f3ra nadal wydaje si\u0119 bardzo sensowna i kusz\u0105ca. Jednak\u017ce Scrum wydaje si\u0119 zabija\u0107 \u2013 zabija\u0107 entuzjazm, zabija\u0107 zespo\u0142y, projekty. Moje przelotne do\u015bwiadczenia z Kanban pokazuj\u0105, \u017ce Scrum mo\u017ce by\u0107 \u015blep\u0105 uliczk\u0105, a jednocze\u015bnie warto nie obra\u017ca\u0107 si\u0119 na metodyki zwinne. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Wi\u0119cej o metodyce Scrum w mojej ksi\u0105\u017cce &#8211; <a href=\"https:\/\/helion.pl\/view\/178086\/proppz.htm\">Programista. Przewodnik po zawodzie.<\/a><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Z nadej\u015bciem Agile wi\u0105za\u0142y si\u0119 du\u017ce nadzieje. Wszelkie szkolenia i manifesty obiecywa\u0142y przys\u0142owiowe z\u0142ote g\u00f3ry. Waterfall mia\u0142 by\u0107 z\u0142y, dostarcza\u0107 biznesowi co\u015b, czego ju\u017c nie chcia\u0142 albo nigdy nie chcia\u0142, za\u015b metodyki zwinne wprowadza\u0142y nas w \u015bwiat, w kt\u00f3rym klienci s\u0105 zadowoleni, a produkt powstaje przyrostowo&#8230; W wi\u0119kszo\u015bci przypadk\u00f3w obietnice Agile okaza\u0142y si\u0119 k\u0142amstwem. Widzia\u0142em [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1054,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[103,204],"tags":[21,47],"_links":{"self":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/505"}],"collection":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/comments?post=505"}],"version-history":[{"count":17,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/505\/revisions"}],"predecessor-version":[{"id":1421,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/505\/revisions\/1421"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media\/1054"}],"wp:attachment":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media?parent=505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/categories?post=505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/tags?post=505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}