{"id":1084,"date":"2023-12-05T02:00:00","date_gmt":"2023-12-05T01:00:00","guid":{"rendered":"https:\/\/kanbanprzykawie.pl\/?p=1084"},"modified":"2024-06-02T21:52:11","modified_gmt":"2024-06-02T19:52:11","slug":"odcinek-62-czy-zadania-na-tablicy-kanban-moga-zawracac","status":"publish","type":"post","link":"https:\/\/kanbanprzykawie.pl\/index.php\/2023\/12\/05\/odcinek-62-czy-zadania-na-tablicy-kanban-moga-zawracac\/","title":{"rendered":"Odcinek 62. Czy zadania na tablicy Kanban mog\u0105 zawraca\u0107?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Temat, kt\u00f3ry poruszymy w obecnym odcinku podcastu to prawdziwy evergreen \u2013 wiecznie zielona ro\u015blina. Pytanie, kt\u00f3re wraca przy praktycznie ka\u017cdej okazji szkoleniowej czy konsultacyjnej: czy zadania na tablicy Kanban mog\u0105 zawraca\u0107?<\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-soundcloud wp-block-embed-soundcloud\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"62. Czy zadania mog\u0105 wraca\u0107? by Kanban przy kawie\" width=\"750\" height=\"400\" scrolling=\"no\" frameborder=\"no\" src=\"https:\/\/w.soundcloud.com\/player\/?visual=true&#038;url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F1669742934&#038;show_artwork=true&#038;maxheight=1000&#038;maxwidth=750&#038;secret_token=s-Vh9yZudXHd7\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Bardzo cz\u0119sto rozpoczynam rozmowy zwi\u0105zane z tym &#8211; czym jest Kanban i jak go rozumie\u0107? &#8211; od prezentacji jakiej\u015b tablicy. Wtedy te\u017c pada pytanie, \u017ce skoro tablica pokazuje przep\u0142yw pracy, to po kt\u00f3rej jej stronie spodziewaliby\u015bmy si\u0119 zada\u0144 sko\u0144czonych lub bliskich uko\u0144czenia. Tu odpowied\u017a prawie jednoznacznie pada, \u017ce zadania takie znajduj\u0105 si\u0119 po prawej stronie tablicy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W kulturze, w kt\u00f3rej uczymy si\u0119 od ma\u0142ego pisa\u0107 i czyta\u0107 od lewej do prawej naturalnym jest przep\u0142yw zada\u0144 na tablicach w\u0142a\u015bnie w ten sam spos\u00f3b. Niejednokrotnie jednak zdarza si\u0119, \u017ce zadanie trafia na jaki\u015b etap lub aktywno\u015b\u0107, kt\u00f3re nie id\u0105 po naszej my\u015bli i to oznacza, \u017ce stajemy w niekomfortowej sytuacji &#8211; co zrobi\u0107 z takim zadaniem?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wiele os\u00f3b s\u0105dzi, \u017ce na tablicach Kanban zadania pod \u017cadnym pozorem nie powinny wraca\u0107, czyli przesuwa\u0107 si\u0119 w lew\u0105 stron\u0119, poniewa\u017c jest to ruch niezgodny z przep\u0142ywem wytwarzania warto\u015bci czy uzyskiwania informacji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wychodz\u0105c jednak od jednej z praktyk Metody Kanban &#8211; zacznij od tego, co robisz obecnie, warto zastanowi\u0107 si\u0119, co obecnie robimy z zadaniami, kt\u00f3re napotykaj\u0105 w swoim cyklu \u017cyciowym moment, kt\u00f3rym chcemy cofn\u0105\u0107 je w lew\u0105 stron\u0119.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Najcz\u0119\u015bciej s\u0142ysz\u0119, \u017ce zadanie nie spe\u0142nia jakich\u015b kryteri\u00f3w jako\u015bciowych albo funkcjonalnych, kt\u00f3re uzasadnia\u0142yby przesuni\u0119cie go do kolejnego stanu (najcz\u0119\u015bciej pasywnego) w praw\u0105 stron\u0119. Co to oznacza m\u00f3wi\u0105c po ludzku? Na przyk\u0142ad to, \u017ce zadanie nie przechodzi prawid\u0142owo przegl\u0105du kodu, nie przechodzi \u201ena zielono\u201d wszystkich przypadk\u00f3w testowych albo \u017ce klient na wczesnym etapie feedbacku odrzuca istniej\u0105ce rozwi\u0105zanie czy design.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uproszczone my\u015blenie sugeruje, \u017ce w pracy intelektualnej jeste\u015bmy w stanie przewidywa\u0107 i przeciwdzia\u0142a\u0107 takim sytuacjom przez dok\u0142adn\u0105 specyfikacj\u0119 wymaga\u0144 czy zapewnienie bardzo wyczerpuj\u0105cych kryteri\u00f3w wyj\u015bcia z poprzednich kolumn, co w Kanbanie nazywamy kryteriami wyj\u015bcia lub po angielsku exit criteria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Poniewa\u017c jednak dzia\u0142amy w obszarze nienamacalnej pracy opartej o wiedz\u0119, pracy cz\u0119sto niepowtarzalnej, to wsz\u0119dzie tam, gdzie nast\u0119puje komunikacja kilku os\u00f3b, zawsze istnieje ryzyko, \u017ce, m\u00f3wi\u0105c wprost, nie dogadamy si\u0119 i pomimo wielu istniej\u0105cych i pomagaj\u0105cych nam zasad oraz regu\u0142 mo\u017ce doj\u015b\u0107 do sytuacji, w kt\u00f3rej wyprodukujemy co\u015b, co nie b\u0119dzie spe\u0142nia\u0142o pierwotnie oczekiwanej jako\u015bci czy funkcjonalno\u015bci.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W takich sytuacjach staramy si\u0119 zwizualizowa\u0107 jako\u015b t\u0119 sytuacj\u0119 i mamy ochot\u0119 przysun\u0105\u0107 zadanie do wcze\u015bniejszej fazy, by pokaza\u0107, \u017ce musimy wr\u00f3ci\u0107 do jakiej\u015b innej aktywno\u015bci.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Je\u015bli cofa\u0107, to gdzie?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pierwszym najcz\u0119\u015bciej stosowanym podej\u015bciem jest cofanie zadania, czyli przenoszenie go do jakiej\u015b wcze\u015bniejszej kolumny po lewej stronie. Nie m\u00f3wimy, \u017ce to rozwi\u0105zanie jest idealne albo kategorycznie zabronione, ale warto zada\u0107 sobie pytanie: do jakiej kolumny przesuwamy to zadanie? Je\u015bli nie chcemy stosowa\u0107 systemu wpychania pracy innym, tzw. systemu push, to prawdopodobnie powinni\u015bmy przesun\u0105\u0107 takie zadanie do wybranej kolumny pasywnej. Tak\u0105 kolumn\u0105 mo\u017ce by\u0107 dedykowana kolumna na zadania otwarte po raz kolejny, ale te\u017c mo\u017ce by\u0107 to kolumna, w kt\u00f3rej b\u0119d\u0105 znajdowa\u0142y si\u0119 nowe, dot\u0105d nie rozpocz\u0119te zadania. Je\u017celi ho\u0142dujemy mantrze: \u201estop starting, start finishing\u201d to prawdopodobnie zadania umieszczane w tej samej kolumnie, w kt\u00f3rej znajduj\u0105 si\u0119 zupe\u0142nie nowe, powinny znajdowa\u0107 si\u0119 powy\u017cej nich tak, by motywowa\u0107 osoby, kt\u00f3re teraz podejm\u0105 kolejne zadania do pracy nad poprawianiem tym zada\u0144, kt\u00f3re pierwotnie nie przesz\u0142y przez ca\u0142y system, a w kt\u00f3re ju\u017c wcze\u015bniej zainwestowali\u015bmy czas. Je\u015bli nie stoi to w opozycji do istniej\u0105cych klas us\u0142ug, to poprawianie zada\u0144 raz rozpocz\u0119tych powinno mie\u0107 wi\u0119kszy priorytet ni\u017c rozpoczynanie nowych rzeczy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tego typu podej\u015bcie jest problematyczne z perspektywy \u0142atwego i wiarygodnego \u015bledzenia przep\u0142ywu pracy. Wi\u0119kszo\u015b\u0107 narz\u0119dzi, nawet bardziej zaawansowanych, kt\u00f3re \u015bledz\u0105 metryki przep\u0142ywu, m\u00f3wi\u0105c kolokwialnie, wy\u0142o\u017cy si\u0119 na takiej sytuacji, a wi\u0119c trudno b\u0119dzie powiedzie\u0107, jaki by\u0142 w\u0142a\u015bciwy czas realizacji tych element\u00f3w, kt\u00f3re wraca\u0142y.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jest to te\u017c podej\u015bcie, kt\u00f3re pokazuje kultur\u0119 w kt\u00f3rej przerzucamy sobie niechciany \u201eticket\u201d, troch\u0119 jak gor\u0105cego ziemniaka.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podsumowuj\u0105c, je\u015bli obecnie cofamy zadania i chcemy na razie trzyma\u0107 si\u0119 tego podej\u015bcia, to ustalmy jasno dla wszystkich, do kt\u00f3rej kolumny zadania s\u0105 cofane.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Poka\u017cmy, co posz\u0142o nie tak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Drugim podej\u015bciem jest tworzenie r\u00f3\u017cnego rodzaju zada\u0144 typu \u201eprzer\u00f3bka czy \u201eb\u0142\u0105d wewn\u0119trzny\u201d cz\u0119sto nazywanych po angielsku \u201echildren tasks\u201d, czyli dzie\u0107mi zadania nadrz\u0119dnego. Te zadania pokazuj\u0105, \u017ce konieczne jest dorobienie jakie\u015b brakuj\u0105cej cz\u0119\u015bci funkcjonalno\u015bci albo poprawienie jako\u015bci. Takie nowe tworzone w przypadku odkrycia jakiej\u015b niezgodno\u015bci zadania zwykle tworzone s\u0105 tam na lewej stronie tablicy (np. Sprint Backlog) i maj\u0105 one podobny cykl zada\u0144 cykl \u017cycia jak ich zadania nadrz\u0119dne. Takie zadania dzieci (cz\u0119sto sub-taski) w\u0119druj\u0105 przez tablic\u0119 do momentu spotkania si\u0119 ze swoim zadaniem rodzicem, w kt\u00f3rym mo\u017cemy wznowi\u0107 aktywno\u015b\u0107 na przyk\u0142ad testowania albo odbioru przez klienta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Takie rozwi\u0105zanie pozwala zaobserwowa\u0107, jak du\u017cy przest\u00f3j tego zadania zosta\u0142 spowodowany oraz, jak d\u0142ugo trwa\u0142a poprawka cz\u0119\u015bci funkcjonalno\u015bci. Na dodatek, je\u015bli we\u017amiemy pod uwag\u0119 wszystkie elementy, kt\u00f3re b\u0119d\u0105 nasz system opuszcza\u0142y znajdziemy w\u015br\u00f3d nich takie, kt\u00f3re takich element\u00f3w pod\u0142\u0105czonych nie b\u0119d\u0105 mia\u0142y i to oznacza, \u017ce przesz\u0142y przez system prawid\u0142owo ju\u017c za pierwszym razem oraz takie, kt\u00f3re b\u0119d\u0105 mia\u0142y jedno lub wi\u0119cej takich podzada\u0144, co pokazuje pewnego rodzaju dor\u00f3bki. To przy okazji spotkania takiego jak Flow Review mo\u017ce by\u0107 pomocne by zrozumie\u0107:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>kt\u00f3re zadania,<\/li>\n\n\n\n<li>z jakich \u017ar\u00f3de\u0142,<\/li>\n\n\n\n<li>w jaki spos\u00f3b opisywane przechodz\u0105 przez nasze filtry jako\u015bciowe.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Czy te\u017c inne czynniki powoduj\u0105ce konieczno\u015b\u0107 poprawiania.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rozwi\u0105zanie takie wspiera lepiej \u015bledzenie metryk przep\u0142ywu zar\u00f3wno tych element\u00f3w nadrz\u0119dnych, jak i podrz\u0119dnych. Tu b\u0119dziemy musieli uwa\u017ca\u0107, by nie wpisywa\u0107 do tempa dostarczania czy przepustowo\u015bci tych zada\u0144 \u201edzieci\u201d, poniewa\u017c nie s\u0105 to zadania pierwotnie zam\u00f3wione przez klienta, a efekt w\u0142a\u015bnie czego\u015b, co sami wygenerowali\u015bmy. To w Kanbanie nazywamy z angielskiego \u201efailure demand\u201d, czyli zapotrzebowanie w wyniku niepowodzenia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pewien punkt b\u00f3lu mo\u017ce spowodowa\u0107, \u017ce przy powy\u017cszym podej\u015bciu zadania b\u0119d\u0105 musia\u0142y zatrzyma\u0107 si\u0119 na przyk\u0142ad w kolumnie \u201etestowanie\u201d, zaj\u0105\u0107 tam pewn\u0105 prac\u0119 w toku, co by\u0107 mo\u017ce ograniczy liczb\u0119 zada\u0144, nad kt\u00f3rymi b\u0119dziemy r\u00f3wnolegle pracowa\u0107 przy testowaniu i b\u0119dziemy musieli poczeka\u0107, a\u017c wznowimy t\u0119 aktywno\u015b\u0107. Tu nale\u017cy uwa\u017ca\u0107 by nie oskar\u017ca\u0107 os\u00f3b odpowiedzialnych za testowania jako te, kt\u00f3re przyczyniaj\u0105 si\u0119 do starzenia pracy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lekcje wyci\u0105gni\u0119te przy okazji Flow Review warto wpisa\u0107 w nasze jasne i jawne zasady.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podsumowuj\u0105c &#8211; mo\u017cemy pokazywa\u0107 prac\u0119 dodatkow\u0105 nad zadaniami w postaci zada\u0144 pod\u0142\u0105czonych do zadania nadrz\u0119dnego, co pozwala nam lepiej mierzy\u0107 przep\u0142yw zar\u00f3wno jednostek nadrz\u0119dnych, jak i podrz\u0119dnych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A mo\u017ce tak doci\u0105gnijmy to wsp\u00f3lnie?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Trzecim podej\u015bciem, sp\u00f3jnym z filozofi\u0105, kt\u00f3ra m\u00f3wi o tym, \u017ce to, co widnieje w nag\u0142\u00f3wku kolumny, jest w\u0142a\u015bciwie jedynie aktywno\u015bci\u0105 wiod\u0105c\u0105, a nie jedyn\u0105 jaka mo\u017ce mie\u0107 miejsce, jest wsp\u00f3lna praca nad zadaniem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zadanie, kt\u00f3re zatrzyma\u0142o si\u0119 w aktywno\u015bci takiej jak przyk\u0142adowe testowanie, b\u0119dzie tam oczekiwa\u0142o, a\u017c w\u0142a\u015bciwa osoba (ta, kt\u00f3ra wykonywa\u0142a to zadanie wcze\u015bniej albo nowa osoba skierowana do tego) przyjmie na siebie w\u0142a\u015bcicielstwo nad zadaniem, cz\u0119sto w parze z kim\u015b, kto zg\u0142osi\u0142 jakie\u015b niedoskona\u0142o\u015bci czy b\u0142\u0119dy i w podej\u015bciu kolaboracyjnym taka osoba przypisze si\u0119 do tego zadania i rozpocznie napraw\u0119.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Co mo\u017ce spowodowa\u0107 pewien zgrzyt? Dorabianie czego\u015b w kolumnie, kt\u00f3ra pierwotnie mo\u017ce nas swoj\u0105 nazw\u0105 myli\u0107 \u2013 nowy lub kontynuowany development mo\u017ce dzia\u0107 si\u0119 w kolumnie \u201etestowanie\u201d. Pami\u0119tajmy jednak o tym, \u017ce w\u0142a\u015bciwie cz\u0119sto jest tak, \u017ce nad jednym zadaniem prowadzone s\u0105 pewne aktywno\u015bci r\u00f3wnolegle &#8211; na przyk\u0142ad w momencie pierwotnego developmentu kto\u015b r\u00f3wnie\u017c m\u00f3g\u0142 tworzy\u0107 przypadki testowe. Tym razem pokazujemy, \u017ce zadanie zatrzyma\u0142o si\u0119 na etapie testowania i czeka, a\u017c pojawi si\u0119 asysta, pomoc ze strony kogo\u015b, kto jest w stanie naprawi\u0107 co\u015b do takiego stanu, \u017ceby mo\u017cna by\u0142o wznowi\u0107 przyk\u0142adowe testowanie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To jest podej\u015bcie bardzo dalekie od przerzucania sobie ticket\u00f3w, jak gor\u0105cych ziemniak\u00f3w, poniewa\u017c m\u00f3wimy, \u017ce w\u0142a\u015bnie w duchu wsp\u00f3\u0142pracy nad zadaniem mo\u017ce rozpoczniemy od rozmowy testera z deweloperem. By\u0107 mo\u017ce w czasie rzeczywistym powstan\u0105 nowe dane testowe. Mo\u017ce za to feedback w postaci testowania b\u0119dzie robiony tak szybko jak to mo\u017cliwe, w efekcie czego nie b\u0119dziemy sp\u0119dza\u0107 czasu w oczekiwaniu na rozpocz\u0119cie nowych test\u00f3w.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tu w temacie metryk warto by\u0142oby oczywi\u015bcie odnotowa\u0107 co\u015b takiego w zadaniu i pokaza\u0107, \u017ce to zadanie zosta\u0142o w taki odmienny wzgl\u0119dem innych spos\u00f3b zrealizowane.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podsumowuj\u0105c mo\u017ce by\u0107 tak, \u017ce kultura w kt\u00f3rej pracujemy, skupienie na efekcie (outcome) pozwoli zrezygnowa\u0107 z zawracania zada\u0144.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Powy\u017csze przyk\u0142ady nie wyczerpuj\u0105 wszystkiego, co mo\u017cemy zrobi\u0107, ale zamiast szuka\u0107 innych, bardziej egzotycznych rozwi\u0105za\u0144, mo\u017ce warto zada\u0107 sobie pytanie, czy wszyscy rozumiej\u0105 obecne sytuacje, kt\u00f3re powoduj\u0105, \u017ce chcemy zadania zawraca\u0107 i czy robimy to w sp\u00f3jny spos\u00f3b?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A Wy co robicie z zadaniami, kiedy czujecie, \u017ce powinny wr\u00f3ci\u0107?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Temat, kt\u00f3ry poruszymy w obecnym odcinku podcastu to prawdziwy evergreen \u2013 wiecznie zielona ro\u015blina. Pytanie, kt\u00f3re wraca przy praktycznie ka\u017cdej okazji szkoleniowej czy konsultacyjnej: czy zadania na tablicy Kanban mog\u0105 zawraca\u0107?<\/p>\n","protected":false},"author":1,"featured_media":1101,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[8,5],"tags":[6],"class_list":["post-1084","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-podcast","category-praktyka","tag-kanban"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/kanbanprzykawie.pl\/wp-content\/uploads\/2023\/12\/Okladka-6162-podcast-WP-1.png?fit=900%2C900&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/posts\/1084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1084"}],"version-history":[{"count":6,"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/posts\/1084\/revisions"}],"predecessor-version":[{"id":1102,"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/posts\/1084\/revisions\/1102"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/media\/1101"}],"wp:attachment":[{"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/categories?post=1084"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kanbanprzykawie.pl\/index.php\/wp-json\/wp\/v2\/tags?post=1084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}