Kanban e Devops: Bons sozinhos e ainda melhor se juntos.

Dois movimentos que tem ganhado muita tração nos últimos anos na TI são a Cultura DevOps e o Método Kanban.

Já falei sobre a Cultura DevOps aqui nesse espaço em vários posts organizados nessa página. Mas é sempre bom reforçar o conceito de DevOps. Vamos lembrar dos seus três caminhos essenciais.

O Tao do DevOps

  1. O princípio do fluxo, que acelera a entrega do trabalho do Desenvolvimento para Operações e então para os nossos clientes
  2. O princípio do feedback, que nos permite criar um sistema de trabalho cada vez mais seguro;
  3. O princípio de aprendizado contínuo e experimentação, que promove uma cultura de alta confiança e uma abordagem científica para a melhoria organizacional como parte de nosso trabalho diário.

Já o Kanban é um método de gestão de mudanças que busca promover a melhoria de maturidade para o trabalho do conhecimento. No caso particular da TI, um tipo de trabalho de conhecimento, o método Kanban te ajuda a entregar e sustentar software com menor fragilidade.

Gene Kim, um dos autores do excelente livro e bíblia do DevOps chamado O Manual do DevOps  fez uso de várias práticas gerais do método Kanban para definir os princípios e guiar como devemos adotar DevOps na práticas nas nossas organizações.

O purgatório do DevOps

Em algumas empresas onde já rodei diagnósticos de maturidade DevOps vi desenvolvedores muito habilidosos insistindo em implementar ferramentas DevOps pelo culto à tecnologia.

Frases que já ouvi se parecem com o seguinte:

“Temos pipelines de CI implementados para todo o nosso código .NET”

“Temos aqui o JUnit, Jenkins, Terraform e Ansible nos ajudaram em nossos fluxos CI/CD. Nosso DevOps está acelerado”

“Estamos criando automação de testes de unidade em nossos branches. E olhe só, eles são disparados automaticamente quando um commit é feito no branch principal”. 

Quando pergunto sobre como isso ajudou a reduzir o tempo de entrega (Lead Time) ou a taxa de defeitos, ouço um silêncio abissal. Os times não tem medições e não tem a mínima preocupação com isso em suas implementações.

DevOps … de verdade

A mensagem é clara. Se alguém ainda acredita estar fazendo DevOps porque apenas criou um pipeline de uma ferramenta CI/CD  ou um conjunto de testes automatizados, essa pessoa está equivocada.

Qualquer ação que façamos e que não esteja conectada ao Tao do DevOps é ilusão (ou sendo bem rude; pura masturbação técnica).

Um teste Litmus para você avaliar a saúde da sua implantação DevOps é o seguinte:

  1. Se você não evidencia como o seu tempo médio de entrega das demandas está sendo reduzido, o seu movimento DevOps está meia boca.
  2. Se você não evidencia como você está criando sistemas mais seguros (menos frágeis), como por exemplo a redução de problemas graves em produção, o seu movimento DevOps continua meia boca.
  3. Se você não evidencia como a sua TI está cada vez mais preparada para suportar hipóteses de negócio do conceito à produção, o seu movimento ainda estará meia boca.

O Método Kanban para acelerar Implantações DevOps

O método Kanban tem no seu núcleo as ferramentas conceituais para você acelerar a sua iniciativa DevOps.

Ele se baseia no mecanismo de mudanças evolucionárias, i.e, pequenas mudanças que são aplicadas continuamente sobre um sistema de trabalho para aumentar a robustez desse sistema.

O método Kanban possui seis práticas genéricas. Todas elas são úteis para implantação DevOps, mas destaco três aqui nessa postagem.

1. Gestão do fluxo

O fluxo é o movimento do seu  trabalho de TI (demandas, projetos, incidentes, erros). O método Kanban diz que devemos gerenciar o trabalho através de entregas previsíveis e suaves. E sempre usar dados para medir a sua maturidade.

Essa prática Kanban está profundamente conectada com o primeiro caminho do DevOps. E uma métrica central do sistema Kanban, o Lead Time, pode te ajudar claramente a mostrar a eficiência de sua implementação DevOps.

Quando medimos continuamente o Lead Time e a variabilidade dessa medida em nossas implantações DevOps, você passa a ter uma ferramenta poderosa para mostrar valor e agilidade de negócio de forma concreta. No wishful thinking!

Como exemplo, pude acompanhar uma empresa que reduziu o seu lead time das demandas de 30 para 20 dias ao longo de alguns meses com a introdução consistente de estressores DevOps no seu sistema de trabalho. Até o mais céticos dos gerentes envolvidos deu o braço a torcer.

2. Laços de Feedback

O método Kanban estimula que tenhamos cadências específicas para avaliar a nossa maturidade, sempre dirigidas por dados. Essas cadências promovem a colaboração entre as pessoas, aprendizado e melhorias.

Por exemplo, em reuniões como a retrospectiva de time discutimos como está a nossa previsibilidade das nossas demandas, variabilidade do tempo de entrega e taxa de defeitos. Com isso, podemos avaliar, periodicamente, se as nossas ações tecnológicas e ferramentas estão ajudando o nosso sistema a fluir. A colaboração aumenta e isso é pilar central para a criação de uma cultura DevOps.

3. Políticas explícitas

Quando encontramos um sistema de trabalho ruim, podemos descobrir e introduzir políticas que nos ajudam a reduzir as fragilidades nesse sistema.

Por exemplo, pense em algumas dessas ideias DevOps:

  • Revisões por pares;
  • Git Merge Requests;
  • Automação de testes de unidade
  • Critérios de aceite para promoção de builds;
  • Testes de estresse na infraestrutura.

Essas ideias podem ser representadas no sistema Kanban a partir de políticas de trabalho. Essas e outras políticas podem ser introduzidas sob demanda para eliminar as fraquezas no seu ambiente e criar um organismo cada dia mais forte.

Como um outro exemplo, pude acompanhar um time com baixa maturidade de arquitetura e qualidade que avaliou as fragilidades o seu sistema de fluxo e introduziu uma política de revisão obrigatória do código por pares. Essa política, tornada obrigatória pelo próprio time, conseguiu trazer estabilidade para as decisões arquiteturais e iniciar o pagamento da dívida técnica que esse time introduziu ao longo de seis meses de trabalho indisciplinado. O sistema Kanban ajudou o time a implementar a política e medir o efeito prático dessa política no lead time e taxa de defeitos em produção.

Resumo – Esteróides Naturais

Assim como o hormônio do crescimento ou a testosterona, anabolizantes naturais que ajudam humanos a se tornarem mais fortes e resilientes, podemos pensar que o sistema Kanban introduz formas legítimas de você melhorar a sua implementação DevOps.

Times DevOps que introduzem práticas Kanban no seu sistema de trabalho tem muito mais chance de sucesso. Eles reduzem a resistência à mudança, trabalham em práticas que fazem sentido no seu contexto, criam hipóteses de melhoria dirigidas pelo pensamento científico e operam sob o manto da antifragilidade.

 

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s