Explore a Melhoria Contínua

Concluído

A Melhoria Contínua é um dos oito recursos da taxonomia de DevOps.

Descubra porque é que a Melhoria Contínua é necessária

A Melhoria Contínua envolve e requer medição. Como identificar melhorias se não medir?

O relatório da Forrester Faster Software Delivery Will Accelerate Digital Transformation, publicado em 2017, mostra um desperdício significativo entre o tempo de espera e o tempo de processo. Ele nos lembra que, se você não medir, não poderá saber a diferença – ou quanto desperdício sua organização está criando.

Depois de medir o impacto que resíduos específicos têm no processo, torna-se fácil priorizar o trabalho para fazer melhorias.

O diagrama mostra um desperdício significativo entre o prazo de entrega de 123 dias e o tempo de processo de 39 dias. Isto equivale a um tempo de espera de 84 dias.

Fonte: Forrester, Entrega Mais Rápida de Software Acelerará a Transformação Digital, 9 de março de 2017 por Diego Lo Giudice, Christopher Condo com Christopher Mines, Luis Deya

Mas como melhorar a experiência do cliente se não medir? A pesquisa da Forrester mostrou que "uma pequena sobreposição entre os recursos testados e usados significa que os desenvolvedores precisam de uma melhor perceção do cliente." A sobreposição entre os recursos do aplicativo testados e os recursos do aplicativo usados é de cerca de 35%.

O diagrama mostra que há apenas uma sobreposição de 35% entre os recursos que estão sendo testados e os que estão sendo usados.

Como você pode criar o software certo se não medir o uso e o impacto de novos recursos? Com 65% de chance de errar, saber a diferença é essencial.

O que é a Melhoria Contínua?

Observar de forma contínua e franca seu processo de DevOps permite que as equipes identifiquem possíveis pontos de melhoria.

Toda melhoria requer mudança, mas nem toda mudança é melhoria. É por isso que a medição é um fator crítico de sucesso para as organizações que usam DevOps. Como diz Peter Drucker, "Se você não pode medi-lo, você não pode melhorá-lo".

A falta de um mecanismo de feedback eficaz dificulta a melhoria do impacto das aplicações nos negócios. É por isso que é importante criar um ambiente que promova uma abordagem centrada no aprendizado para a melhoria do DevOps, com foco em fazer ajustes baseados em dados. O diagrama mostra que devemos usar a medição e o impacto para gerar melhorias. A medição deve levar a uma mudança positiva de comportamento. As organizações devem evoluir para uma prática de aprendizagem contínua e feedback para criar Melhoria Contínua no desempenho da entrega de software.

Medição e métricas

Primeiro, vamos considerar a medição. De acordo com o livro Accelerate de Nicole Forsgren, Jez Humble e Gene Kim, as quatro medidas mais importantes do desempenho da entrega de software são:

  • Lead time para a mudança: uma medida do tempo de desempenho de entrega de software. O tempo que leva para passar do código confirmado para o código executado com êxito na produção
  • Frequência de implantação: uma medida direta ou indireta do tempo de resposta, coesão da equipe, recursos do desenvolvedor, eficácia da ferramenta de desenvolvimento e eficiência geral da equipe de DevOps.
  • Tempo médio de restauração: quanto tempo geralmente leva para restaurar um aplicativo ou serviço principal quando ocorre um incidente de serviço.
  • Porcentagem de falha de alteração: a porcentagem de alterações na produção (incluindo, por exemplo, versões de software e alterações de configuração de infraestrutura) que falham.

É responsabilidade da liderança de DevOps medir coisas como métricas de integridade operacional, uso, velocidade e integridade do local ao vivo. Em outras palavras, meça IMPACTO, não ATIVIDADE. Uma métrica só é útil se for acionável.

Embora as equipes scrum meçam a capacidade da equipe, a velocidade da equipe, o burndown e o número de bugs, essas métricas só são relevantes dentro do contexto da equipe. Mas é importante que a liderança de DevOps permaneça focada no impacto.

Importante

Meça o impacto, não a atividade!

Coisas que medimos:

Utilização

Velocidade

Estado de funcionamento do site em tempo real

  • Aquisição
  • Interações
  • Satisfação
  • Churn
  • Utilização de funcionalidades
  • Hora de construir
  • Tempo de autoteste
  • Tempo de implantação
  • Tempo para aprender
  • Tempo para detetar
  • Hora de comunicar
  • Tempo para mitigar
  • Impacto no cliente
  • Itens de prevenção de incidentes
  • Problemas de envelhecimento no site ao vivo
  • SLA por cliente
  • Métricas de suporte ao cliente

Coisas que não assistimos:

  • Estimativa original
  • Horas cumpridas
  • Linhas de código
  • Capacidade da equipa
  • Burndown da equipe
  • Velocidade da equipa
  • Número de bugs encontrados

Importante

As métricas afetam os resultados dos negócios.

Alinhar KPIs com hábitos é importante. Ajuda a alcançar resultados comerciais positivos.

Hábitos importantes para reforçar os KPIs e montar equipes para o sucesso devem incluir:

  • Autonomia da equipa e alinhamento organizacional: O quê, como e porquê construímos. Você precisa de uma cadência comum, ou pulsação, em toda a sua organização para permitir que todas as equipes de liderança e recursos colaborem de forma transparente e eficaz.
  • Foco no cliente: Todos os esforços devem ter impacto direto ou indireto no valor do cliente.
  • Mentalidade de produção em primeiro lugar: uma mentalidade que não diferencia como os recursos e bugs são tratados durante o desenvolvimento, testes e suporte operacional. Tudo deve ser automatizado, versionado e ajustado na produção.
  • Priorize a qualidade desde o início e aceite falhas rapidamente: incentive avaliações, validações e aprovações para testes e segurança o mais cedo possível no ciclo de entrega de funcionalidades para impulsionar a qualidade e uma mentalidade de aceitação de falhas.

O diagrama mostra a relação entre métricas, KPIs, hábitos e resultados de negócios. As métricas apoiam os KPIs, que devem estar alinhados com os hábitos para alcançar os resultados do negócio. Exemplos de KPIs incluem tempo de resposta, frequência de implantação, tempo médio para restaurar e taxa de falha de alteração. Esses KPIs devem estar alinhados a hábitos como: autonomia da equipa e alinhamento da organização, foco no cliente, mentalidade de produção prioritária, com mudanças rápidas e foco em qualidade desde o início. Esse alinhamento ajuda a alcançar resultados de negócios, como um tempo de colocação no mercado mais rápido, maior qualidade, menos desperdício e segurança de ponta a ponta.

Feedback contínuo

Em seguida, vamos considerar como usar o feedback contínuo para colaboração.

Os desenvolvedores de aplicativos modernos mais falados vêm de startups. Por que eles são tão bem-sucedidos? Porque as suas práticas lean não são sobrecarregadas por anos de processos refinados.

As startups enxutas estabeleceram um caminho ideal para desenvolver ideias, entregá-las e refiná-las – criando uma incrível cultura de feedback contínuo positivo:

  • Lançamento antecipado, lançamento com frequência
  • Comece com um produto mínimo viável
  • Use o desenvolvimento orientado por hipóteses
  • Melhoria contínua através do feedback dos clientes

Diagrama mostra o ciclo de feedback contínuo. Começamos com ideias, construímos o código e medimos os resultados para coletar dados. A data vai nos ajudar a aprender e gerar novas ideias. O feedback contínuo minimiza o tempo total através do loop.

Melhoria Contínua através do mapeamento do fluxo de valor

Quando temos medição e feedback, a melhoria torna-se um exercício orientado por dados.

Uma forma eficaz de apoiar a Melhoria Contínua é através do mapeamento do fluxo de valor. Um fluxo de valor é uma sequência de atividades que uma organização se compromete a entregar a uma solicitação do cliente.

O mapeamento do fluxo de valor é uma maneira altamente eficaz de aprender a ver e resolver desconexões, redundâncias e lacunas na forma como o trabalho é feito. Não é apenas uma ferramenta, mas uma metodologia baseada em equipe que acreditamos ser a base de uma prática de gestão comprovada.

A análise do fluxo de valor permite detalhar o processo de entrega e medir o tempo de entrega, o tempo de ciclo e o tempo ocioso, o que ajuda as equipes a fazer ajustes baseados em dados no fluxo de trabalho.

Essas medidas ajudam as equipes a planejar, identificar variações na eficiência e identificar possíveis problemas no processo.

Diagrama mostra as etapas do processo de entrega. Lead time é o tempo total em todas as etapas. O tempo ocioso é o tempo entre duas etapas. O tempo de processo ou ciclo mede a duração de uma etapa.

Gorjeta

Quanto menores os tempos de lead e ciclo, mais rápido será o rendimento da sua equipe.

Precisamos ser capazes de identificar a diferença entre trabalho desnecessário sem valor agregado e trabalho necessário sem valor agregado para ajudar a identificar mudanças futuras para melhoria de processos.

O trabalho desnecessário sem valor agregado é um verdadeiro desperdício: o cliente não o valoriza e a organização não precisa fazê-lo para permanecer uma empresa viável. Consome recursos sem acrescentar qualquer valor ao produto.

O diagrama mostra que o lead time inclui o tempo de processo desnecessário e necessário sem valor agregado, bem como o tempo de processo de agregação de valor.

DevOps orientado por dados: as métricas ajudam a guiar sua jornada

A transformação de DevOps é uma jornada, e a melhor e mais eficaz maneira de se guiar pela jornada de DevOps é por meio de DevOps orientado por dados.

O diagrama mostra o fluxo da jornada de DevOps. As equipas iniciam a transformação e identificam vitórias rápidas. A automação ajuda os de baixo desempenho a progredir para os de desempenho médio. A automação aumenta os requisitos de teste, que são tratados manualmente. Uma montanha de dívidas técnicas bloqueia o progresso. A dívida técnica e o aumento da complexidade causam controles manuais adicionais e camadas de processo em torno de mudanças, retardando o trabalho. Um trabalho de melhoria incansável leva à excelência e ao alto desempenho! Artistas de alto e alto desempenho aproveitam a experiência e aprendem com seus ambientes para ver saltos na produtividade.

Sugerimos que você estabeleça uma abordagem holística para medir a eficácia do DevOps e fornecer transparência nas iniciativas de transformação do DevOps. Crie uma cultura que promova o aprendizado e a experimentação que o DevOps exige, concentrando-se em métricas que destacam o sucesso. Reconheça esses sucessos celebrando o comportamento certo em vez de punir o errado.