{"id":435,"date":"2021-11-04T11:45:00","date_gmt":"2021-11-04T14:45:00","guid":{"rendered":"https:\/\/suspensao.blog.br\/descrenca\/?p=435"},"modified":"2021-11-04T10:39:40","modified_gmt":"2021-11-04T13:39:40","slug":"ajustando-a-cartela-de-kanban-em-validacao","status":"publish","type":"post","link":"https:\/\/suspensao.blog.br\/descrenca\/ajustando-a-cartela-de-kanban-em-validacao\/","title":{"rendered":"Ajustando a Cartela de Kanban em Valida\u00e7\u00e3o"},"content":{"rendered":"\n<p>Em Kanban, n\u00e3o se pode voltar uma tarefa pra fases anteriores. Como toda regra, h\u00e1 situa\u00e7\u00f5es em que n\u00e3o se aplica. Quais? Veja <a href=\"https:\/\/medium.com\/liferay-engineering-brazil\/afinal-podemos-ou-n%C3%A3o-voltar-as-cartelas-do-quadro-kanban-1644a5c8bc4a\">nesse excelente post<\/a> do grande Eduardo Zoby!<\/p>\n\n\n\n<p>Um exemplo em especial me fez pensar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uma pulga atr\u00e1s da orelha<\/h2>\n\n\n\n<p>O que fazer quando bugs cr\u00edticos s\u00e3o encontrados em uma tarefa que satisfaz os crit\u00e9rios para revis\u00e3o? Zoby explica que o time deixa a cartela em valida\u00e7\u00e3o. Enquanto isso, subtarefas s\u00e3o criadas e executadas.<\/p>\n\n\n\n<p>\u00c9 uma maneira correta e funcional de modelar o processo. Como desenvolvedor, por\u00e9m, sinto certo inc\u00f4modo com este cen\u00e1rio. Por raz\u00f5es bobas, confesso, mas interessantes:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Trabalhar em algo que est\u00e1 &#8220;em valida\u00e7\u00e3o&#8221; soa impreciso. N\u00f3s estamos desenvolvendo quando corrigimos falhas.<\/li><li>Pessoalmente, fico ansioso quando tenho de esperar pelo resultado de uma valida\u00e7\u00e3o. N\u00e3o h\u00e1 diferen\u00e7a pr\u00e1tica, mas h\u00e1 uma psicol\u00f3gica. Temos ag\u00eancia sobre o trabalho que estamos desenvolvendo, mas n\u00e3o sobre o trabalho nosso que est\u00e3o revisando.<\/li><li>Falta clareza na posse da tarefa. Quem \u00e9 o respons\u00e1vel, o desenvolvedor ou o validador? O t\u00edquete define a quem est\u00e1 atribu\u00eddo, mas a pr\u00f3pria <em>coluna<\/em> acaba sendo dividida entre dois papeis.<\/li><\/ol>\n\n\n\n<p>Mas&#8230; como seria uma alternativa?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Imaginando uma f\u00e1brica<\/h2>\n\n\n\n<p>Sendo Kanban inspirado por processos de manufatura, talvez um retorno \u00e0s origens pudesse oferecer alguma alternativa.<\/p>\n\n\n\n<p>Me imaginei (porque n\u00e3o sei nada de engenharia de produ\u00e7\u00e3o) em uma f\u00e1brica de carros. O que acontece com um autom\u00f3vel em montagem se um de seus componentes se provou defeituoso? O carro n\u00e3o volta na esteira de produ\u00e7\u00e3o, mas tampouco vai ser testado. Mais crucialmente, o componente tamb\u00e9m n\u00e3o volta para ser consertado: ele \u00e9 <em>descartado<\/em>.<\/p>\n\n\n\n<p>N\u00e3o d\u00e1 para mapear um processo industrial para engenharia de software, mas a ideia de descartar o componente \u00e9 instigante. Descartar os &#8220;componentes&#8221; da nossa hist\u00f3ria \u00e9 um bom caminho.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">N\u00e3o se conserta o amortecedor enquanto se testa o carro<\/h2>\n\n\n\n<p>Como seriam os &#8220;componentes&#8221; de nossa cartela. Seriam subtarefas, mas apenas se satisfizerem duas condi\u00e7\u00f5es: <\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>s\u00e3o bem definidas o suficiente para serem avali\u00e1veis;<\/li><li>s\u00e3o pequenas o suficiente para que possam ser descartadas.<\/li><\/ol>\n\n\n\n<p>Durante o desenvolvimento, subtarefas seriam criadas prodigamente, inclusive e especialmente se a tarefa estiver &#8220;pronta&#8221; (naquele sentido obscuro que n\u00f3s programadores damos ao termo). Uma vez terminada, cada subtarefa \u00e9 enviada para valida\u00e7\u00e3o; caso falhe, \u00e9 fechada e outra subtarefa \u00e9 aberta. Enquanto isso, a hist\u00f3ria continua em desenvolvimento.<\/p>\n\n\n\n<p>Imagino v\u00e1rias vantagens neste processo:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>as altera\u00e7\u00f5es s\u00e3o revisadas e mergeadas gradativamente \u2014 bem \u00e0 moda do <em>trunk-based developmen<\/em>t.<\/li><li>regress\u00f5es seriam descobertas mais perto da mudan\u00e7a que as causou.<\/li><li>estat\u00edsticas seriam provavelmente mais precisas: trabalho em bugs descobertos n\u00e3o seria mais computado como valida\u00e7\u00e3o.<\/li><\/ol>\n\n\n\n<p>Certamente h\u00e1 pontos em aberto. O que fazer, por exemplo, se ao final a hist\u00f3ria n\u00e3o for aprovada? H\u00e1 que se pensar. Eu tornaria a pr\u00f3pria a revis\u00e3o em uma subtarefa, mas nunca fiz isso. Como n\u00e3o sou engenheiro de produ\u00e7\u00e3o, n\u00e3o sei o que fazem com os carros que falham ao final \u2014 talvez haja alguma inspira\u00e7\u00e3o la!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Um caso de uso peculiar do passado remoto<\/h2>\n\n\n\n<p>Isso tudo \u00e9 um exerc\u00edcio mental, mas \u00e0 medida que pensava, lembrei que j\u00e1 fiz algo similar.<\/p>\n\n\n\n<p>Cuidei do <a href=\"https:\/\/help.liferay.com\/hc\/pt\/articles\/360018184591-Managing-Events-and-Calendar-Resources-with-Liferay-s-Calendar-Portlet\">Calend\u00e1rio da Liferay<\/a> por anos, como uma &#8220;euquipe.&#8221; Comunicar-me com todos os <em>stakeholders<\/em> e codificar ao mesmo tempo era um desafio. Resolvi isto criando muitas subtarefas \u2014 alguns t\u00edquetes chegaram a ter mais de trinta. Enquanto isso, os bugs e hist\u00f3rias permaneciam em desenvolvimento.<\/p>\n\n\n\n<p>\u00c0s vantagens acima, somaram-se outras:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>os <em>pull requests<\/em> menores que eram revistos rapidamente. <\/li><li>os <em>stakeholders<\/em> podiam ver o que eu estava fazendo, se quisessem.<\/li><\/ol>\n\n\n\n<p>Para um componente n\u00e3o-estrat\u00e9gico, estes detalhes foram fundamentais!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vale a pena?<\/h2>\n\n\n\n<p>Deixar em valida\u00e7\u00e3o ou em desenvolvimento a tarefa a corrigir \u00e9 um detalhe sem\u00e2ntico. Ainda assim, acho que pensar no assunto pode ser produtivo. Como n\u00e3o sou agilista, n\u00e3o tenho tanto <em>know-how<\/em> em definir <em>workflows<\/em> de times, mas o ponto de vista dos contribuidores individuais podem ser \u00fateis. Quem sabe este aqui n\u00e3o \u00e9?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Em Kanban, n\u00e3o se pode voltar uma tarefa pra fases anteriores. Como toda regra, h\u00e1 situa\u00e7\u00f5es em que n\u00e3o se aplica. Quais? Veja nesse excelente post do grande Eduardo Zoby! Um exemplo em especial me fez pensar. Uma pulga atr\u00e1s da orelha O que fazer quando bugs cr\u00edticos s\u00e3o encontrados em uma tarefa que satisfaz [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"A cartela do quadro Kanban foi de \"em desenvolvimento' para \"em valida\u00e7\u00e3o,\" mas problemas cr\u00edticos foram encontrados. Como lidar com isso sem fazer a cartela voltar atr\u00e1s? H\u00e1 v\u00e1rias maneiras \u2014 e aqui est\u00e1 minha favorita.","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":[114,115],"tags":[121,120,116,122,118,117,119],"class_list":["post-435","post","type-post","status-publish","format-standard","hentry","category-gerenciamento-de-projetos","category-kanban","tag-bug","tag-historia-de-usuario","tag-kanban","tag-liferay","tag-ticket","tag-tiquete","tag-workflow"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p23QLV-71","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/posts\/435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/comments?post=435"}],"version-history":[{"count":6,"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/posts\/435\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/posts\/435\/revisions\/441"}],"wp:attachment":[{"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/media?parent=435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/categories?post=435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/suspensao.blog.br\/descrenca\/wp-json\/wp\/v2\/tags?post=435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}