Usando Kanban para DevOps e Entrega Contínua

O que é DevOps?

Para alguns, o DevOps é sobre cultura, para outros, é uma metodologia de desenvolvimento de software por si só. Embora sempre haja discussão e definições favoritas, o DevOps geralmente passou a englobar uma filosofia que enfatiza a comunicação, colaboração e cooperação entre os desenvolvedores de software e as outras partes interessadas na indústria de tecnologia da informação.

Por que DevOps?

Há um reconhecimento geral de que o desenvolvimento real de software, a garantia de qualidade e as operações de TI são interdependentes e há a necessidade de garantir que essas funções (tradicionalmente sempre funcionalmente independentes) funcionem como uma só para garantir a entrega rápida de produtos ou serviços que atendam aos padrões da indústria. E é por isso que os conceitos de integração contínua (para desenvolvedores), automação (QA) e entrega contínua (operações de TI) têm se tornado cada vez mais populares. Mas o objetivo continua o mesmo – entregar um sistema estável e rico em funcionalidades ao seu usuário final.

O DevOps passou a ser reconhecido por incorporar todo um conjunto de ferramentas e tecnologias que integram perfeitamente o ciclo de vida do aplicativo ou desenvolvimento de software, desde o projeto até o desenvolvimento, testes e implantação. Implementadas e integradas corretamente, estas ferramentas permitem a construção contínua, integração contínua, testes contínuos e implantação contínua. Assim, o DevOps permite a implementação incremental e contínua de pequenas mudanças e atualizações em produtos e páginas web com tempo de paralisação mínimo a zero. No mundo atual de entrega e consumo de aplicativos baseados em SaaS, o DevOps se tornou um fator crítico de sucesso para os fornecedores de tecnologia para entregar novas funcionalidades de produtos, correções de defeitos e atualizações de desempenho e segurança em praticamente tempo real.

Por que Kanban para DevOps?

A principal vantagem que o Kanban tem é que ele incentiva as equipes a se concentrarem na melhoria do fluxo no sistema. À medida que as equipes adotam o Kanban, elas se tornam boas em entregar continuamente o trabalho que completaram. Assim, o Kanban facilita a realização de lançamentos incrementais de produtos com pequenos pedaços de novas funcionalidades ou correções de defeitos. Esta característica do Kanban o torna bem adaptado às exigências de entrega e implantação contínuas do DevOps.

kanban for devops

A outra grande vantagem do Kanban é como ele permite visualizar todo seu fluxo de valor e garantir um fluxo estável. Ele ajuda você a combinar os fluxos de trabalho de diferentes funções e atividades desde o Desenvolvimento até a Integração/Construção, Teste, Implantação e, além disso, o monitoramento da aplicação. Inicialmente, ele ajudará suas equipes Dev e Ops a trabalharem de forma colaborativa. Durante um período de tempo, você pode evoluir para uma única equipe e um único fluxo de trabalho que inclui todas as atividades Dev e Ops. O Kanban lhe dá visibilidade a todo este processo – e transformação para uma cultura DevOps.

Esta visibilidade assegura que todos saibam quais etapas um item de trabalho deve passar para garantir que seja considerado ‘Feito e Bem Sucedido’, e isto traz vantagens notáveis –

  • Identificar o que precisa ser consertado – o mapeamento de seu fluxo de trabalho mostra o que precisa ser consertado primeiro com os processos que você segue. De fato, com Kanban, você começa com o que está fazendo atualmente e depois tenta melhorar continuamente.
  • Prioridades – Seus participantes sabem quais itens de trabalho são priorizados com apenas um olhar sobre “o quadro”. Isto assegura que o trabalho certo/importante seja puxado depois de levar em consideração como ele afeta a estabilidade geral do sistema (a escolha do certo assegura a introdução de um atrito mínimo). Isto também assegura que cada equipe, incluindo clientes internos, saiba o que está em alinhamento com os objetivos do negócio.
  • Trabalho bloqueado é imediatamente percebido – se houver uma dependência ou problema, os tomadores de decisão podem imediatamente intervir e descobrir o que fazer a seguir – não há custo de feedback atrasado.
  • O sistema de puxar – o Kanban incentiva você a ‘parar de começar e começar a terminar’ – assegura que você gaste seu tempo com um número mínimo possível de itens de trabalho de cada vez, reduzindo assim a frequente mudança de contexto e perda de produtividade. Isto também garante que o fluxo seja constante – quando você está preso a uma tarefa, não há nada que impeça outros de puxar novos trabalhos, ou seja, o sistema geral é estável.
  • Automação – o quadro mostra como seu trabalho flui, onde estão seus gargalos, qual é seu tempo de ciclo – na verdade mostrando onde a automação pode ajudar e o que precisa ser melhorado.

O Kanban não pode substituir a estratégia e a intenção – você precisa ter desenvolvedores que estejam dispostos a fazer partes de QA e compreender quanta mudança eles podem introduzir no sistema sem interromper o fluxo, e você precisa que sua equipe de operações compreenda quais mudanças (funcionalidades) para se preparar para garantir a estabilidade. No entanto, isso pode definitivamente ajudar em ambos – quando você tem todos a bordo há menos tensão ao redor e garante que cada função (e indivíduo) seja mais eficaz e saiba exatamente o que precisa ser feito.

Por que não Scrum?

Embora o Scrum possa e funcione bem em ambientes de entrega onde a necessidade de entrega pode não ser verdadeiramente “contínua” (afinal de contas, você está trabalhando com um ciclo de sprint mínimo de 2-3 semanas), a própria natureza do Kanban o torna mais adequado. Se você observar a maioria das implementações DevOps no setor – você descobrirá que é difícil encaixá-lo em um sprint padrão. O Kanban é mais puxado do que empurrado, e o conceito de fluxo que forma sua base está muito de acordo com o DevOps. Além disso, a entrega contínua e o Kanban trabalham bem juntos – ambos são sistemas just-in-time que se concentram em acertar uma coisa de cada vez (na maioria das vezes!). E, é claro, a flexibilidade que o Kanban traz é um bônus adicional.

Como começar?

  • Sua equipe Dev pode controlar seu próprio trabalho em um quadro Kanban separado. Para as bases de um quadro Kanban, leia nosso artigo sobre Quadros Kanban
  • As operações podem ter seus próprios quadros que giram em torno da automação, produção e suporte que tenham itens de trabalho da forma ‘Manutenção’, ‘Implementação’, ‘Suporte de Desktop/Servidor’, entre outros
  • Seu fluxo de valor total deve ser monitorado em um quadro Kanban separado, onde Dev e Ops têm suas próprias pistas. (Consulte nossa página sobre o portfólio Kanban para obter detalhes sobre como configurar e utilizar quadros hierárquicos).
  • Não sugerimos a aplicação do DevOps no nível da história do usuário. O que quer que você defina como seu MMF (funcionalidade mínima comercializável) ou Épico, ou Release (qualquer unidade de fato) deve provavelmente ser WIP limitado, não histórias individuais. É possivelmente a única maneira sensata/mais simples de ajudar a mapear e gerenciar todo o seu valor – fluxo de valor.

Você já adotou o DevOps? Você está avaliando o uso de Kanban para suas equipes DevOps? Usando o SwiftKanban e nosso produto de integração SwiftSync, podemos ajudar você a colocar sua solução DevOps em funcionamento em pouco tempo. Basta nos deixar uma mensagem em [email protected] ou inscrever-se para um teste gratuito! Se você gostaria que trabalhássemos com você para desenvolver sua própria solução DevOps, basta nos comunicar.

Se você já está usando o SwiftKanban e precisa de ajuda para configurar seus quadros Kanban, entre em contato conosco em [email protected]

Kanban para DevOps

Visualize seu fluxo de trabalho e gerencie seu trabalho de maneira fácil e intuitiva.

Experimente nosso Plano Empresarial GRATUITAMENTE por 30 dias.