Explorar o aprimoramento contínuo
O aprimoramento contínuo é uma das oito funcionalidades na taxonomia de DevOps.
Descobrir por que o aprimoramento contínuo é necessário
O aprimoramento contínuo envolve e requer medição. Como você identifica o aprimoramento se não medir?
O relatório Faster Software Delivery Will Accelerate Digital Transformation (Entrega de software mais rápida acelerará a transformação digital) da Forrester, publicado em 2017, mostra um desperdício significativo entre o prazo de entrega e o tempo de processamento. Isso nos lembra que se você não medir, não saberá a diferença ou quanto desperdício de sua organização está criando.
Depois de medir o impacto que os desperdícios específicos têm sobre o processo, torna-se fácil priorizar o trabalho para fazer aprimoramentos.
Fonte: Forrester, Faster Software Delivery Will Accelerate Digital Transformation, 9 de março de 2017 por Diego Lo Giudice, Christopher Condo com Christopher Mines e Luis Deya
Mas como aprimorar a experiência do cliente se você 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 melhores insights do cliente”. A sobreposição entre os recursos do aplicativo testados e os recursos do aplicativo usados é de cerca de 35%.
Como você pode criar o software certo se não mede o uso e o impacto dos novos recursos? Com uma chance de 65% de errar, saber a diferença é essencial.
O que é o aprimoramento contínuo?
Observar o seu processo do DevOps de maneira contínua e imparcial permite que as equipes identifiquem possíveis pontos de aprimoramento.
Todo aprimoramento requer mudanças, mas nem todas as mudanças são aprimoramentos. É por isso que a medição é um fator de sucesso crítico para organizações que usam DevOps. Como Peter Drucker diz, "Se você não pode medir, não pode aprimorar”.
A falta de um mecanismo de comentários eficaz dificulta o aprimoramento do impacto dos aplicativos nos negócios. É por isso que é importante criar um ambiente que promova uma abordagem centrada no aprendizado para o aprimoramento do DevOps, com foco na realização de ajustes baseados em dados.
Medida e métricas
Primeiro, vamos considerar a medida. De acordo com o livro Accelerate de Nicole Forsgren, Jez Humble e Gene Kim, as quatro medidas mais importantes do desempenho de entrega de software são:
- Prazo de entrega de alteração: uma medida de tempo de desempenho de entrega de software. O tempo necessário 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 de tempo de resposta, coesão da equipe, funcionalidades de 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 primário quando ocorre um incidente de serviço.
- Percentual de falha de alteração: o percentual 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 do DevOps medir coisas como métricas de integridade operacional, uso, velocidade e integridade do site ativo. Em outras palavras, meça o IMPACTO, não a ATIVIDADE. Uma métrica só é útil se for acionável.
Embora as equipes do scrum meçam a capacidade e a velocidade da equipe, o burndown e o número de bugs, essas métricas são relevantes apenas no contexto da equipe. Mas é importante que a liderança de DevOps permaneça concentrada no impacto.
Importante
Meça o impacto, não a atividade!
Coisas que medimos:
Usage
Velocidade
Integridade do site ativo
- Aquisição
- Participação do usuário
- Satisfação
- Rotatividade
- Uso de recursos
- Tempo de build
- Tempo de autoteste
- Tempo de implantação
- Tempo de aprendizado
- Tempo de detecção
- Tempo de comunicação
- Tempo de mitigação
- Impacto no cliente
- Itens de prevenção de incidentes
- Problemas de envelhecimento do site ativo
- SLA por cliente
- Métricas de suporte ao cliente
Coisas que não observamos:
- Estimativa original
- Horas concluídas
- Linhas de código
- Capacidade da equipe
- Burndown da equipe
- Velocidade da equipe
- Número de bugs encontrados
Importante
As métricas afetam os resultados de negócios.
É importante alinhar os KPIs com hábitos. Isso ajuda a obter resultados de negócios positivos.
Os hábitos importantes para reforçar os KPIs e preparar as equipes para o sucesso devem incluir:
- Alinhamento da organização e autonomia da equipe: o que, como e por que criamos. Você precisa de uma cadência (ou pulsação) comum em sua organização para permitir que todas as equipes de liderança e recursos colaborem de maneira transparente e eficaz.
- Foco do cliente: todos os esforços devem ter impacto direto ou indireto sobre o valor do cliente.
- Mentalidade de produção em primeiro lugar: uma mentalidade que não diferencia a forma como os recursos e bugs são tratados durante o desenvolvimento, os testes e o suporte operacional. Tudo deve ser automatizado, ter controle de versão e ajustado na produção.
- Shift-left da qualidade e fail fast: incentive análises, validações e aprovações para teste e segurança o mais cedo possível no ciclo de entrega do recurso para impulsionar a qualidade e uma mentalidade de fail fast.
Comentários contínuos
Em seguida, vamos considerar como usar os comentários contínuos para colaboração.
Os desenvolvedores de aplicativos modernos mais falados vêm de startups. Por que eles são tão bem-sucedidos? Porque suas práticas lean são proporcionadas por anos de processos refinados.
As startups lean estabeleceram um caminho ideal para que as ideias sejam desenvolvidas, entregues e refinadas criando uma cultura de comentários contínuos incrivelmente positivos:
- Lançar antes, lançar com frequência
- Começar com um produto viável mínimo
- Usar o desenvolvimento controlado por hipóteses
- Aprimoramento contínuo por meio de comentários do cliente
Aprimoramento contínuo por meio do mapeamento de fluxo de valor
Quando temos medidas e comentários, o aprimoramento se torna um exercício controlado por dados.
Uma forma eficaz de dar suporte ao aprimoramento contínuo é pelo mapeamento de fluxo de valor. Um fluxo de valor é uma sequência de atividades que uma organização realiza para entregar mediante a uma solicitação do cliente.
O mapeamento de fluxo de valor é uma forma altamente eficaz de aprender a ver e resolver desconexões, redundâncias e lacunas em como o trabalho é feito. Não é meramente uma ferramenta, mas uma metodologia baseada em equipe que acreditamos ser a base de uma prática de gerenciamento comprovada.
A análise do fluxo de valor permite dividir o processo de entrega e medir o prazo de entrega, o tempo do ciclo e o tempo ocioso, o que ajuda as equipes a fazer ajustes baseados em dados para o fluxo de trabalho.
Essas medidas ajudam as equipes a planejar, detectar variações na eficiência e identificar possíveis problemas de processo.
Dica
Quanto menor o prazo de entrega e os tempos de ciclo, mais rápida é a taxa de transferência que sua equipe tem.
Precisamos ser capazes de identificar a diferença entre o trabalho sem valor agregado desnecessário e o necessário para ajudar a identificar alterações futuras para o aprimoramento do processo.
Um trabalho sem valor agregado desnecessário é um desperdício real: o cliente não o valoriza e a organização não precisa fazê-lo para continuar sendo uma empresa viável. Ele consome recursos sem agregar nenhum valor ao produto.
DevOps controlado por dados: as métricas ajudam a orientar sua jornada
A transformação DevOps é uma jornada e a melhor e mais eficiente maneira de se guiar na jornada de DevOps é pelo DevOps controlado por dados.
Sugerimos que você estabeleça uma abordagem holística para medir a eficácia do DevOps e fornecer transparência em iniciativas de transformação DevOps. Crie uma cultura que promova o aprendizado e a experimentação que o DevOps exige concentrando-se nas métricas que destacam o sucesso. Reconheça esses sucessos comemorando o comportamento certo em vez de punir o incorreto.