<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Wagner Fusca on Medium]]></title>
        <description><![CDATA[Stories by Wagner Fusca on Medium]]></description>
        <link>https://medium.com/@wagnerfusca?source=rss-5cf6ff5ace45------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*FW0py1GFzJqKca3xkpJnBA.png</url>
            <title>Stories by Wagner Fusca on Medium</title>
            <link>https://medium.com/@wagnerfusca?source=rss-5cf6ff5ace45------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 12:21:03 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@wagnerfusca/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Seu celular é um belo exemplo de dívida técnica! Dúvida??]]></title>
            <link>https://wagnerfusca.medium.com/seu-celular-%C3%A9-um-belo-exemplo-de-d%C3%ADvida-t%C3%A9cnica-d%C3%BAvida-23f7f9939791?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/23f7f9939791</guid>
            <category><![CDATA[agile-development]]></category>
            <category><![CDATA[dívida-técnica]]></category>
            <category><![CDATA[technical-debt]]></category>
            <category><![CDATA[agile]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Wed, 09 Mar 2022 23:16:16 GMT</pubDate>
            <atom:updated>2022-03-09T23:16:16.113Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*35GY7C28P-Evb_Afr6SW2Q.jpeg" /><figcaption>Fonte: Pixabay</figcaption></figure><h4>Você é uma pessoa perita em acumular dívida técnica e eu vou te provar hoje!</h4><h3>Contexto</h3><p>Você provavelmente tem um smartphone e deve utilizá-lo para tirar fotos, fazer vídeos e acessar alguma rede social. Além disso, você deve utilizar algum app estilo Whatsapp e Telegram para “falar” com seus contatos/amigos. Até o momento, acertei?</p><p>Agora vamos aumentar o contexto: provavelmente no seu smartphone tem uma camera com uma boa resolução para fotos e nele tem um espaço razoável de armazenamento (mais de 32 GB). Além disso seu smartphone está com a opção de armazenar fotos na nuvem para você nunca perder os momentos mais legais!</p><p>No ínicio de uso do smartphone tudo está tão bem! Tudo abre rápido! Passam meses e você continua tirando fotos, fazendo vídeos, recebendo e enviando arquivos no “zap” e assim vai! Até que chega um momento que a nuvem hospedeira (tipo o da Google) te manda esse alerta!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/309/1*bNcGzRRz-NHbVWcxQqVOxg.png" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FxpuG8i4lC04fRUgqI3%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fkingofboysmovie-kingofboys-kobseries-kingofboysseries-xpuG8i4lC04fRUgqI3&amp;image=https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2FxpuG8i4lC04fRUgqI3%2Fgiphy.gif%3Fcid%3D790b76112c0fd9da2ea0d78e3b4cc6900b2f4eb6b1a9e70b%26rid%3Dgiphy.gif%26ct%3Dg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="326" frameborder="0" scrolling="no"><a href="https://medium.com/media/d398a52cb515d6fa8c869611788b704c/href">https://medium.com/media/d398a52cb515d6fa8c869611788b704c/href</a></iframe><h3>E agora o que fazer???</h3><p>São quatros alternativas:</p><ol><li>Comprar mais espaço na nuvem!!! ☁</li><li>Comprar um celular novo! $$</li><li>Deixa do jeito que tá! Não vai parar nada! 🤡</li><li>Entender quais arquivos estão ocupando espaço desnecessário na nuvem, parar um tempo e remover os arquivos desnecessários. E repetir isso pelo menos 1x todo mês. Além disso, também arrumar as configurações para não encher a nuvem de novos itens desnecessários.👀👀</li></ol><blockquote>Pois bem, a resposta da maioria das pessoas não é a opção 4, sendo que é a opção mais barata ao longo do tempo!</blockquote><p>Esse pequeno exemplo é uma boa <strong>metáfora </strong>para você entender o que é dívida técnica. De tanto não termos a <strong>disciplina </strong>de apagar coisas inúteis, a gente vai acumulando arquivos até que chega um momento em que acaba ficando caro para continuar a usar o celular pois ele não atende mais a expectativa do dono, pois o celular está lento, sem espaço, não grava mais vídeos, etc.</p><p>Quando trazemos isso para o mundo de <strong>software</strong>, chamamos isso de <strong>dívida técnica</strong>, que são tipo “sujeiras” ou más práticas. Inicialmente, elas <strong>não </strong>atrapalham o funcionamento do software, mas com o passar do tempo, elas vão se acumulando e começam a deteriorar o sistema. É semelhante a juros mensais que se acumulam em uma dívida bancária. Se você não pagar os juros, você conseguirá mais investir em nada.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FXDAY1NNG2VvobAp9o0%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fmeme-stonks-are-trading-up-XDAY1NNG2VvobAp9o0&amp;image=https%3A%2F%2Fmedia3.giphy.com%2Fmedia%2FXDAY1NNG2VvobAp9o0%2Fgiphy.gif%3Fcid%3D790b761105b54af88ba92dae74fa76089f8183b1c4117e78%26rid%3Dgiphy.gif%26ct%3Dg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="244" frameborder="0" scrolling="no"><a href="https://medium.com/media/76a83f17f49a9418ebb0038f771b2b19/href">https://medium.com/media/76a83f17f49a9418ebb0038f771b2b19/href</a></iframe><p>Um dos motivos para ser tão díficil melhorar um software, é por que ele está cheio de dívida técnica, ou seja, o código não é simples, sem testes automatizados, sem padrão e cheio de outras más práticas. No gráfico abaixo, <a href="https://en.wikipedia.org/wiki/Jim_Highsmith">Jim Highsmith</a> apresenta o <strong>custo da mudança</strong>. Toda mudança em software custa ($$) mas se você não cuida da sua dívida técnica, vai custar mais do que o valor ideal.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/505/0*cWsFln4uV6zNZAnq" /><figcaption><a href="http://jimhighsmith.com/the-financial-implications-of-technical-debt/">http://jimhighsmith.com/the-financial-implications-of-technical-debt/</a></figcaption></figure><h4>E no smartphone??</h4><p>No exemplo do celular, nos pagamos a dívida técnica, removendo as fotos inuteis, por exemplo.</p><p>Sabe aquelas fotos desfocadas e repetidas? <strong>Remova elas!</strong></p><p>Sabe os vídeos do zap e as fotos que chegam em todos os grupos?? <strong>Remova elas!</strong></p><p>Sabe aqueles prints de tela que você usou uma vez e nunca mais usou? <strong>Remova eles!</strong></p><blockquote>REMOVA tudo aquilo que não gera valor nenhum e ocupa espaço de memória</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FwkKRo7N0T1ONO%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fbig-brother-bb17-vanessa-rousso-wkKRo7N0T1ONO&amp;image=https%3A%2F%2Fmedia3.giphy.com%2Fmedia%2FwkKRo7N0T1ONO%2F200.gif%3Fcid%3D790b7611e0c374179f7557f5725b7a92c9ee56b1b8806a14%26rid%3D200.gif%26ct%3Dg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="289" frameborder="0" scrolling="no"><a href="https://medium.com/media/c969d159fe8e8b70286f0997f7f6b43e/href">https://medium.com/media/c969d159fe8e8b70286f0997f7f6b43e/href</a></iframe><blockquote>Mas para fazer isso, leva tempo (as vezes horas, dias, meses). Mas se você não começar a pagar sua dívida técnica, nunca vai melhorar!!!!!</blockquote><p>Os brasileiros estão levando mais tempo para trocar de celular e gerenciar sua dívida técnica nele vai te ajudar a não precisará gastar com um smartphone novo antes do tempo. Para saber mais sobre o comportamento de brasileiros e celulares, veja essa notícia:</p><p><a href="https://canaltech.com.br/smartphone/brasileiros-ficam-mais-de-dois-anos-com-o-mesmo-celular-indica-pesquisa-191135/">Brasileiros ficam mais de dois anos com o mesmo celular, indica pesquisa</a></p><p>Espero que tenha gostado e se você se identificou com algo, deixe um comentário!</p><blockquote>Mas Fusca, não é débito técnico??? Se você chegou até aqui com o conceito de débito técnico, você deve ler esse post !</blockquote><p><a href="https://wagnerfusca.medium.com/como-acabar-com-seu-d%C3%A9bito-t%C3%A9cnico-6dbbb872b6a5">Como acabar com seu débito técnico!</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=23f7f9939791" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Pair programming — materiais confiáveis para lhe ajudar nesse tema]]></title>
            <link>https://wagnerfusca.medium.com/pair-programming-materiais-confi%C3%A1veis-para-lhe-ajudar-nesse-tema-be870a298d68?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/be870a298d68</guid>
            <category><![CDATA[pair-programming]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[extreme-programming]]></category>
            <category><![CDATA[agile-development]]></category>
            <category><![CDATA[pair]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Sat, 16 Oct 2021 14:23:31 GMT</pubDate>
            <atom:updated>2021-10-18T12:48:55.037Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i2qgnQCn32SJrtzmlV6eyw.png" /><figcaption>Fonte: <a href="http://cameracourage.com/tag/how-do-i-become-a-co-driver/">http://cameracourage.com/tag/how-do-i-become-a-co-driver/</a></figcaption></figure><h3>Pair programming — materiais confiáveis para lhe ajudar nesse tema</h3><h4>Parear ou não parear? Aqui você encontrará embasamento para tomar essa decisão!</h4><h3>Breve explicação. Se você já conhece a prática, pode pular essa parte!</h3><p>Trabalhar em par é uma <a href="http://www.extremeprogramming.org/rules/pair.html">prática descrita em XP (eXtreme Programming)</a> e ela é uma alavanca poderosa para promover a <a href="http://www.extremeprogramming.org/rules/collective.html">propriedade coletiva de código fonte</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/630/1*BLASG6UtMkoMICIs-Wgfww.gif" /><figcaption>Fonte: <a href="http://www.extremeprogramming.org/map/code.html">http://www.extremeprogramming.org/map/code.html</a></figcaption></figure><p>No pareamento, duas pessoas estarão trabalhando na mesma tarefa e no mesmo computador durante uma fração de tempo (pode ser horas ou dias ou semanas). Após essa fração de tempo, sugere-se trocar a dupla, ou seja, realizar o <a href="http://www.extremeprogramming.org/rules/movepeople.html">move people around</a>, que é outra prática de XP.</p><p>No pair programming, uma pessoa começa no teclado (na função <em>driver, </em>ou seja, digitará o código) e a outra pessoa irá fazer o papel de navegador (<em>navigator</em>), dando as instruções de como resolver o problema. De tempos em tempos (25 min, por exemplo), os papéis se invertem. <strong>Durante a codificação, utiliza-se testes unitários para garantir a qualidade do trabalho.</strong></p><blockquote>“Duas pessoas na mesma tarefa??? Isso é desperdício!!!”</blockquote><p>Esse questionamento é feito com frequência por lideranças quando surge a ideia de utilizar essa prática para determinadas tarefas. Pensando nisso, preparei um conjunto de conteúdos relevantes e com profundidade para te dar mais segurança na hora de adotar essa prática.</p><h3>[TL;DR]:</h3><ul><li><a href="#250c">O que é programação em par e quais são seus benefícios?</a></li><li><a href="#108f">Razões para você não caminhar numa jornada solitária na programação</a></li><li><a href="#2c45">Parear consome 15% a mais de tempo total de trabalho mas reduz, pelo menos, 15% a quantidade de códigos com defeito</a></li><li><a href="#210d">Pareamento acaba com o comportamento isolado e de ego do programador e ativa áreas cerebrais que não são ativadas enquanto se programa solitariamente</a></li><li><a href="#206f">Conselhos e lições aprendidas ao realizar pareamento</a></li><li><a href="#7189">Parear numa visão de neurociência</a></li><li><a href="#349a">Case de sucesso e pontos de atenção do pareamento — Objective</a></li><li><a href="#f542">Case de redução de bugs e aumento de vazão de tarefas com pareamento — LuizaLabs</a></li><li><a href="#34c3">Case de sucesso de TDD e Pair programming, afetando a cultura organizacional — Ateliê de Software</a></li><li><a href="#cea7">Ao invés de parear, por que não todos do time trabalhando ao mesmo tempo na mesma tarefa (mob programming)?</a></li></ul><h3>Parear consome 15% a mais de tempo total de trabalho mas reduz, pelo menos, 15% a quantidade de códigos com defeito</h3><p>Em fevereiro de 2000, surgiu o primeiro estudo sobre os benefícios da programação pareada. <a href="https://medium.com/u/5d6cbce7e05e">Alistair Cockburn</a> e Laurie Williams realizaram um estudo analisando a quantidade de tempo que o pareamento consome. Foi descoberto que a diferença de tempo é de 15% a mais frente ao trabalho solitário e não o dobro do tempo, como costuma-se afirmar.</p><p>Além disso, foi percebido aumento na qualidade de código (ou seja, menos bugs), menos linhas de código (mais simplicidade) e maior satisfação do time ao trabalhar com pareamento.</p><iframe src="https://drive.google.com/viewerng/viewer?url=https%3A//collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF&amp;embedded=true" width="600" height="780" frameborder="0" scrolling="no"><a href="https://medium.com/media/dc4fd3676f2dde9155254e60ed9ae278/href">https://medium.com/media/dc4fd3676f2dde9155254e60ed9ae278/href</a></iframe><h3>Pareamento acaba com o comportamento isolado e de ego do programador e ativa áreas cerebrais que não são ativadas enquanto se programa solitariamente</h3><p>Em 2016, <a href="https://medium.com/u/5d05df6a76ec">Jon Jagger</a> apresentou no NorDevCon <a href="https://www.infoq.com/presentations/pair-programming-nordevcon-2016/">uma palestra sobre pair programming</a> e nela ele apresenta o conceito <a href="https://blog.db1.com.br/o-que-e-ser-egoless/">Egoless</a> e como a programação pareada pode ajudar para que esse conceito seja aplicado a sua cultura organizacional.</p><p>Ele também apresenta como a troca de informações no pareamento ativa partes do cérebro que ficam “dormentes” quando você programa sozinho.</p><p>Além disso, ele referencia o estudo de produtividade e qualidade citado no tópico acima.</p><p><a href="https://www.infoq.com/presentations/pair-programming-nordevcon-2016/">Pair Programming</a></p><h3>Conselhos e lições aprendidas ao realizar pareamento</h3><p>No link abaixo você encontrará diversas informações sobre programação pareada, padrões e antipadrões dessa prática.</p><p><a href="https://github.com/BillSchofield/pair-programming-advice">GitHub - BillSchofield/pair-programming-advice</a></p><h3>Parear numa visão de neurociência</h3><p><a href="https://medium.com/u/6fb8921bc8e9">Gisele Morilha Gonçalves</a> realizou um estudo aplicando neurociência com a prática ágil de programação pareada. Os resultados podem ser assistidos no vídeo a seguir:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FTmCxjkxo0VU%3Fstart%3D56&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DTmCxjkxo0VU&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FTmCxjkxo0VU%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/4c8c674675fa93dc4e4d64960b10fc7a/href">https://medium.com/media/4c8c674675fa93dc4e4d64960b10fc7a/href</a></iframe><h3>Razões para você não caminhar numa jornada solitária na programação</h3><p><a href="https://medium.com/u/a45b68b1ab11">Ron Jeffries</a> escreveu 12 tweets refletindo sobre o trabalho solitário de programação. Na imagem abaixo você encontrará a primeira parte, para conferir os outros 11 tweets, acesse o link <a href="https://twitter.com/RonJeffries/status/1114808214648967168?s=20">https://twitter.com/RonJeffries/status/1114808214648967168?s=20</a></p><h3>Ron Jeffries on Twitter: &quot;There are a couple of threads going on just now about pairing, mobbing, working together, etc. Some well-reasoned, and some, well, &quot;reasoned&quot; comments address that some people feel more productive working &quot;solo&quot;, and, who knows, for values of &quot;productive&quot;, they might be.1/12 / Twitter&quot;</h3><p>There are a couple of threads going on just now about pairing, mobbing, working together, etc. Some well-reasoned, and some, well, &quot;reasoned&quot; comments address that some people feel more productive working &quot;solo&quot;, and, who knows, for values of &quot;productive&quot;, they might be.1/12</p><h3>Case de redução de bugs e aumento de vazão de tarefas com pareamento — LuizaLabs</h3><p><a href="https://medium.com/u/a73b818b56ef">Victor Castanheiro</a> e <a href="https://medium.com/u/ec84d789d4b4">Rafael Raza de Campos</a> compartilharam o case deles na <a href="https://www.linkedin.com/company/luizalabs?originalSubdomain=br">LuizaLabs</a>. Nesse case, eles aplicaram programação em par e tiveram redução de bugs (código com defeito) em 75% e com menos bugs, foi possível entregar mais tarefas de valor a cada semana.</p><p>Os aprendizados foram tantos que até o formato da mesa foi alterado para ter maior efetividade na programação em par.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Fembed_code%2Fkey%2Frf6iQtAt34tecz&amp;display_name=SlideShare&amp;url=https%3A%2F%2Fwww.slideshare.net%2Ftdc-globalcode%2Ftdc2018sp-trilha-ux-pair-programming-troque-seu-fone-por-um-dev&amp;image=https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Ftdcpairprogramming-troqueseufoneporumdev-180731192723-thumbnail-4.jpg%3Fcb%3D1533065296&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=slideshare" width="600" height="500" frameborder="0" scrolling="no"><a href="https://medium.com/media/6024dbef2327d6a0802d1756a46aca43/href">https://medium.com/media/6024dbef2327d6a0802d1756a46aca43/href</a></iframe><h3>Case de sucesso de TDD e Pair programming, afetando a cultura organizacional — Ateliê de Software</h3><p><a href="https://www.linkedin.com/in/aline-garcia-a2080394/">Aline Garcia</a> e <a href="https://medium.com/u/32f89d403218">Matheus Haddad</a> do <a href="https://medium.com/u/7fde9398a9df">Ateliê de Software</a>, apresentaram um case sobre o impacto da adoção do pair programming e TDD no dia a dia da empresa. Ao adotar ambas as práticas, a cultura de aprendizado é desenvolvida, junto com a autonomia.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Fembed_code%2Fkey%2F4XlehT32Hf2lb5&amp;display_name=SlideShare&amp;url=https%3A%2F%2Fwww.slideshare.net%2Ftdc-globalcode%2Ftdc2018sp-trilha-xp-tdd-e-pair-programming-alem-da-engenharia-de-software&amp;image=https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Ftddepairprogramming-180801144413-thumbnail-4.jpg%3Fcb%3D1533134697&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=slideshare" width="600" height="500" frameborder="0" scrolling="no"><a href="https://medium.com/media/5a294aeb62406b71f57ccb456e2557d4/href">https://medium.com/media/5a294aeb62406b71f57ccb456e2557d4/href</a></iframe><h3>Case de sucesso e pontos de atenção do pareamento — Objective</h3><p>A empresa <a href="https://www.youtube.com/channel/UCg_CjNJP94BfYtGnPsefzwg">Objective</a> tem um case detalhado de como foi escalado o ágil dentro de suas equipes de software através da adoção de diversas práticas ágeis, dentre ela o pareamento de software e testes unitários. No vídeo abaixo você vai ouvir a trajetória de erros e sucessos com pair programming.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FkUJDgCS0-SY%3Fstart%3D417%26feature%3Doembed%26start%3D417&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DkUJDgCS0-SY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FkUJDgCS0-SY%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/568bd118d96b9d94dcacd2ca324c27c2/href">https://medium.com/media/568bd118d96b9d94dcacd2ca324c27c2/href</a></iframe><h3>O que é programação em par e quais são seus benefícios?</h3><p>Nesse material, <a href="https://medium.com/u/f402e464b16d">andrefaria</a> descreve de o que é a programação em par, quais áreas do cérebro são ativadas com essa prática e como ela ajuda você a chegar no Flow State.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Fembed_code%2Fkey%2FEW9So6Q79ftqy1&amp;display_name=SlideShare&amp;url=https%3A%2F%2Fpt.slideshare.net%2Fandrefaria%2Fprogramao-em-par&amp;image=https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fprogramaoempar-111019074556-phpapp02-thumbnail-4.jpg%3Fcb%3D1319010393&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=slideshare" width="600" height="500" frameborder="0" scrolling="no"><a href="https://medium.com/media/beb77f7ffa34cb7aa84998dd63044273/href">https://medium.com/media/beb77f7ffa34cb7aa84998dd63044273/href</a></iframe><h3>Ao invés de parear, por que não todos do time trabalhando ao mesmo tempo na mesma tarefa (mob programming)?</h3><p><a href="https://woodyzuill.com/">Woody Zuill</a> é o criador do <a href="https://mobprogramming.org/">Mob Programming</a>. Ele esteve no <a href="https://medium.com/u/ed20a09d08a">Agile Brazil</a> de 2019 compartilhando sobre essa prática. A palestra está disponível no link abaixo e você entenderá como Mob pode reduzir o leadtime das tarefas e aumentar a qualidade do trabalho.</p><p>Com Mob Programming, todas as pessoas de um time estarão numa mesma sala e no mesmo computador, resolvendo um único problema. Com isso, o tempo de interrupções será próximo a zero, não existindo desperdício.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FEj771ihzbKY%3Fstart%3D21%26feature%3Doembed%26start%3D21&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DEj771ihzbKY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FEj771ihzbKY%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/09da3c89808b7ac6dba0457ebc63d59f/href">https://medium.com/media/09da3c89808b7ac6dba0457ebc63d59f/href</a></iframe><p><a href="https://www.industriallogic.com/people/tottinge/">Tim Ottinger</a>, escreveu uma série de dicas para realizar mob programming de forma efetiva.</p><p><a href="https://www.industriallogic.com/blog/a-few-tips-for-mob-programming/">A Few Tips for Mob Programming</a></p><blockquote>Caso você tenha outros links de conteúdos sobre programação pareada, adicione nos comentários!!! Até a próxima!</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=be870a298d68" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Frustações de uma pessoa desenvolvedora — tema: estimativa]]></title>
            <link>https://wagnerfusca.medium.com/frusta%C3%A7%C3%B5es-de-uma-pessoa-desenvolvedora-tema-estimativa-95bbed754c3f?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/95bbed754c3f</guid>
            <category><![CDATA[frustração]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[estimativas]]></category>
            <category><![CDATA[desenvolvimento-software]]></category>
            <category><![CDATA[estimativa-ágil]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Mon, 21 Dec 2020 23:31:39 GMT</pubDate>
            <atom:updated>2021-01-28T14:30:38.707Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P4UFTJ9ylSZQUjkYmfY3yw.jpeg" /></figure><h3>Frustrações de uma pessoa desenvolvedora — tema: estimativa</h3><h4>“Eu não acho estranho uma pessoa errar uma estimativa. Acho estranho acertá-la com frequência” <a href="https://medium.com/u/153b88f31074">Rodrigo Yoshima</a></h4><p>Esse é o segundo post de uma série de postagens que relatam situações que acontecem no desenvolvimento de software, mas com a visão de quem coloca a mão em código fonte. O primeiro post pode ser conferido <a href="https://medium.com/@wagnerfusca/a-jornada-frustrada-de-uma-pessoa-desenvolvedora-tema-gerenciamento-da-qualidade-39192142312c">nesse link</a> e fala sobre qualidade.</p><p>O tema de hoje será contado por mim e pelos meus amigos <a href="https://medium.com/u/b3acae56dc79">Daniel Wildt</a> (<a href="https://www.linkedin.com/in/danielwildt/">linkedin</a>), <a href="https://www.linkedin.com/in/gfcmotta/">Guilherme Motta</a>, <a href="https://medium.com/u/3ab5cb42155a">Lucca Bonifácio Roder</a>(<a href="https://www.linkedin.com/in/luccaroder/">linkedin</a>) e <a href="https://medium.com/u/773dcc332f22">Vinicius Campos Silva</a>(<a href="https://www.linkedin.com/in/viniciuscampossilva/">linkedin</a>) e um relato anônimo. Cada uma dessas pessoas tem uma história incrível e que merece a sua atenção e leitura concentrada.</p><h4>Meu relato:</h4><p>É segunda feira, 9h da manhã. Já estou com meu café e vou para a sala de reunião para aquela “alegre” reunião chamada planning. Já sei que vou ouvir o PO por 1h, mas minha mente vai entender só os primeiros 15 min que ele falar. E na sequência vamos ter que jogar o nosso baralho mágico, chamado planning poker.</p><p>Passada uma hora de explicação, o SM pergunta: “Alguma dúvida?” e ninguém fala nada. Então o SM fala: “vamos lá, escolham suas cartas”.</p><p>Eu olho pro lado, em busca de ver o que o meu amigo vai selecionar, afinal de contas, não quero passar <strong>vergonha</strong> e ser o único que vai jogar uma carta alta (tipo pontuação 20) e também não quero colocar uma carta de interrogação, pois o pessoal vai achar que eu sou <strong>burro. </strong>Mas uma coisa é certa, eu não entendi nada.</p><p>Chegou a hora de revelar os votos. Todos colocam 20 pontos!!! O PO se <strong>assusta</strong> e fala: “gente… não é tudo isso não, será que não é 8 ou 13??? Vai lá gente, vocês são feras demais, 20 é muito para um time tão bom quanto o de vocês.”</p><p>A gente finge que acredita no elogio. Eu respiro fundo e falo: “tá bom… é sempre assim… vai 13 então”. O PO e o SM comemoram. Eu só penso em acabar logo essa reunião chata.</p><h4>Daniel Wildt</h4><p>Já disse que uma feature levaria 248 horas e meia. <strong>E MEIA</strong>. E essa era a estimativa pessimista. :P</p><p>Teve um outro caso de uma feature que terminei em 1/3 do tempo previsto e me pediram pra não sinalizar que estava pronto, para não gerar questionamento sobre a estimativa errada. :)</p><h4><strong>Anônimo</strong></h4><p>A história frustrante que vivi com estimativa é sobre o uso de <strong>ponto de função</strong> para estimativa de software. A gestão desejava que as contagens fossem feitas, entretanto, ninguém acreditava nessa estimativa, nem o time de desenvolvimento e nem a área de negócios.</p><blockquote>A gestão desejava que as contagens fossem feitas, entretanto, ninguém acreditava nessa estimativa, nem o time de desenvolvimento e nem a área de negócios.</blockquote><p>Mesmo tentando trazer o contexto de métricas estatísticas para os times como o leadtime, throughput e wip, não conseguimos força para evoluir por que existia esse apego da alta gestão para usar o ponto funcional como estimativa.</p><p>O time calculava o ponto funcional para agradar a gestão, mas não usava a informação para nada. Era passada outras estimativas para o negócio que também não era pautada em dados históricos. Continuamos com problemas de <strong>confiança </strong>entre negócio e TI, negócio falando que TI <strong>nunca entrega no prazo</strong> e TI sempre falando que <strong>negócio muda o tempo todo</strong>.</p><h4><strong>Guilherme Motta</strong></h4><p>Alguns anos atrás, nossa equipe no Brasil trabalhava remotamente com uma grande empresa americana. Iniciamos um projeto com um time distribuído entre Brasil e EUA.</p><p>Nesta equipe, que já havia trabalhado junta em outros projetos, já trabalhávamos conceitos relacionados a métodos ágeis (e boas práticas de engenharia de software) e na época esse cliente estava tendo boas experiências trabalhando com Scrum.</p><p>Eventualmente, a pessoa responsável pela gestão desse projeto apresentou um plano, distribuindo o escopo conhecido em 9 meses, 18 sprints de duas semanas.</p><p>O backlog havia sido todo estimado pelo time utilizando <strong>Planning Poker</strong> e as estimativas foram feitas baseadas em <strong>esforço</strong>, resultando em números da sequência <strong>Fibonacci </strong>que pareciam fazer sentido.</p><p>Ao final do primeiro Sprint, algumas conversas estranhas aconteceram:</p><ul><li>Incluímos na nossa velocity trabalho parcialmente completo</li><li>Quebramos histórias de usuário para “captalizar” na entrega da Sprint trabalho que não havia sido concluído</li><li>Adicionamos novas tarefas, com estimativas atribuídas depois do trabalho feito</li><li>entre outras bizarrices..</li></ul><p>Ao final do primeiro Sprint, o time havia entregue exatamente X pontos, e para minha surpresa, era exatamente o número de pontos que havia sido proposto no planejamento do projeto para a entrega da primeira Sprint.</p><p>Ao final do segundo Sprint, mesma coisa. Criação de novas User Stories, remoção de tasks, movimentação de escopo entre Sprints, qualquer coisa para chegar no tal número planejado para a velocity da segunda Sprint.</p><p>E assim foi o projeto, 9 meses e 18 sprints onde foi entregue exatamente o número de pontos planejado 9 meses antes.</p><p>A pessoa responsável pelo projeto recebeu um prêmio/reconhecimento ao final do trabalho por excelência em planejamento, gestão e estimativa.</p><p><strong>Na realidade, o que de fato ocorreu, é que nossas métricas e reportes tinham como objetivo se alinhar com o plano inicial</strong>. O time percebeu mas optou por ignorar e fazer o melhor possível para entregar valor para o nosso no cliente.</p><p>Este projeto, foi uma das experiências que me estimulou a aprender mais sobre gestão e um grande aprendizado sobre o que não fazer.</p><h4>Lucca Rodder</h4><p>O que falar sobre estimativa???? Olha confesso que é algo que me causa <strong>ansiedade </strong>mas, gosto de compartilhar minhas experiências e meu ponto de vista sobre o assunto rs.. Vamos lá…</p><p>Olha para ser sincero as experiências não foram tão boas, primeiro que a maioria dos projetos <strong>já tinham prazos definidos </strong>e segundo as pessoas desenvolvedoras mais experientes analisavam o projeto antes da própria equipe e davam uma estimativa &quot;aproximada&quot; baseados em experiências próprias, isso é muito crítico pois, nem sempre essas pessoas que deram essa estimativa &quot;aproximada&quot; participavam de fato da equipe que participava do desenvolvimento, ou seja, quando projeto ia para equipe que iria desenvolver geralmente já chegava com prazo &quot;mais ou menos&quot; definido e a estimativa das funcionalidades parecia para mim algo apenas para cumprir um protocolo e uma tentativa de achar um meio termo para o prazo final da entrega.</p><p>Um ponto muito difícil nisso tudo são os <strong>imprevistos</strong> e as mudanças no meio do desenvolvimento, não pelas mudanças que essas são comuns mas, por entrar mais coisas no backlog para a sprint atual e <strong>não despriorizar</strong> outras tarefas fazendo com que tivéssemos vários atrasos nas entregas. Um problema para mim é o <strong>desgaste emocional</strong> que isso causava, toda retrospectiva parece ser uma lavação de roupa suja e nós sempre escutarmos a frase dos nossos líderes &quot;Mas vocês estimaram&quot;, isso me deixava com a sensação de que a estimativa no projeto era exclusivamente para achar culpados pelas falhas e que os líderes não caminhavam lado a lado com as pessoas desenvolvedoras.</p><p>A lição aprendida por mim é que uma maneira assertiva de se fazer uma estimativa é usarmos como base outros projetos já trabalhados que possuem tech stack semelhantes, a senioridade do time semelhante e os desenvolvedores do projeto estimarem. Não podemos estimar apenas como base na nossa própria experiência mas, olhar o cenário em volta e responder algumas perguntas tais como:</p><ul><li>Quantas pessoas possuem uma experiência alta nessa tech stack?</li><li>Quantas pessoas já desenvolveram funcionalidades parecidas com essa?</li><li>Como podemos durante o projeto ajudar as pessoas a se desenvolverem?</li><li>Caso as pessoas mais experientes do projeto tiver um imprevisto, os outros membros do time conseguiriam fazer essa tarefa nesse mesmo tempo?</li><li>As histórias estão prontas para desenvolvimento, ou está faltando informações muito importantes?</li><li><strong>Como está a saúde emocional da equipe?</strong></li></ul><p>O segredo é questionar muito, pensamento coletivo e liderança apoiando. Quando uma pessoa percebe que possui um suporte o trabalho flui muito melhor.</p><p>Os desenvolvedores do projeto sabem muito bem quantas histórias cabem em sprint e quanto tempo leva para desenvolver as funcionalidades.</p><p>Tem uma frase que gostaria de deixar aqui.</p><blockquote>Se você não é uma das pessoas que coloca a mão no código no projeto, você não está apto a opinar sobre quanto tempo leva para transformar uma tarefa em código para esse projeto.</blockquote><h4>Vinicius Campos</h4><p>Compartilhando um pouco sobre as estimativas na época em que eu trabalhava em consultoria. Costumava ser frustrante e acredito que muito próxima a realidade de outras pessoas. Em uma das minhas experiências profissionais, tínhamos que <strong>estimar a escrita das documentações técnicas</strong> e funcionais, analisar todas as linhas de classe/métodos que seriam alteradas, a prática de testes sempre era considerada metade do tempo de desenvolvimento, além de considerarmos <strong>suporte ao cliente </strong>no pós-entrega e ao final da “estimativa” a nossa planilha de estimativa adicionava 20% de tempo para garantir uma <strong>“segurança”</strong> para o prazo. Lembro de discussões nossas para aumentar horas em um lugar e colocar em outro para “facilitar” a aprovação, não considerando a nossa real capacidade de absorver o projeto. Ou seja, passava uma falsa sensação de que tudo estaria sob controle.</p><p>Essa estimativa passava pela aprovação do cliente, que algumas vezes pedia para <strong>reduzir</strong> a estimativa dos testes/suporte ou até mesmo <strong>removê-la</strong> para ficar mais barato. Eu pensava o quão custoso e sustentável seria este tipo de comportamento a longo prazo.</p><p>Além disto, tínhamos que registrar diariamente as horas empregadas no projeto, que apenas serviam para reforçar que o planejamento daria errado. Nossas estimativas tinham a premissa que:</p><ul><li>Consideravam que uma pessoa é produtiva <strong>100% do tempo</strong>;</li><li>Não tínhamos dependências de outras áreas/pessoas;</li><li>Espera de aprovação de pull requests que apenas o cliente fazia (e algumas vezes levava dias);</li><li>Dúvidas que poderiam surgir ao longo do projeto e mudanças na solução;</li><li>Problemas com ambientes de desenvolvimento;</li></ul><p>Entre outras que faziam parte do nosso desafio no dia a dia.</p><p>O problema ao final era que o trabalho feito <strong>sempre era maior que o planejado e vendido ao client</strong>e. E jamais essa estimativa era revista durante o projeto vigente causando situações desconfortáveis quanto ao nosso progresso e nos projetos seguintes para estarmos mais próximos à realidade, sendo que qualquer nova estimativa, principalmente para mais em projetos futuros, era questionada e ajustávamos a um valor “adequado”.</p><h4>Conclusão</h4><blockquote><strong>Pare de acreditar em estimativas</strong>. Pare de <strong>oprimir </strong>as pessoas com essa prática e pare de gerar uma insegurança emocional nas pessoas desenvolvedoras que erram estimativas. As pessoas erram estimativas porque estimativa não funciona, não é porque as pessoas não são competentes!!!</blockquote><p>Mas se tiver que usar estimativas, não use números. Use proporções de grandeza (P, M, G e se for maior que G, precisa ser quebrada). Eu tenho gostado do formato que o <a href="https://medium.com/u/fb0c7135b85f">paulocaroli</a> usa no <a href="https://www.caroli.org/lean-inception/">Lean Inception</a>, na etapa de funcionalidades:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/513/1*_w0BJBBpsx8RueWd4O417A.png" /><figcaption>Disponível em <a href="https://www.caroli.org/wp-content/uploads/2018/10/RevTecNegUX-ImprimirA1.pdf">https://www.caroli.org/wp-content/uploads/2018/10/RevTecNegUX-ImprimirA1.pdf</a></figcaption></figure><p>Se tiver que usar números e prazos, técnicas de previsibilidade vão te ajudar a ser mais assertivo. Materiais como do <a href="https://medium.com/u/62e576d6de8f">Raphael Albino</a> e <a href="https://medium.com/u/71a5c1dd0f69">Caco</a> poderão te ajudar:</p><ul><li><a href="https://medium.com/rd-shipit/m%C3%A9tricas-em-times-%C3%A1geis-as-3-m%C3%A9tricas-fundamentais-que-voc%C3%AA-precisa-saber-e-dominar-816ffb6a53c5">https://medium.com/rd-shipit/m%C3%A9tricas-em-times-%C3%A1geis-as-3-m%C3%A9tricas-fundamentais-que-voc%C3%AA-precisa-saber-e-dominar-816ffb6a53c5</a></li><li>Livro métricas: <a href="https://www.casadocodigo.com.br/products/livro-metricas-ageis">https://www.casadocodigo.com.br/products/livro-metricas-ageis</a></li></ul><p>Aqui eu relato um pouco de uma experiência que começou a dar certo, <a href="https://medium.com/@wagnerfusca/minhas-primeiras-experi%C3%AAncias-com-t-shirt-size-estimativa-por-tamanho-de-camisa-4836c5fdddf8">com T-shirt size (estimativa por tamanho de camisa)</a></p><blockquote>Mas se ainda assim você quer continuar usando pontos e números, saiba que o Jira permite estimar com precisão em decimais!!!! Vai lá! agora você vai acertar #sqn</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/497/0*jUIfjG109K_o_ad3" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=95bbed754c3f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A jornada frustrada de uma pessoa desenvolvedora — tema: gerenciamento da qualidade]]></title>
            <link>https://wagnerfusca.medium.com/a-jornada-frustrada-de-uma-pessoa-desenvolvedora-tema-gerenciamento-da-qualidade-39192142312c?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/39192142312c</guid>
            <category><![CDATA[pm]]></category>
            <category><![CDATA[qualidade]]></category>
            <category><![CDATA[cmmi]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Mon, 08 Jun 2020 04:01:54 GMT</pubDate>
            <atom:updated>2020-06-08T04:10:01.759Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IAJh2M_0BwwkWQP3gnkZMQ.jpeg" /></figure><h3>A jornada frustrada de uma pessoa desenvolvedora — tema: gerenciamento da qualidade</h3><h4><strong>Admita</strong>, ainda não fazemos qualidade em software!</h4><h4>O relato</h4><p>Em 2004, durante a graduação, comecei a ouvir sobre gerenciamento de projetos e de um tal de <strong>PMBOK</strong>. Parecia ser bem interessante, pois ele era bem completo e apresentava detalhes do gerenciamento de comunicação, custo, escopo, prazo e qualidade. Parecia que tinha resposta para tudo e eu fiquei com a sensação de que os problemas estariam resolvidos no dia a dia de desenvolvimento de software.</p><blockquote><em>Doce ilusão de um aluno de graduação que acreditou em tudo o que o professor falou</em></blockquote><p>Eu pensava que aplicando <strong>PMBOK</strong> com o que eu havia aprendido de programação e banco de dados iria ser um ótimo profissional. Por um tempo até quedeu certo .</p><p>Lembro que nesta disciplina ouvi sobre um tal triângulo das restrições e que poderia ser chamado de <strong>triângulo de ferro</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/0*jvf2Hm1j1I6Y6ztY.jpg" /><figcaption>Triângulo de ferro</figcaption></figure><p>Num modelo acadêmico até que dava certo, mas trabalhando com projetos de software, dentro de algumas organizações, vi que não era bem assim. Era muito difícil ter um software <strong>bom, barato e rápido</strong>. As três opções eram impossíveis, sempre tínhamos que escolher duas delas. Na verdade quem escolhia era o líder (ou chefe) e com muita frequência (<em>pra não falar sempre</em>) era sempre priorizado o barato e rápido.</p><blockquote>A qualidade sempre era comprometida.</blockquote><p>Passou um tempo e me apresentaram a <strong>evolução</strong> do triângulo de ferro. Agora a qualidade era <strong>inegociável</strong> e por isto ficava no centro do triângulo. Agora as arestas eram escopo, custo e prazo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*8uqEkc2UsZA99cZH.png" /><figcaption>fonte: <a href="http://movimentoimpactoglobal.com.br/tripla-restricao/">http://movimentoimpactoglobal.com.br/tripla-restricao/</a></figcaption></figure><p>Mesmo com esta mudança, o teste do <strong>bom, barato e rápido</strong>, ainda vencia o rápido e barato. Ou seja, vamos trabalhar com escopo e custos enxutos e com tempo curto de entrega. Este foi o cenário perfeito pra esquecer de vez a qualidade do produto, e isto era potencializado pelo tempo curto que havia sido <strong>acordado com o cliente, sem consultar o time ou analisar os históricos de entrega e a capacidade do time.</strong></p><blockquote>Resumindo, nunca havia tempo para melhorar.</blockquote><p>Se não bastasse tudo isto, <strong>evoluíram</strong> o triângulo de ferro para o <strong>quadrado</strong> de ferro. Agora qualidade voltou a ser uma restrição. Mesmo com esta alteração, a <strong>qualidade</strong> continuou sendo a ponta mais fraca das restrições.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tq4YxK-SDhNUqTbg.png" /><figcaption><a href="http://movimentoimpactoglobal.com.br/tripla-restricao/">http://movimentoimpactoglobal.com.br/tripla-restricao/</a></figcaption></figure><blockquote>Qualidade continuou sendo a ponta mais fraca das restrições</blockquote><p>E o tempo passou e cada nova tentativa de aplicar um modelo de projeto de software não surtia efeito no quesito qualidade do software. Eles só acentuavam a <strong>deterioração</strong> do software e geravam a <strong>insatisfação</strong> de cada pessoa desenvolvedora que tinha que alterar o código fonte. Foi aí que eu descobri algo:</p><blockquote>Descobri que se a qualidade (ou a excelência) não for um valor organizacional, ela não haverá atenção a qualidade, mesmo que esteja como declarado num modelo de trabalho.</blockquote><p>E esta descoberta serve para os modelos de processos e maturidade de software como o CMMI e MPS.br. Estes modelos descrevem coisas muito <strong>legais</strong> e <strong>úteis</strong> mas cá entre nós, as empresas aplicam estes modelos para ter um <strong>selo</strong> e não para se transformarem e entregarem valor. Eles são bons para as empresas e não para as pessoas que trabalham nas empresas. Não desejo CMMI e MPS.br para ninguém em sua jornada de software. <strong>É traumatizante</strong>.</p><blockquote>CMMi e MPS.br são bons para as empresas e não para as pessoas que trabalham nas empresas</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*qw341szl6WAeY8Kj.gif" /></figure><h4>Os traumas</h4><p>Como seria bom se esta seção não existisse, mas participar de certificações e projetos de software, geraram alguns efeitos colaterais. O primeiro deles é você <strong>ser obrigado a participar destes modelos</strong>, ao melhor estilo ser <strong>cobaia</strong> de um experimento sem poder opinar.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F3o6Mb5yEzHtHTEsCCQ%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F3o6Mb5yEzHtHTEsCCQ%2Fsource.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2F3o6Mb5yEzHtHTEsCCQ%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="328" frameborder="0" scrolling="no"><a href="https://medium.com/media/a189c0143795a6502bb852cbd2fe7153/href">https://medium.com/media/a189c0143795a6502bb852cbd2fe7153/href</a></iframe><p>As semanas (ou meses) que antecedem a visita dos certificadores geram uma <strong>tensão desnecessária</strong>, afinal, alguém vem avaliar você de algo que você não é bem aquilo.</p><p>Outro trauma que posso relatar, mas agora na visão de triângulo/quadrado de ferro é como pessoa desenvolvedora você começa a carregar a <strong>culpa dos erros de estimativas</strong> sendo que uma estimativa não deveria ser considerado uma promessa de entrega. Ou seja, dá problema na aresta de <strong>prazo</strong> ou <strong>custo</strong> e a culpa é toda sua. <em>(este será tema do próximo post: a frustração da estimativas)</em></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FeiMeW6uDfi9yY9VdxA%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FeiMeW6uDfi9yY9VdxA%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="543" frameborder="0" scrolling="no"><a href="https://medium.com/media/ed2f7a83c66ef22fa412b691f0d36bfd/href">https://medium.com/media/ed2f7a83c66ef22fa412b691f0d36bfd/href</a></iframe><p>Sempre é mais fácil apontar para alguém do que analisar a capacidade do sistema de trabalho e os impactos de interrupção e complexidade.</p><h4>E como mudar isto?</h4><p>Nesta jornada com software, descobri dois pontos que impedem que haja qualidade em software:</p><ul><li>ausência da cultura de qualidade</li><li>trabalhar com projeto de software ao invés serviço de software</li></ul><p>Um projeto tem início, meio e fim, ou seja, o que é importante é o <strong>tempo fechado</strong>. Já em serviços, entendemos que eles vão ser <strong>contínuos</strong> ou até mesmo infinitos. O software que você faz hoje (ou presta manutenção) continuará com ou sem você. Continuará com ou sem sua empresa. Alguém vai ter que continuar a mantê-lo funcional. Cabe a você hoje cuidar da qualidade e não outro.</p><blockquote>A cada vez que você não cuida da qualidade, você estará encurtando a vida útil do software.</blockquote><p>Visto isso, hoje eu entendo que <a href="https://medium.com/@wagnerfusca/software-um-jogo-infinito-1a9af5d3b4f6"><strong>software é infinito</strong></a>. E qualidade tem que ser <strong>feita a todo tempo</strong>. Cada vez que algo está sendo alterado no código fonte, uma oportunidade de melhorá-lo surge. <strong>Um código não pode retornar piorado para o repositório</strong>. Ele sempre tem que retornar melhor (<a href="https://francbreno.wordpress.com/2015/07/13/a-regra-do-escoteiro/#:~:text=%C3%89%20comum%20termos%20que%20alterar,tempo%2C%20em%20um%20contexto%20diferente."><em>lembre da regra do escoteiro</em></a>).</p><blockquote>Por favor, liberte-se desses modelos de triângulo/quadrado de ferro. Estes modelos matam a qualidade.</blockquote><p><strong>Aprenda a lidar com prazos de entrega, mas sem abrir mão da qualidade</strong>. É melhor entregar com um ou dois dias de atraso inicial, mas com a qualidade atendida.</p><blockquote>Qualidade não é um ato, é um hábito — Aristóteles.</blockquote><p><strong>A medida que você luta por qualidade, isso começa a se tornar cultural</strong>. E se o local que você trabalha já têm isto como valor organizacional, você tem a oportunidade de fazer isto acontecer.</p><h4>Conclusão</h4><p>Hoje eu acredito que qualidade deve ser a<strong> todo tempo</strong> de forma <strong>contínua</strong> e <strong>extrema</strong>. Sempre é hora de melhorar e todos podem melhorar o código fonte. Acredito que todos devem lutar pela qualidade, independente da hierarquia.</p><p>A pensar assim sinto-me mais feliz, sem muitos traumas ou culpas desnecessárias. A qualidade me tornou mais rápido no que eu faço, me tornou mais profissional. Um software com qualidade todos querem trabalhar nele.</p><p>Se você se identificou com algum item deste artigo, compartilha nos comentários suas percepções, traumas e conclusões.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=39192142312c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando…]]></title>
            <link>https://wagnerfusca.medium.com/estamos-descobrindo-maneiras-melhores-de-desenvolver-software-fazendo-o-n%C3%B3s-mesmos-e-ajudando-69a7844e665d?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/69a7844e665d</guid>
            <category><![CDATA[brazil]]></category>
            <category><![CDATA[technical-agility]]></category>
            <category><![CDATA[agilidade]]></category>
            <category><![CDATA[extreme-programming]]></category>
            <category><![CDATA[agile]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Sun, 02 Feb 2020 04:02:21 GMT</pubDate>
            <atom:updated>2020-02-07T02:38:33.144Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/646/1*ax2tzD2APWmvUeMo2hSPRg.png" /><figcaption>Percentual (aproximado) de submissões de temas técnicos na conferência Agile Brazil. Fonte: contagem manual disponível em <a href="https://submissoes.agilebrazil.com/">https://submissoes.agilebrazil.com/</a></figcaption></figure><h3>Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Será mesmo?</h3><h4>Agilidade e temas técnicos, ainda combinam? Um resumo do que vi entre 2017 e 2019</h4><p>Caso você não consiga ler todo o artigo, saiba que a agilidade técnica <strong>não morreu </strong>conforme gráfico que inicia este artigo. Agilidade técnica não morreu, graças às <strong>pessoas </strong>que de fato entenderam que ainda estamos aprendendo a fazer software melhor e ensinando outros a fazerem o mesmo e que a contínua atenção e a excelência técnica aumenta a agilidade.</p><p>A seguir, conto um pouco de como este assunto mexe comigo, fique a vontade em seguir ou não com a leitura.</p><h3>Agilidade e temas técnicas, ainda combinam?</h3><p>2017 foi um ano marcante em minha carreira profissional pois adotei a postura de não mais aceitar um ágil <strong>“mais ou menos”</strong> e misturado com o modelo tradicional de software. Adotei como <strong>propósito de vida </strong>os valores e princípios ágeis e encarei uma carreira focada em agilidade, com um viés mais na parte técnica. Poderia dizer que neste ano, parei se <strong>fazer ágil</strong> e passei a <strong>ser ágil</strong>. E pra ser ágil você precisa voltar a essência de tudo.</p><p>Por isto, fiquei algumas semanas ruminando o manifesto ágil. E três pontos me chamaram a atenção :</p><ul><li>Estamos <strong>aprendendo</strong> a fazer software</li><li>Estamos <strong>ensinando</strong> outros a fazer</li><li>A contínua atenção à <strong>excelência técnica</strong> e <strong>bom design</strong> aumenta a agilidade</li></ul><p>Ao ler estes pontos percebo o quanto me identifico com eles, afinal desde 2005 venho trabalhando com software (sujando as mãos com código) e conseguindo pagar meus boletos com isto.</p><h3><strong>E o que eu fiz a partir desta análise no manifesto?</strong></h3><p>Para aprimorar o ponto de <strong>contínua atenção à excelência técnica,</strong> mergulhei em alguns estudos, como <em>design pattern</em>, TDD, <em>devops</em> e as práticas de XP (<em>eXtreme Programming</em>). A medida que eu avançava nas práticas de XP eu conheci seus valores, que norteiam muito do que eu faço nos dias atuais.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/597/1*MWjumcd9WTFtHtHJPEoCeA.jpeg" /><figcaption>Fonte: <a href="https://www.toolsqa.com/agile/extreme-programming/">https://www.toolsqa.com/agile/extreme-programming/</a>. Para saber mais acesse <a href="http://www.extremeprogramming.org/values.html">http://www.extremeprogramming.org/values.html</a></figcaption></figure><p>Para os pontos de <strong>estar aprendendo a fazer software </strong>e <strong>ensinando outros a fazerem software melhor</strong>, eu descobri a importância de ser mais <strong>humilde</strong> e não tão <strong>escravo de uma linguagem de programação</strong>. Descobri que o importante é saber fazer um <strong>código limpo</strong>, que seja para outros seres humanos e com <strong>testes unitários</strong>. Aprendi isto participando de eventos como TDC (<em>The Developers Conference</em>), Caipira Ágil e Agile Brazil. Nestes eventos conheci muitas pessoas que me ajudaram a olhar software por uma outra ótica. Mas ao participar destes eventos, algo me incomodava. Eu não encontrava muito do que o manifesto pregava, sobre ser um <strong>manifesto ágil para o desenvolvimento de software</strong>. Onde será que nos perdemos?</p><h3>Uma bandeira</h3><p>Olhando este cenário, entendi que precisávamos (ou ainda precisamos) <strong>voltas as essências</strong>. Então, este assuntos passou a ser a minha bandeira de 2017 até agora (início de 2020). De lá pra cá ouvi muita coisa. Comentários do tipo:</p><ul><li>“agilidade não tem nada a ver com software”</li><li>“agilidade e devops são coisas separadas”</li><li>“evento de agilidade tem que falar das tendências futuras&quot;</li><li>“importante na agilidade é gestão e processos”</li><li>“Agilidade é scrum e Kanban”</li><li>“Agora é agilidade para RH”</li><li>“A culpa é dos desenvolvedores que não vem para os eventos de agilidade”</li><li>entre outras que não lembro…</li></ul><p>Mas também conheci pessoas que pensavam como eu e queriam evidenciar a importância de retornarmos a essência ágil. De 2017 para os dias atuais muita coisa rolou e agora temos vários fatos concretizados:</p><ul><li><strong>Voltamos a falar de assuntos técnicos em conferências ágeis</strong>, conforme consta no gráfico que inicia este artigo. Destaque para o <a href="https://www.agilebrazil.com/">Agile Brazil</a>, <a href="https://scrumrio.com/">Scrum Gathering Rio</a> e <a href="https://agiletrendsbr.com/">Agile Trends</a> (este último, ainda um pouco mais tímido).</li><li>Temos uma trilha de <strong>eXtreme Programming</strong> nos <em>The Developers Conference</em> (TDC) de Florianópolis, Porto Alegre e São Paulo.</li><li>Tivemos uma edição <strong>presencial </strong>e outra <strong>remota </strong>da <a href="http://www.wildtech.com.br/xpconfbr">XP Conf BR</a> em 2018</li><li>Tivemos vários palestrantes brasileiros no principal evento de eXtreme Programming no mundo, a <strong>XP Conf,</strong> em 2017, 2018 e 2019 <em>(atualização: em conversa com meu amigo </em><a href="https://medium.com/u/eecde1a9bb9d"><em>Juliano Ribeiro</em></a><em>, ele me passou uma realidade que na XP Conf dos anos anteriores também tivemos brasileiros.)</em></li><li>Temos um curso de excelência técnica, ministrado pelo <a href="https://medium.com/u/b4445d9d3b72">Klaus Wuestefeld</a> num dos principais centros de treinamento de agilidade do Brasil (Software Zen: <a href="https://medium.com/u/1c7af9ed8737">Alisson Vale</a>)</li><li>Temos uma trilha dedicada a <strong>Design de Código </strong>nos <em>The Developers Conference</em> (TDC) de Florianópolis, Porto Alegre e São Paulo.</li></ul><p>Fico feliz em ver que uma pequena faísca que foi levantada a partir dos dados de submissões do Agile Brazil <em>(gráfico inicial deste artigo, medições dos anos 2016 e 2017)</em>, geraram mudanças na forma como se fala de agilidade.</p><h3>O que eu aprendi</h3><p>Nesta jornada aprendi algumas coisas:</p><ul><li>A grande maioria das pessoas que trabalham com agilidade (scrum masters, agile coach, agile masters, agilistas, etc), não se interessam e nem fazem esforço para entender agilidade técnica.</li><li>Até 2021, a grande maioria das empresas que começaram suas transformações ágeis vão precisar de foco na agilidade técnica, senão o ágil nelas irá estagnar.</li><li>Dojo é uma ferramenta pouco utilizada por facilitadores de agilidade. A maioria tem receio de promover.</li><li>Em conferências, ter entre 15% a 20% da grade com agilidade técnica é o ideal. Ignorar demasiadamente é ruim e priorizar demasiadamente também é ruim.</li><li>Pessoas de agilidade que falam a linguagem técnica tem maior receptividade dos times.</li><li>Conferências de Agilidade <strong><em>(na minha visão)</em></strong> não devem falar de linguagem de programação, mas das boas práticas e como aplicar ferramentas para entrega de valor</li><li>Abordagens recentes de agilidade, como <a href="http://modernagile.org/">Modern Agile</a> e <a href="https://heartofagile.com/">Heart of Agile</a>, falam do <em>delivery</em>. Isto é assunto técnico. Ou seja, você precisa ficar atento a isto.</li></ul><p>Se você concorda, deixe seu aplauso e comentário. Se discorda, gostaria muito de ouvir sua opinião e juntos crescermos na agilidade .</p><blockquote>“ The whole point of <strong>good design</strong> and <strong>clean code</strong> is to make you go faster” Martin Fowler (<a href="https://martinfowler.com/bliki/TechnicalDebtQuadrant.html">https://martinfowler.com/bliki/TechnicalDebtQuadrant.html</a>)</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=69a7844e665d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Setembro Amarelo, ritmo sustentável e dizer não]]></title>
            <link>https://wagnerfusca.medium.com/setembro-amarelo-ritmo-sustent%C3%A1vel-e-dizer-n%C3%A3o-25164ef794b5?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/25164ef794b5</guid>
            <category><![CDATA[agile-development]]></category>
            <category><![CDATA[ritmo-sustentável]]></category>
            <category><![CDATA[extreme-programming]]></category>
            <category><![CDATA[setembro-amarelo]]></category>
            <category><![CDATA[sustainable-pace]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Mon, 23 Sep 2019 03:31:32 GMT</pubDate>
            <atom:updated>2019-09-23T19:12:57.750Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ot4rxjKUAMwDfFokPoc-tA.jpeg" /></figure><h4>Pensamentos e conclusões a partir do dia a dia de quem trabalha com software</h4><blockquote>Nota: o autor deste texto não conhece muito de psicologia. O autor deste artigo relata experiências realmente vividas. As vivências foram junto em diversos times que trabalharam com desenvolvimento de software (não necessariamente no papel de pessoa desenvolvedora).</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*zFA36qT8tSQSo27y.png" /></figure><p>Escrevo este texto no dia 22 de setembro de 2019 e durante todo este mês tem sido realizada a campanha <a href="https://www.setembroamarelo.org.br/"><strong>Setembro Amarelo</strong></a>, que visa promover a prevenção ao suicídio, por meio da discussão e ações sobre o tema.</p><p>Mas o que isto tem a ver com o dia a dia de pessoas que trabalham com a criação de softwares <em>(pessoas desenvolvedoras, pessoas testadoras, analistas de negócios, product owners, gerentes de projetos, etc)</em> ????</p><h4>Vamos a alguns fatos</h4><ul><li>Produzir um software é um trabalho <strong>complexo</strong></li><li>Produzir um software <strong>nunca é um trabalho solitário</strong>. Muitas pessoas estão envolvidas (incluindo o cliente)</li><li>O <strong>trabalho mental</strong> é bastante exigido quando se fala de construção de software</li><li>Em alguns momentos, os <strong>prazos </strong>podem ser algo um tanto quanto perturbador e desgastante</li><li><strong>Horas extras</strong> podem se tornar algo recorrente, e isto não é saudável.</li><li>Investir tempo em novas funcionalidades que são <strong>descartadas </strong>de forma recorrente é algo desmotivador</li><li>O time de trabalho pode ser distribuído e o risco de <strong>isolamentos </strong>e <strong>solidão </strong>pode ser agravado</li></ul><p>Isto tudo é potencializado <strong>(para o lado ruim)</strong> caso a cultura da empresa não promova um ambiente colaborativo e incentive mais a <strong>velocidade </strong>de entrega do que a qualidade.</p><blockquote>Com tanta tensão no ar, o clima do time tende a <strong>não ser saudável</strong> e isso acarreta em problemas, como intensificação dos conflitos, inviabilização do engajamento, queda no rendimento das pessoas programadoras, aumento da <a href="https://medium.com/@wagnerfusca/o-que-faz-seu-software-deteriorar-f3be04182e8d">dívida técnica</a> e problemas emocionais <strong>(ansiedade e depressão, por exemplo)</strong>.</blockquote><p>Ou seja, a saúde mental das pessoas <strong>não é respeitada</strong>, gerando um problema um tanto quanto sério.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/512/0*ZGnExcHg7DfngrEG" /></figure><h3>A solução para isto é RITMO SUSTENTÁVEL <em>(sustainable pace)</em></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/803/1*c1yYdHSbGy3dJXQ6PN11ww.png" /><figcaption>Princípio Ágil — <a href="https://www.manifestoagil.com.br/principios.html">https://www.manifestoagil.com.br/principios.html</a></figcaption></figure><p>Originalmente descrito por Kent Beck, no livro eXtreme Programming, <a href="http://www.extremeprogramming.org/rules/overtime.html">ritmo sustentável</a> é uma prática que sugere que todo time tem um ritmo e é necessário encontrá-lo e <strong>respeitá-lo</strong>.</p><blockquote>Times são diferentes e seu ritmo sustentável também é diferente. Respeite isto.</blockquote><p>Um ritmo sustentável ajuda a planejar seus lançamentos e iterações e evita que você entre em uma <strong>marcha da morte</strong>. (<a href="http://www.extremeprogramming.org/rules/overtime.html"><em>site extreme programming</em></a>). E tendo um ritmo sustentável, podemos começar a ter <strong>previsibilidade</strong>.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FZOplw6WeRkx8s%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Ffuneral-ZOplw6WeRkx8s&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FZOplw6WeRkx8s%2F200.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="244" frameborder="0" scrolling="no"><a href="https://medium.com/media/08ce42c1abd23d7adc0e5ecd4dcc6b68/href">https://medium.com/media/08ce42c1abd23d7adc0e5ecd4dcc6b68/href</a></iframe><blockquote>Trabalhar horas extras<strong> suga o espírito e a motivação de sua equipe</strong>.</blockquote><p>Quando sua equipe fica cansada e desmoralizada, ela realiza <strong>menos </strong>trabalho, não mais, não importa quantas horas sejam trabalhadas. Além disto, trabalhar com a mente e corpo cansados irão fazer com que você escreva mais código de <strong>baixa qualidade</strong>, aumentando assim a dívida técnica.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/793/0*9NwGPMdagukWCho8.png" /><figcaption><a href="https://8thlight.com/blog/paul-pagel/2015/09/15/optimize-sustainable-pace.html">https://8thlight.com/blog/paul-pagel/2015/09/15/optimize-sustainable-pace.html</a></figcaption></figure><p>Exigir que essa equipe aumente a velocidade para corresponder a essa equipe reduzirá sua velocidade a <strong>longo prazo</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/745/1*J60euIiQ_NNmiayrlrdTvQ.png" /><figcaption><a href="http://lunar.lostgarden.com/Rules%20of%20Productivity.pdf">http://lunar.lostgarden.com/Rules%20of%20Productivity.pdf</a></figcaption></figure><h3>Manifesto do ritmo sustentável</h3><p>Pesquisando sobre ritmo sustentável encontrei uma proposta de manifesto para este tema. De repente ele pode ser algo que faça sentido para o seu contexto e quem sabe possa ser o <strong>primeiro passo </strong>para você iniciar um ritmo sustentável.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/975/1*izK2qCVE2vLRC1j7W--D5w.png" /><figcaption><a href="https://pt.slideshare.net/yyeret/sustainable-pace-manifesto">https://pt.slideshare.net/yyeret/sustainable-pace-manifesto</a></figcaption></figure><h4>Valorizamos</h4><ul><li><strong>Puxando </strong>o trabalho e indo para casa feliz com a quantidade e a qualidade do trabalho de hoje</li><li>Entrega do escopo de trabalho</li><li>Ter um resultado lucrativo para todo o projeto</li><li>Encontrar tempo para ajustar a maneira como trabalhamos</li></ul><h4>ao invés</h4><ul><li>Pressionando para cumprir datas de vencimento arbitrárias e não listadas</li><li>Fornecendo 100% do escopo</li><li>Orçamento de construção se encontrando</li><li>Focar apenas nas atividades do dia a dia</li></ul><h4>Embora exista valor nos itens à direita, valorizamos mais os itens à esquerda.</h4><blockquote>Inspirado no <a href="https://agilemanifesto.org/">Agile Manifesto</a> em um dos clientes da <a href="https://www.agilesparks.com/">AgileSparks</a></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/266/0*_6dLXY4cfZmSFykC.jpg" /><figcaption>Ritmo sustentável é maior que burnout (esgotamento profissional)</figcaption></figure><blockquote>Não se mate de trabalhar, tentando ficar rico, nem pense demais nisso. Pois o seu dinheiro pode sumir de repente, como se tivesse criado asas e voado para longe como uma águia.<br>Provérbios 23:4‭-‬5 NTLH</blockquote><h3>Além de um ritmo sustentável, você precisa aprender a DIZER NÃO</h3><p>Como uma pessoa que trabalha com software, você precisa aprender a dizer <strong>não. </strong>Robert C. Martin, em seu livro “O codificador limpo”, dedica um capítulo para este assunto (<a href="https://sites.google.com/site/unclebobconsultingllc/blogs-by-robert-martin/saying-no">parte dele pode ser livro no blog dele</a>).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/430/0*q6rCKpi0WATyIuQy" /></figure><p>Como profissionais não podemos concordar com um ritmo exagerado de trabalho. Não podemos concordar com um trabalho “meia-boca” e sem qualidade. Não podemos aceitar que isto seja recorrente e a excelência técnica seja uma opção sempre negociável.</p><p>Como um profissional devo dizer <strong>não </strong>para tudo o que é não é <strong>sustentável </strong>por um longo tempo. E isto fala também da nossa <strong>saúde física e mental</strong>.</p><p>Na minha opinião não tem nada de engraçado quando falam de pessoas desenvolvedoras e fazem uma ligação delas com café e pizza. Como qualquer tipo de pessoa, precisamos ter um <strong>equilíbrio </strong>e não somos movidos só a café ou pizza. Valorize os sentimentos , a qualidade de vida, alimentação e a saúde de uma pessoa que trabalha com software.</p><p>Devemos dizer não a este esteriótipo criado ao longo dos tempos! <strong>Somos profissionais e devemos nos portar como tal.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/450/0*wrjSb8fCWLdE2h_n.jpg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/777/0*OK1PQdupkAGrJ1QN" /></figure><blockquote>Por muito tempo acreditei nas imagens acima e até ri delas. Hoje, considero elas distantes do meu dia a dia e as considero uma ofensa e desrespeito.</blockquote><h3>Conclusão</h3><p>É tempo de refletir como estamos cuidando da nossa saúde mental. E aproveitar e refletir como temos cuidado da nossa saúde física.</p><p>Quem está se importando com isto? Você está num lugar com ritmo sustentável? Você se importa em ter uma vida com ritmo sustentável?</p><p>Você anda começando mais coisas do que terminando? Se a resposta for SIM, sinto em dizer que você <strong>não </strong>está respeitando seu ritmo sustentável. E caso você queira conversar sobre isto, <strong>pode me chamar</strong> em alguma rede social (em especial <a href="https://www.linkedin.com/in/wagnerfusca">Linkedin</a>).</p><p>Diga <strong>não</strong> para o que não está sendo coerente com as suas atividades. Limite seu trabalho em progresso.</p><p>Analise a cultura de onde você trabalha. Ela é boa para você?</p><blockquote>Valorize a sua vida. Ela é única!</blockquote><blockquote>Agora escolham a <strong>vida</strong>, para que vocês e os seus filhos vivam, e para que vocês amem o Senhor, o seu Deus, ouçam a sua voz e se apeguem firmemente a ele. Pois o Senhor é a sua vida, e ele lhes <strong>dará muitos anos</strong> na terra que jurou dar aos seus antepassados, Abraão, Isaque e Jacó.</blockquote><blockquote><a href="https://www.bibliaonline.com.br/nvi/dt/30/19,20+">Deuteronômio 30:19,20</a></blockquote><h3>Links extras</h3><ul><li><a href="http://www.extremeprogramming.org/rules/overtime.html">Sustainable Pace</a></li><li><a href="https://www.infoq.com/br/news/2014/01/sustainable-pace-achieve-improve/">Ritmo sustentável: Como obtê-lo e melhorá-lo?</a></li><li><a href="https://www.igda.org/page/crunchsixlessons">Why Crunch Modes Doesn&#39;t Work: Six Lessons - International Game Developers Association (IGDA)</a></li><li><a href="https://www.infoq.com/news/2008/05/sustainable-pace/">Does Sustainable Pace mean a 40 hour week?</a></li><li><a href="https://www.infoq.com/news/2011/10/sustainable-pace-how/">Sustainable Pace - What&#39;s it mean and how to achieve it?</a></li><li><a href="https://www.targetprocess.com/blog/sustainable-pace-killing-developers/">3 Signs Your Sustainable Pace is Killing Your Developers</a></li><li><a href="http://www.bhgagile.com/content/sustainable-pace">Sustainable Pace</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=25164ef794b5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[O que faz seu software deteriorar?]]></title>
            <link>https://wagnerfusca.medium.com/o-que-faz-seu-software-deteriorar-f3be04182e8d?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/f3be04182e8d</guid>
            <category><![CDATA[technical-debt]]></category>
            <category><![CDATA[dívida-técnica]]></category>
            <category><![CDATA[extreme-programming]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[code]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Thu, 05 Sep 2019 00:29:51 GMT</pubDate>
            <atom:updated>2019-09-05T00:32:52.981Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*D3_LeMqBqFnWZFsLnJA0uw.jpeg" /></figure><h4>Entendendo como se contrai dívidas técnicas</h4><p>Algum tempo atrás escrevi um post que falava <a href="https://medium.com/@wagnerfusca/como-acabar-com-seu-d%C3%A9bito-t%C3%A9cnico-6dbbb872b6a5"><strong>como acabar com seu débito técnico</strong></a>. Pois bem, ali você aprendeu duas coisas:</p><ul><li>seus projetos <strong>não</strong> tem débito técnico. O que você tem é <strong>dívida técnica</strong></li><li>técnicas para começar a pagar a dívida (<em>spoiler: em breve vou escrever um post para detalhar mais isto</em>).</li></ul><p>Revendo este post, percebi que algo ficou faltou: como como se contrai estas dívidas???</p><p>As dívidas podem surgir por diversos meios, imagino não conseguir mapear todas elas, mas vou seguir os autores especialistas no tema e pela minha experiência. Costumo enquadrar a aquisição de dívida técnica por causa de três detratores:</p><ul><li>velocidade para entregar algo</li><li>ausência de refatoração no seu ciclo de desenvolvimento</li><li>ter um sistema de trabalho (ou cultura organizacional) intolerante a falhas</li></ul><p>Antes de começar a detalhar cada um destes itens é importante você entender que todo projeto de software <strong>vai ter um custo de alteração </strong>que é visualizado a partir da necessidade de uma nova feature ou correção de bug. Este custo pode ser de tempo e/ou financeiro. O ideal para este indicador é que ele seja o mais baixo quando pensamos no quanto ele de fato vai pesar no bolso e no cronograma. A distância desta curva ideal de custo com o custo atual é o que chamamos de dívida técnica.</p><blockquote>A distância desta curva ideal de custo com o custo atual é o que chamamos de dívida técnica</blockquote><p>Ou seja, toda vez que precisamos fazer uma adição de funcionalidade ou corrigir um bug, este tempo se torna muito mais inflado do que o esperado e isto é dívida técnica. Por isto é muito importante você gerenciar sua dívida e pagar ela regularmente para evitar que os juros de não dar atenção a isto se tornem um custo abusivo no seu projeto.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/505/0*HnlybpbyUrIXOE-N" /><figcaption><a href="http://jimhighsmith.com/the-financial-implications-of-technical-debt/">http://jimhighsmith.com/the-financial-implications-of-technical-debt/</a></figcaption></figure><p>Agora vamos detalhar em como se contrai novas dívidas:</p><h3>Velocidade para entregar algo</h3><p>Toda vez que você ou seu time escolher a velocidade ao invés da qualidade, você tende a contrair muitas dívidas técnicas. Para identificar se você está preferindo a velocidade do que a qualidade, leia algumas frases abaixo e se você já presenciou elas, é sinal que você contraiu novas dívidas:</p><ul><li>Não precisa fazer testes unitários. Entrega assim mesmo.</li><li>Entrega assim, o cliente nem vai perceber</li><li>A sprint acaba hoje, então comita do jeito que está</li><li>Refatorar é custo</li><li>Rodou? Compilou? Coloca no ar.</li></ul><p>A contração de dívida técnica neste item <strong>pode ser ou não</strong> de forma consciente, afinal tem horas que é necessário escolher entregar agora (mesmo sem testes) pois não entregar será muito mais custoso (por diversos motivos, como uma legislação ou algo estratégico que o cliente precisa para agora).</p><p>A sugestão se isto ocorrer é que, conscientemente, você crie um cartão para pagar a dívida em menor tempo possível (ou seja, não deixe acumular juros).</p><p>A forma<strong> </strong>de contração <strong>inconsciente</strong> é a ausência de um ciclo de desenvolvimento com padrões de qualidades coerentes. Outra forma inconsciente é a pessoa desenvolvedora não ter habilidade junto as boas práticas. Para tratar isto é necessário capacitação e treino.</p><p>Existe um vídeo do Klaus Wuestefeld, falando um pouco deste dilema entre prazo e qualidade. O vídeo é de 2011 e até hoje é contemporâneo.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FWGKxdG3o8lk%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DWGKxdG3o8lk&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FWGKxdG3o8lk%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/df602930321d10d57b21f3b4696bf2c9/href">https://medium.com/media/df602930321d10d57b21f3b4696bf2c9/href</a></iframe><h3>Ausência de refatoração</h3><p>Este é o segundo motivo pelo qual os projetos de software contraem dívida técnica com frequência. Se você acredita que uma pessoa desenvolvedora consegue produzir o melhor código fonte logo de primeira, você tem sido muito otimista. Desenvolver software é um processo criativo e repetitivo no qual a cada vez que eu leio o código fonte que acabei de fazer posso encontrar melhorias a serem implementadas.</p><p>O ideal é que refatoração seja acompanhada de testes unitários que vão de fato atestar que as alterações realizadas vão continuar tendo o mesmo comportamento do código fonte não refatorado, ou seja, continuará funcionando corretamente.</p><blockquote>Lembrete: dívida técnica não é bug. E refatorar não é corrigir bug. Depois que eu corrigi o bug e eu criei um teste unitário para aquele bug, aí sim eu refatoro, buscando como melhorar o código fonte.</blockquote><p>Ao refatorar com frequência (<em>em par ou não</em>) você irá perceber o quanto de código fonte escrito não precisava ser feito. Este conceito é chamado de <strong>YAGNI</strong> e <a href="https://medium.com/@wagnerfusca/o-que-precisa-ser-feito-%C3%A9-n%C3%A3o-fazer-este-c%C3%B3digo-5faaceff7773">você pode ler mais sobre isto neste post</a>.</p><p>Ao refatorar, você tira código desnecessário, reduzindo a complexidade, aumentando a legibilidade e a simplicidade. E como um bônus poderá encontrar bugs que acabaram de ser escritos.</p><h3>Um sistema de trabalho (ou cultura organizacional) intolerante a falhas</h3><p>Para explicar este item, vou utilizar o material do Alisson Vale no curso Software Zen . Para saber mais deste curso<a href="https://softwarezen.me/">, acesse aqui</a></p><p>Vamos delimitar o nosso sistema de trabalho ao ciclo de desenvolvimento de software, mas o gráfico abaixo pode ser usado para outras áreas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*iF1m0Uzhilon4QAb" /><figcaption>Software Zen: A arte da gestão de software — Alisson Vale — Aula 9</figcaption></figure><p>1 — Logo no centro você identifica uma <strong>oportunidade de melhoria</strong>. Todo sistema tem isto. O ciclo de desenvolvimento de software está recheado de oportunidades de melhorias.</p><p>2 — ao identificar a oportunidade você pode executar e ter dois resultados: <strong>acerto ou erro</strong>.</p><ul><li>ao acertar você adiciona <strong>motivação</strong> para novas oportunidades de melhorias</li><li>ao errar você pode ter situação: <strong>aprender</strong> com o erro e tentar executar novamente (bem parecido com o TDD) ou evidenciar o erro como uma <strong>culpa</strong>.</li></ul><p>3 — Ao tratar o erro como uma culpa, você incentiva a <strong>omissão</strong> e aos poucos vai <strong>inibindo</strong> novas oportunidades. E com isto você vai <strong>deteriorando seu sistema</strong>.</p><p>4 — Já se você incentivar que erros são oportunidades de <strong>aprendizado</strong>, seu sistema irá entrar em <strong>modo de otimização</strong>.</p><blockquote>Obs: quando eu falo “sistema que incentiva a erros”, estou pensando em meios que permitam que eu falhe de <strong>forma segura </strong>e <strong>rápida</strong>. Ou seja, um teste unitário escrito ou um pipeline que evidencie gerações de versões com frequência são bons exemplos de falhar de forma segura e rápida.</blockquote><p>Talvez esta seja a explicação mais incrível e bem visual que já encontrei sobre o por que devemos incentivar práticas como TDD e refatoração no ciclo de desenvolvimento. Um sistema que incentiva melhoria, irá pagar dívidas técnicas com frequência e logo a distância da linha ideal de custo da alteração acabará. Ao entender este gráfico não há como querer nutrir um sistema de deterioração.</p><h3>Conclusão</h3><p>Gosto de pensar que a dívida técnica é um buraco que todos temos em nossos projetos. Ele pode ser mais profundo ou mais raso. E saber saber como se contrai dívida técnica irá mudar seu comportamento e do seu time, ou seja, iremos parar de cavar o buraco.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/0*nclTB3AJGZ9GARuH" /></figure><p>Em breve pretendo detalhar como sair do buraco, ou seja, pagar a dívida técnica</p><p>Para saber mais sobre como acabar com sua dívida técnica, acesse os slides da palestra que realizei em 2019 no TDC SP e no Agile Brazil</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Fembed_code%2Fkey%2FiGP9vDB6GZVsxZ&amp;url=https%3A%2F%2Fpt.slideshare.net%2Ftiofusca%2Fcomo-acabar-com-seu-dbito-tcnico-tdc-sp-2019-trilha-xp&amp;image=https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Ftdcsp2019-190718214127-thumbnail-4.jpg%3Fcb%3D1563486252&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=slideshare" width="600" height="500" frameborder="0" scrolling="no"><a href="https://medium.com/media/423d42f697a14610fe9d45ee29f19581/href">https://medium.com/media/423d42f697a14610fe9d45ee29f19581/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f3be04182e8d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Software, um jogo infinito]]></title>
            <link>https://wagnerfusca.medium.com/software-um-jogo-infinito-1a9af5d3b4f6?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/1a9af5d3b4f6</guid>
            <category><![CDATA[infinite-games]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[agile-development]]></category>
            <category><![CDATA[simon-sinek]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Tue, 02 Jul 2019 00:27:37 GMT</pubDate>
            <atom:updated>2019-07-04T15:27:33.208Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZjhuOJmmCUKHzpPUWR405w.jpeg" /></figure><h4>Inspirado no estudo de Simon Sinek — The Infinite Game</h4><p>Em março de 2019 tive a oportunidade de ouvir Simon Sinek no evento <a href="https://summitbrasil.org/">The Global Leadership Summit</a> apresentando seu novo estudo intitulado <strong><em>Jogo infinito, como liderar no século 21</em></strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/267/0*-VrFe8JYq7ONxT3O" /><figcaption>Capa do livro a ser lançado em outubro/2019</figcaption></figure><p>Após uma explosão de aprendizado e de conteúdo, minha cabeça começou a sintonizar tudo o que eu ouvi lá para o mundo de software. Vamos ao conteúdo:</p><h3>O Jogo Infinito, por Simon Sinek</h3><p>No mundo existem dois tipos de jogos:</p><ul><li>os finitos, os quais tem <strong>regras fixas, o objetivo é acordado e os jogadores são conhecidos</strong></li><li>os infinitos, os quais tem <strong>regras mutáveis, os jogadores são desconhecidos e o objetivo é continuar jogando.</strong></li></ul><blockquote>Exemplos de jogos finitos são partidas de futebol e vôlei.</blockquote><blockquote>Exemplos de jogos infinitos estão espalhados em nossas vidas e nas diversas áreas de negócios.</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FlXiRmybisRnz7bHqg%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FlXiRmybisRnz7bHqg%2Fgiphy.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2FlXiRmybisRnz7bHqg%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="334" frameborder="0" scrolling="no"><a href="https://medium.com/media/d8ad555d404a1cf0516ee2928153a567/href">https://medium.com/media/d8ad555d404a1cf0516ee2928153a567/href</a></iframe><blockquote><strong>Tetris </strong>pode ser é um bom exemplo de jogo infinito, afinal é difícil saber quais serão as peças futuramente disponibilizadas e o objetivo é sempre continuar jogando com o mínimo de peças empilhadas.</blockquote><p>Além disso, é comum termos jogos finitos dentro de jogos infinitos, mas o inverso não existe.</p><p>Cada tipo de jogo possui jogadores distintos. O jogador do jogo finito joga <strong>para vencer</strong> e um jogador do jogo infinito joga pelo <strong>prazer de sempre estar jogando</strong>.</p><blockquote>Num jogo infinito não existe vitória, existe estar na frente ou atrás!</blockquote><p>E Simon Sinek definiu 5 chaves para os jogos infinitos:</p><ul><li>Causa justa</li><li>Equipes de confiança</li><li>Rival digno</li><li>Flexibilidade existencial</li><li>Coragem para liderar</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*9XNOziO7hhfQ-rDG1wGXMA.png" /></figure><h3>Software: um jogo infinito — por Wagner Fusca</h3><p>Desde que comecei a trabalhar com software, em 2006, algumas coisas se repetem com frequência:</p><ul><li>muitos software são chamados de “<strong>projeto de software” </strong>já que<strong> </strong>eles terão início, meio e fim (como qualquer projeto). <strong>O que eu percebi nesta jornada é que software nunca tem fim</strong>. Lembro de um “projeto de software” que era para durar 6 meses. Fiquei nele por 4 anos e mesmo assim não havia ideia de término.</li><li><strong>software dificilmente tem regras fixas.</strong> Na maioria das vezes percebo que elas mudam com frequência e isto ocorre pela falta de entendimento de negócios pela equipe técnica e pela baixa maturidade do cliente em explicar o que ele realmente precisa.</li><li>Por mais que eu sei quem são as pessoas que irão atuar no “projeto de software”, diariamente descubro que outras pessoas precisarão ser acionadas para que uma funcionalidade seja de fato criada. Estas pessoas (<em>jogadores</em>) são <strong>invisíveis. </strong>O “adversário” até a conclusão de uma demanda nem sempre é possível de prever já no inicio do trabalho.</li><li>Já vi alguns softwares pararam de serem usados, mas toda vez que um software era encerrado, outros três apareciam para substitui-lo. ou seja, o <strong>objetivo é continuar jogando</strong>, mas agora usando uma nova estratégias (outros softwares).</li></ul><h3>Erros que ocorrem com frequência ao tratar software como jogo finito:</h3><ul><li>Prazo é mais importante que qualidade</li><li>Tomar como verdade que um plano inicial de tempo e custo serão realmente efetivamente cumpridos.</li><li>Empresa se isolam com medo de perder possíveis propriedades intelectuais</li><li>Pessoas que trabalham com software não se atualizam e nem se envolvem com comunidades de aprendizado (como meetups e eventos)</li><li>Acreditar que estimativas serão totalmente verdadeiras e não haverá distorções</li><li>Grande acúmulo de dívida técnica e não há tempo para pagar a dívida</li><li>Sempre existe um cenário onde existe vítimas, vilões e heróis</li><li>Alta rotatividade de pessoas no time</li><li>Clima de competição e não colaboração (até mesmo entre fornecedor e cliente).</li><li>Mais trabalho braçal do que trabalho do conhecimento.</li><li>Acreditar que uma certificação é o auge do seu currículo.</li></ul><h3>Evidência que software é um jogo infinito</h3><ul><li>regras/requisitos de um software podem sofrer mudanças com frequência</li><li>Todo software vai ter <a href="https://medium.com/@wagnerfusca/como-acabar-com-seu-d%C3%A9bito-t%C3%A9cnico-6dbbb872b6a5">dívida técnica e será impossível zera-la </a>. Você só consegue controlar o crescimento, mas nunca zerar (<a href="https://medium.com/s/story/technical-debt-is-like-tetris-168f64d8b700">semelhante ao tetris</a>).</li><li>Buscamos sempre ter entregas contínuas de software. Isto é <em>devops </em>e seu simbolo é infinito</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*faFsFW_4utBwwq8O.png" /><figcaption>Ciclo Devops por si só é infinito (fonte: <a href="https://blog.mandic.com.br/artigos/como-o-devops-afeta-o-trabalho-do-cio/">Blog Mandic</a>)</figcaption></figure><ul><li>Um software dificilmente deixa de existir. O que acontece é que ele acompanhou ou não as evoluções tecnológicas. E mesmo usando tecnologias antigas, é provável que o software continue sendo usado.</li><li>O <a href="https://www.manifestoagil.com.br/">manifesto para o desenvolvimento ágil de software</a> fala mais de algo infinito do que finito (<a href="https://www.manifestoagil.com.br/principios.html">não se esqueça de ver os princípios também</a>).</li><li>As boas práticas de programação são ciclos infinitos, como por exemplo TDD, refatoração, pequenas versões e integração contínua</li></ul><h3>Como jogar o jogo infinito que é o software?</h3><p>Das 5 chaves elencadas por Simon Sinek, entendo que 4 delas fazem sentido para o software.</p><h4>1 — Desenvolva um propósito (ou causa) a qual seu software atende ou irá atender.</h4><ul><li>Cada software tem um história que precisa ser <strong>respeitada. Pessoas </strong>tomaram decisões baseadas no que era melhor para aquele momento, dado o conhecimento e os recursos disponíveis (<em>lembrando que pessoas não são recursos</em>). Por isto respeite o que já foi feito, <strong>mas não se conforme</strong> em continuar deste jeito.</li><li>Reveja qual <strong>causa </strong>que o seu software atende? Esta causa sobrevive ao tempo? Sobrevive a governos? Sobrevive as mudanças tecnológicas ?</li><li>Não tenha uma causa pequena. O ideal é que seja uma causa que talvez nunca conseguiremos alcançar, mas as pessoas se conectarão nela e morrerão tentando cumprir</li></ul><blockquote>Exemplo: seremos o aplicativo que mudou a forma de operar cartões de crédito no mundo</blockquote><blockquote>Exemplo: não teremos divida técnica.</blockquote><blockquote>Exemplo: ter versões disponíveis do sistema a qualquer momento e sem intervenção humana</blockquote><h4>2 — Tenha uma equipe de confiança</h4><ul><li>o time que irá trabalhar com um determinado software tem que sentir que existe um <strong>ambiente seguro</strong> para criar novas linhas de código num software. Práticas de testes unitários, retrospectivas, integração contínua e dojos ajudam a termos um ambiente mais seguro e de aprendizado</li><li><strong>misture </strong>pessoas novas com as pessoas que conheçam bem o software. Geralmente as pessoas novas se identificam mais com as causas do que as mais velhas numa empresa. Misture ambas e aprimore a confiança uns nos outros</li><li><strong>permita </strong>que o erro faça parte da equipe.<strong> Falhar é importante</strong>. E falhe rapidamente. Permita também que as pessoas peçam ajuda.</li><li>software não é simples, por isto permita que as pessoas <strong>compartilhem ideias.</strong></li><li><strong>acabe com perfis que só seguem regras</strong>. Estes perfis só acabam com o software. Precisamos de pessoas que pensam, dialoguem sobre negócios e depois dito tudo, codifiquem <em>(ou testem ou façam a analise)</em></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/592/1*AhLn_WcudB1Le26Plb_yaA.png" /><figcaption><a href="https://twitter.com/CodeWisdom/status/1101114045925638145">https://twitter.com/CodeWisdom/status/1101114045925638145</a></figcaption></figure><h4>3 — Tenha ferramentas que evidenciem falhas do software ou má qualidade do código. Use elas como rivais do time e não competidores</h4><ul><li>Num jogo infinito não podemos ter competidores, pois não haverá vitória. Geralmente pessoas de times de desenvolvimento não tem tanto anseio pela vitória. Eles tem anseio por fazer um trabalho bem feito e que se orgulhem disto.<strong> Não permita competição entre os times de desenvolvimento</strong>. Valorize a colaboração.</li><li>Use ferramentas que te ajudem com o dia a dia do trabalho de desenvolvimento de software. Estas ferramentas te ajudam a lembrar o por que das coisas. Encare estas ferramentas como <strong>rivais </strong>que vão te impulsionar para frente.</li><li>Estas ferramentas irão dizer o quanto você está <strong>mais a frente ou mais atrás</strong> do que ontem. Este é o poder das métricas!</li></ul><blockquote>Exemplo: ao implementar um pipeline de devops você estará garantindo que um software estará sempre pronto para ser gerado e disponibilizado numa versão. E quando este pipeline quebra (tem uma falha), e-mails serão enviados notificando do fato, com o objetivo de mantermos o time com o software sempre disponível. O objetivo não é encontrar um culpado. Ao buscar um culpado, estarei jogando um jogo finito. Num jogo infinito não temos vitória, temos prazer em mantê-lo a build sempre disponível como uma causa do nosso time!</blockquote><p>Outros exemplos que ajudam a ter rivais sadios são:</p><ul><li>Usar uma ferramenta de <strong>analise estática de código</strong>, como o SonarQube</li><li>Usar uma ferramenta para <strong>vulnerabilidades </strong>do sistema</li></ul><blockquote>Nunca poderemos vencer estes rivais mais poderemos tornar o nosso software mais preparado para viver mais.</blockquote><h4>4 — Tenha coragem</h4><p><a href="https://medium.com/@wagnerfusca/coragem-por-que-esconder-isto-dentro-de-voc%C3%AA-querida-pessoa-desenvolvedora-52c0f93b7566">Para entender mais deste item, é melhor você ler o post que fiz em 29/03/2019 .</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/716/1*B6Jn9_f01rRgVkLOk5QMuw.png" /><figcaption><a href="https://medium.com/@wagnerfusca/coragem-por-que-esconder-isto-dentro-de-voc%C3%AA-querida-pessoa-desenvolvedora-52c0f93b7566">https://medium.com/@wagnerfusca/coragem-por-que-esconder-isto-dentro-de-voc%C3%AA-querida-pessoa-desenvolvedora-52c0f93b7566</a></figcaption></figure><h3>Conclusão</h3><ul><li>Promova uma causa que seu software vai atender.</li><li>Saiba que esta causa será atemporal.</li><li>Invista tempo e estratégias visando promover ambientes seguros.</li><li>Valorize a falha e incentive o aprendizado e o compartilhar.</li><li>Use as boas práticas de software como seus rivais que serão aqueles que irão te ajudar a ter uma boa qualidade no final de tudo.</li></ul><blockquote>Aplique tudo isto acima descritos e você terá um produto e times que serão infinitos, como todo software é!</blockquote><p>Lembrete: A inspiração para este post é baseado no novo trabalho de <a href="https://en.wikipedia.org/wiki/Simon_Sinek">Simon Sinek</a>. O vídeo já está disponível e o livro será lançado em outubro/2019</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F3vX2iVIJMFQ%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D3vX2iVIJMFQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F3vX2iVIJMFQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/c1d4f54f0ee1fd91148206202f91f420/href">https://medium.com/media/c1d4f54f0ee1fd91148206202f91f420/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1a9af5d3b4f6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[O que precisa ser feito é não fazer este código!]]></title>
            <link>https://wagnerfusca.medium.com/o-que-precisa-ser-feito-%C3%A9-n%C3%A3o-fazer-este-c%C3%B3digo-5faaceff7773?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/5faaceff7773</guid>
            <category><![CDATA[extreme-programming]]></category>
            <category><![CDATA[code]]></category>
            <category><![CDATA[yagni]]></category>
            <category><![CDATA[xp]]></category>
            <category><![CDATA[agile]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Thu, 02 May 2019 21:44:45 GMT</pubDate>
            <atom:updated>2019-05-02T21:46:44.444Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/820/0*BBgFPXu4Zg-Zb6JF" /></figure><h4><strong>Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.</strong></h4><p>Quando comecei a estudar engenharia de software sempre ouvi dizer que devemos cuidar para não adicionar complexidade de forma demasiada ao código fonte.</p><p>Sinceramente, eu não entendia nada do que isto significava. E por não entender, eu programava no modo <strong><em>GoHorse</em></strong>, ou seja, nem pensava e inseria linhas e mais linhas de código.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/205/0*V0FgsciFbzUurlUQ.png" /><figcaption>Mandamento número 1 — Pensou, não é GoHorse.</figcaption></figure><p>Até que um dia conheci um princípio da <strong>programação extrema (XP)</strong> e parece que tudo ficou mais claro.</p><p>O princípio se chama <strong>YAGNI (<em>You Ain’t Gonna Need It</em>)</strong>. Em resumo, <strong>VOCÊ NÃO VAI PRECISAR DISTO. </strong>Ler isto foi tipo levar um soco na cara!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FGoN89WuFFqb2U%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fpunch-hurt-slowmo-GoN89WuFFqb2U&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FGoN89WuFFqb2U%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="259" frameborder="0" scrolling="no"><a href="https://medium.com/media/2f4b471b907d569048f36649af37a942/href">https://medium.com/media/2f4b471b907d569048f36649af37a942/href</a></iframe><p>Este princípio diz que você só deve criar código que realmente vai ser utilizado e não adicionar código supondo algo no futuro. Afinal, ninguém tem bola de cristal para descobrir o que vai vir no futuro.</p><blockquote>A melhor maneira de implementar o código rapidamente é implementá-lo menos. A melhor maneira de ter menos bugs é implementar menos código. Ron Jeffries</blockquote><p>Isto também pode ser aplicado a outras atividades de software, como um <strong>requisito</strong> que quer atender todos os conjuntos de regras possíveis. Na busca por atender todas as regras, o requisito acaba se tornando <strong>complexo</strong> e de <strong>longa leitura</strong>. Ou então um MVP que faz muita coisa e no final de tudo <strong>não faz nada </strong>e não atende o objetivo inicial.</p><h3>História</h3><p>YAGNI é foi descrito pela primeira vez por Ron Jeffries no seu blog em 1998 e posteriormente foi referenciado nos livros:</p><ul><li><em>Extreme Programming Installed</em></li><li><em>Extreme Programming examined</em></li><li><em>Refactoring: Improving the Design of Existing Code</em></li><li><em>Lean Software Development</em></li></ul><p><a href="https://ronjeffries.com/xprog/articles/practices/pracnotneed/">You&#39;re NOT gonna need it!</a></p><h3>Como YAGNI pode me ajudar?</h3><ul><li><strong>Simplicidade</strong> pro seu dia a dia. Com menos código, mais fácil você dar manutenção e inclusão de novas funcionalidades.</li><li><strong>Arquitetura simples</strong>: fugindo do overengineering</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*_KXR9te5AGIdaj99OlRNaQ.jpeg" /></figure><ul><li><strong>Legibilidade de código</strong>: por ter código que atende alguma funcionalidade que realmente existe, você pode usar o vocabulário correto e se concentrar em aplicar as práticas de código limpo.</li><li><strong>Não aumentar a dívida técnica</strong>: fazendo somente o necessário, você evita acrescentar code smells, código duplicado e vulnerabilidades. E caso adicione, você poderá pagar a dívida rapidamente pois o código está simples e de fácil checagem por ferramentas de analise estática de código</li><li><strong>Tempos de execução de builds e de execução testes otimizados</strong>: menos código significa menos complexidade para ser checada numa build</li><li><strong>Seu tempo investido de forma correta</strong>: programar não é uma atividade fácil e investir tempo no que realmente gera valor, irá permitir que você durma tranquilo e não precise acordar na madrugada após ter sonhando com soluções de código fonte<em> (quem nunca fez isto né? )</em></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/0*VLIOCsycL6dYq_3O.jpeg" /></figure><h3>O que devo fazer para aplicar YAGNI?</h3><ul><li><strong>Resista</strong> a vontade de fazer mais do que precisa ser feito. Temos a tendência de fugir do objetivo inicial e querer fazer um pouco a mais. Mantenha foco no alvo e adicione a quantidade correta de código fonte para atender esta situação.</li><li>Aplique práticas de testes unitários, em especial <strong>TDD</strong>.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/535/0*zalGad-fNSoAOo3a.jpg" /><figcaption><a href="https://www.princiweb.com.br/blog/programacao/tdd/tdd-ddd-e-bdd-praticas-de-desenvolvimento.html">https://www.princiweb.com.br/blog/programacao/tdd/tdd-ddd-e-bdd-praticas-de-desenvolvimento.html</a></figcaption></figure><ul><li><strong>Não pare no verde</strong> após rodar o teste unitário. <strong>Refatore!!!! </strong>É aí que está o Yagni</li><li>Ao refatorar com frequência, você irá validar constantemente se aquele código era realmente necessário. Crie<strong> pontos curtos de paradas</strong> durante o desenvolvimento para validar se pode ser melhorado (caso não esteja usando TDD e pareamento)</li><li>Use pareamento. Uma segunda opinião ou desenvolver em dupla garante esta checagem e menos código fonte</li></ul><h3>Dica Final</h3><p>Yagni pode gastar um pouco mais de tempo agora, mas economizará tempos futuros.</p><h3><strong>XP Rule</strong></h3><blockquote>Manter seu código pronto para mudanças inesperadas é sobre design simples. Adicionar flexibilidade extra além do que você precisa agora sempre torna um design mais complexo.</blockquote><blockquote>Feche os olhos para os requisitos futuros e flexibilidade extra. Concentre-se no que está programado para hoje apenas! — XP Rule</blockquote><p><a href="http://www.extremeprogramming.org/rules/early.html">You aren&#39;t going to need it. (YAGNI)</a></p><h3>Exemplos de YAGNI do dia a dia</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*t2-D46BFmRyOkdrs.png" /><figcaption><a href="https://deviq.com/yagni/">https://deviq.com/yagni/</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/225/0*gKEbo3Czh_H7wXVu.png" /><figcaption><a href="http://www.macoratti.net/15/12/net_yagni1.htm">http://www.macoratti.net/15/12/net_yagni1.htm</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/430/0*J1XMYJxyrvjGskm5.jpg" /><figcaption><a href="https://wolfgang-ziegler.com/blog/yagni">https://wolfgang-ziegler.com/blog/yagni</a></figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5faaceff7773" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Coragem, por que esconder isto dentro de você, querida pessoa desenvolvedora?]]></title>
            <link>https://wagnerfusca.medium.com/coragem-por-que-esconder-isto-dentro-de-voc%C3%AA-querida-pessoa-desenvolvedora-52c0f93b7566?source=rss-5cf6ff5ace45------2</link>
            <guid isPermaLink="false">https://medium.com/p/52c0f93b7566</guid>
            <category><![CDATA[courage]]></category>
            <category><![CDATA[extreme-programming]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[agile-development]]></category>
            <category><![CDATA[courageous]]></category>
            <dc:creator><![CDATA[Wagner Fusca]]></dc:creator>
            <pubDate>Sat, 30 Mar 2019 02:34:35 GMT</pubDate>
            <atom:updated>2019-03-30T02:34:35.356Z</atom:updated>
            <content:encoded><![CDATA[<iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FHVXRNF5NadnUY%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FHVXRNF5NadnUY%2F200w_d.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2FHVXRNF5NadnUY%2F200.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="184" frameborder="0" scrolling="no"><a href="https://medium.com/media/c17aeaac93c2895259da1b8f8561ad33/href">https://medium.com/media/c17aeaac93c2895259da1b8f8561ad33/href</a></iframe><h3>Coragem, por que esconder isto dentro de você, querida pessoa desenvolvedora?</h3><h4>Saia da conformidade que vivemos no desenvolvimento de software</h4><p>Após um dia intenso de palestras incríveis do <a href="https://summitbrasil.org/"><strong>Global Leadership Summit</strong></a>, várias palavras ficaram populando a minha mente. Uma destas palavras eu considero ser uma possível causa raiz para vivermos um ágil tão frágil (#fragile).</p><blockquote>CORAGEM (ou a ausência dela)</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F26FfgOs4pCrSU6c24%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F26FfgOs4pCrSU6c24%2F200w_d.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2F26FfgOs4pCrSU6c24%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="192" frameborder="0" scrolling="no"><a href="https://medium.com/media/16b2fd81de402a7a42aeb78dc40ebcde/href">https://medium.com/media/16b2fd81de402a7a42aeb78dc40ebcde/href</a></iframe><h3>Coragem, a argamassa que falta pro seu conjunto de ferramentas</h3><p><a href="https://twitter.com/whitespaceatwrk">Juliet Funt</a>, CEO WhiteSpace at Work, utilizou de uma metáfora incrível para explicar o por que tantas ferramentas de produtividade dão errado. Ela considera todas as ferramentas como tijolos que estão sendo empilhados e usados pelos times, mas entre estes tijolos falta a argamassa, que são os comportamentos.</p><p>Para a minha pessoa, a <strong>coragem </strong>é o principal ingrediente deste comportamento, mas que não pode ser usado de forma isolada. Mas todos os outros comportamentos sem coragem, provavelmente não vão gerar uma argamassa realmente incrível.</p><p>Por exemplo: em <strong><em>extreme programming </em></strong>temos os valores <strong>comunicação</strong>, <strong>simplicidade </strong>e <strong>feedback</strong>. Somente estes três não geram sucesso sem a coragem.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/0*SoetzaFWM1ZLIhdU.gif" /><figcaption><a href="https://ronjeffries.com/xprog/articles/when-is-it-not-xp/">https://ronjeffries.com/xprog/articles/when-is-it-not-xp/</a></figcaption></figure><p>Hoje temos tantas ferramentas de comunicação e mesmo assim continuamos a fazer linha de código que não gera valor. Somos com frequência acompanhados em nossas carreiras, recebendo feedback sobre como estamos trabalhando. Recebemos feedback do cliente sobre nossos trabalhos. Recebemos feedback se o deploy está ok ou não, se os unitários estão ok ou não. Somos incentivados a aplicar a simplicidade através da aplicação de DDD, TDD, entre outras práticas. E mesmo assim continuamos fazendo software de forma ruim. Versionando software como 20 anos atrás. Continuamos entregando sprints e movendo tarefas para a coluna de <strong>pronto </strong>e não melhoramos o dia a dia de software.</p><p><strong>Por que será que continuamos a fazer software como no inicio de nossas carreiras?</strong></p><p>Estamos tão <strong>conformes </strong>e <strong>acostumados </strong>com as dores na produção de software que elas nem doem mais.</p><p><strong>Onde está a coragem para ser a diferença?</strong></p><p><strong>Cade a coragem para você levantar dores que estão a muito tempo atrapalhando seu serviço ?</strong></p><p>Por que continuar sendo mais um na reunião, onde você sabe que o rumo daquilo não está adequado? Seja uma pessoa corajosa e levante a mão e ajude o time a olhar por uma ótica diferenciada.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*o4jtfOC2NX8Yz4Ii.jpg" /><figcaption><a href="http://quotesideas.com/wp-content/uploads/2015/01/wonderful-courage-quote-new.jpg">http://quotesideas.com/wp-content/uploads/2015/01/wonderful-courage-quote-new.jpg</a></figcaption></figure><h3>Mas daí eu vou me expor ?</h3><p>Sim. Para ter coragem você precisará se <strong>expor</strong>. Correrá o risco de falhar. Mas você precisa ser você mesmo. Pequenas ações de coragem geram integridade, formam líderes que vão carregar uma bandeira de mudanças e isto incentivará outras pessoas desenvolvedoras a quererem mudança.</p><p><strong>Pessoas desenvolvedoras integras é o que mais precisamos em nossos times. </strong>No site do <a href="http://www.extremeprogramming.org/">http://www.extremeprogramming.org/</a> encontramos a seguinte descrição sobre coragem:</p><blockquote>Courage: We will tell the truth about progress and estimates. We don’t document excuses for failure because we plan to succeed. We don’t fear anything because no one ever works alone. We will adapt to changes when ever they happen.</blockquote><blockquote>Coragem: Vamos dizer a verdade sobre o progresso e estimativas. Não documentamos desculpas para o fracasso porque pretendemos ter sucesso. Não tememos nada porque ninguém trabalha sozinho. Nós nos adaptaremos às mudanças sempre que acontecerem.</blockquote><h3>A coragem de uma equipe é revelada em como ela responde ao estresse.</h3><p>Como seu time responde a uma mudança de requisito ?</p><p>Como seu time responde ter que liberar uma versão do software para este dia? E se fosse necessário liberar em 1 hora? E em 30 min? E em segundos?</p><p>Como seu time responde as mudanças tecnológicas? Como as pessoas do seu time respondem a necessidade de parear na codificação e uma demanda?</p><h3>A falta de coragem é o medo</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F3o6fIVCYOLGPO1cfYc%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F3o6fIVCYOLGPO1cfYc%2Fgiphy.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2F3o6fIVCYOLGPO1cfYc%2F200.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="179" frameborder="0" scrolling="no"><a href="https://medium.com/media/f664c1aedeff3cd727b0283fb1cacb0c/href">https://medium.com/media/f664c1aedeff3cd727b0283fb1cacb0c/href</a></iframe><p>No inicio deste artigo eu coloquei uma animação do filme Coração Valente. A história deste filme conta sobre <em>William Wallace</em>, interpretado por Mel Gibson, que lidera o povo escocês contra os ingleses em busca de liberdade. Sua liderança foi tão incrível e corajosa que o exército escocês, mesmo sendo amador, era muito maior que o exército inglês. Eles não tinham as melhores armas e o melhor preparo, mas eles tinham um desejo e <strong>coragem </strong>de lutar pela visão de liberdade.</p><p>Não estou incitando você fazer uma guerra onde você está trabalhando, mas incentivo você a se munir de práticas para que o medo possa ir dando lugar a uma visão. Crie uma visão de onde vocês podem chegar.</p><p>Liberte-se daquele build demorado. Liberte-se de uma liberação de versão que você não tem confiança. Liberte-se do seu ego que acha que você não tem mais nada a aprender quanto a código fonte.</p><h3>E o que me ajuda a ter coragem na codificação de software?</h3><p><em>Extreme programming </em>propõe 12 práticas que estão listadas na imagem abaixo. Ao aplicar as 12 práticas, <a href="https://ronjeffries.com/">Ron Jeffries</a> relata que é raro você ter algum medo quanto ao trabalho que você desenvolveu.</p><blockquote>It has been my experience that teams that truly follow all 12 practices will have courage. But, I have been in situations when we thought we were doing a good job only to discover that we lacked the required courage to do the job correctly. Usually the lack of courage can be traced to a failure to follow one or more of the 12 practices. That is where we should look to regain our courage, but courage should be our goal and the practices our means for achieving it.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/655/1*6478vHvrlPiMnAWaW8hSHQ.png" /><figcaption><a href="https://arquivo.devmedia.com.br/REVISTAS/es/imagens/87/Scrum_XP/praticasxp.png">https://arquivo.devmedia.com.br/REVISTAS/es/imagens/87/Scrum_XP/praticasxp.png</a></figcaption></figure><h3>E como eu começo?</h3><p>1 — não tenha medo de se expor. Sua atitude, poderá economizar muito tempo e desperdício do time. Mesmo que a sua organização seja algo complexo, saiba que você pode mudar todo um sistema que oprime como os desenvolvedores tem que trabalhar. Seja um <strong>“voluntário como tributo”</strong> (ver filme Jogos Vorazes)</p><p>2 — Entenda onde vocês precisam ir. Crie uma visão de como será a produção de software do seu time.</p><p>3 — organize/facilite a elaboração de um plano de mudança. Todos do time poderão contribuir com este plano.</p><p>4 — comece com o que você tem hoje. Ataque de forma disciplinada e contínua cada problema (lembre da <a href="https://www.martinfowler.com/bliki/StranglerApplication.html">técnica do estrangulamento</a>. Ela foi descrita por <a href="https://martinfowler.com/">Martin Fowler</a> para a codificação mas pode ser usada para outras áreas também, como o devops e devsecops)</p><p>5 — o medo pode existir, mas ele não pode ser maior que sua visão. Um time e as pessoas que o compõem são maiores que qualquer problema e elas podem mudar tudo.</p><p>Seja corajoso!</p><p>Leitura:</p><ul><li><a href="https://ronjeffries.com/xprog/articles/when-is-it-not-xp/">When is it not XP?</a></li><li><a href="https://globalleadership.org/articles/leading-yourself/gls18-session-notes-juliet-funtthe-upside-of-simplicity/">GLS18 Session Notes-Juliet Funt-The Upside of Simplicity - Global Leadership Network</a></li><li><a href="http://www.extremeprogramming.org/values.html">Extreme Programming Values</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=52c0f93b7566" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>