Ronaldo
Ronaldo Desenvolvedor, pai, cidadão do mundo.

Scrum: dia 1

O desafio de implantar Scrum em uma empresa

Scrum: dia 1

Implantar uma metodologia, uma nova ferramenta ou um novo processo é sempre um desafio. E hoje é o dia 1 da implantação do Scrum na minha empresa. E este é o primeiro de uma série de posts que documenta o desafio que é a implantação do scrum.

Primeiro, é preciso descrever o cenário. A minha empresa, a Grood.Me, é uma startup que sempre se posicionou como vanguardista. Em 2017 optamos por usar o modelo home office/anywhere office. Acreditamos que escritório é algo antiquado. Como tudo nosso está na nuvem, tudo o que é preciso é um computador e uma conexão à internet.

Já usamos metodologia ágil no nosso dia-a-dia. Trata-se de uma adaptação do XP. E agora, que fui certificado Scrum Developer, estamos implantando o Scrum com o intuito de melhorar nossos processos.

A ideia de documentar num blog o desafio que é implantar o framework surgiu durante o curso e acho que poderá ajudar quem quer andar por este caminho. E este é o post do dia 1.

É importante que fique claro!

Aqui não há verdades. Aqui há fatos, erros e acertos. Da mesma forma como scrum prega o empirismo, estamos usando a mesma ideia para implantar isso na empresa. Ou seja, as decisões são empíricas e vão se ajustando ao longo do tempo de acordo com o ciclo de feedback e maturidade do time como um todo.

Como o ambiente de implantação é de extrema incerteza, não dá para ter nada como certo. Tudo é uma hipótese que precisa ser testada. E todas as hipóteses dependem do contexto. Neste caso, o contexto é a minha empresa e como a coisa funciona por aqui.

Implantação paulatina

Decidimos por implantar o Scrum paulatinamente. Na minha experiência, implantação no estilo big bang serve somente para uma coisa: dor-de-cabeça. Em todas as implantações big bang que participei no passado só tive dor-de-cabeça. Nenhuma foi suave. E faz todo o sentido do mundo que o Scrum seja implantado de forma paulatina, incremental, de acordo como reza o framework e a metodologia ágil.

Como já usávamos metodologia ágil, o conceito de sprint é algo já comum e faz parte do trabalho. No entanto, começamos a implantar o Scrum no meio do sprint, pois não dá para ficar sentado esperando o sprint terminar. Assim, a primeira coisa a implantar foi o Daily Scrum.

Desafios

O primeiro desafio foi achar um horário. O time decidiu que o melhor horário é no início do dia. O segundo desfio é manter o Daily Scrum dentro de 15 minutos. Ao iniciar, disparamos um timer e quando o timer termina finalizamos a reunião, tendo assuntos pendentes ou não.

Parece radical, mas é importante forçar a barra agora no início para podermos criar a disciplina para que a reunião esteja dentro da prática e objetiva conforme se espera. Esta ideia de finalizar à força foi, também, decidida pelo time.

O segundo desafio é deixar as decisões para o time. Apesar do time ser eu e mais um apenas, é um passo importante. E o mais difícil é ajustar as discordâncias sem ser autoritário. Neste caso, é preciso argumentar e convencer a outra parte de forma racional. O principal benefício disso é que você termina por compartilhar sua experiência e isso evolui o time como um todo, equalizando o conhecimento e experiência de todos.

O terceiro desafio é adotar o TDD. Já criávamos testes automatizados, mas depois da funcionalidade escrita. Somente invertemos a ordem e isso, por si só, é muito desafiante, principalmente para novos desenvolvimentos. Para conserto de defeitos, acaba sendo quase uma decorrência: escrever o cenário de testes que causa o erro e depois consertar o problema. Mas para funcionalidades, bem, é muito mais desafiante. No entanto, o benefício é evidente no primeiro release.

Ferramentas

Estamos usando o Jamboard do Google para uma série de práticas. Porque o Jamboard? Porque ele está incluso no Workspace, que já pagamos, e tem uma funcionalidade muito parecida com a do Miró. Apesar de não ser tão bom quanto o Miró, resolve o problema.

Criamos 3 boards no Jamboard para começarmos a andar pelo Scrum:

  • Acordos de Trabalho
  • Estacionamento de Perguntas
  • Kanban para a implantação

Os dois primeiros são duas técnicas que vi no curso da Hackadme, a instituição na qual fiz o curso e certificação CSD. Apesar de não estarem descritas no Scrum, são práticas incrivelmente simples e úteis.

O segundo serve para acompanhar a implantação, ajustando o que precisar ser ajustado no meio do caminho.

Como já usávamos o Jira, ele permanece como ferramenta principal. O que muda é como usamos o Jira. Antes usávamos as funcionalidades de tempo e story points, que abandonamos completamente. A principal vantagem do Jira é a sua integração com o bitbucket e a rastreabilidade que isso nos dá: conseguimos sair do código e chegar na história que deu origem à alteração e vice-versa. Isso é muito bom quando você tem dúvidas sobre a funcionalidade e precisa saber de onde veio aquilo.

Como começamos a usar TDD, a espeficicação passa a ser parte dos testes. Com o tempo, essa “vantagem” do jira deixará de ser uma vantagem e provavelmente usaremos outra ferramenta de suporte. A verdade é que o Jira é complicado e muitas vezes é trabalhoso. Há funcionalidades legais, como o releasing, que ajuda a organizar os releases.