Agile Software Development Metrics and KPIs that Help Optimize Product Delivery

CONTENTS

Reading time: 13 minutes

The agile approach to software development has been a common practice. De acordo com a pesquisa on-line da HP, 16 por cento dos profissionais de TI optam por pura ágil, 51 por cento se inclinam para ela, e 24 por cento adotam uma abordagem híbrida ágil. Hoje, o desenvolvimento de cachoeira é mencionado na maioria das vezes como um diferenciador ágil, o que ágil não é. Nós discutimos amplamente as principais diferenças em nosso whitepaper sobre metodologias ágeis de gerenciamento de projetos.Apesar da adaptabilidade e flexibilidade da Gestão ágil e sua resposta rápida às mudanças, o fluxo de trabalho pode permanecer centralizado e controlado. Os KPI ágeis (indicadores-chave de desempenho) fornecem orientações para o planeamento estratégico, a avaliação e a melhoria dos processos operacionais.

os sistemas tradicionais de gestão de valores tendem a concentrar-se na conclusão das tarefas dentro do quadro de cronograma e custo categóricos. No entanto, com agilidade, os clientes e os membros da equipa vêem resultados imediatos e ajustam prazos e esforços para entregar um produto que corresponda aos requisitos da programação. Que Ferramentas e técnicas exigem tal conhecimento? Aqui está a nossa visão geral da avaliação de desempenho das métricas de desenvolvimento ágil.

ágeis KPIs desenvolvimento de software

neste artigo, não vamos explorar todas as métricas de desenvolvimento ágil possíveis e KPIs. Além disso, você pode inventar os seus próprios que correspondem melhor ao seu projeto. No entanto, vamos descrever os KPIs mais comuns utilizados em vários aspectos de desenvolvimento de software:

  • Velocidade
  • Sprint burndown
  • Release burndown
  • tempo de Ciclo
  • fluxo Cumulativo
  • a eficiência do Fluxo de
  • cobertura de Código por testes automatizados
  • a automação de Teste manual teste
  • McCabe Cyclomatic Complexidade (MCC)
  • Código churn
ágil kpis

Estas são as principais coisas que você deve explorar primeiro

Medição de obra em andamento

Velocidade

Velocidade mede a quantidade de trabalho (um número de características) concluída em um sprint. Embora não seja uma ferramenta de previsão ou comparação, a velocity fornece às equipes uma idéia sobre quanto trabalho pode ser feito no próximo sprint.

Índice de velocidade é único para cada equipe e deve ser definido para avaliar o quão realista O Compromisso é. Por exemplo, se o backlog do projeto tem 200 pontos de história e, em média, a equipe completa 10 pontos de história por sprint, isso significa que a equipe vai precisar de cerca de 20 sprints para completar o projeto.

gráfico de velocidade

velocidade do gráfico

O mais que você controle a velocidade, maior é a precisão da correspondência entre obrigações e custos

Para uma equipe que só adotou a metodologia ágil ou mesmo embarcou em um novo produto, a velocidade, as estimativas dos primeiros sprints irá provavelmente ser irregular. Mas à medida que as equipes ganham experiência, a velocidade atingirá o pico e, em seguida, alcançará um patamar de fluxo previsível e expectativa de desempenho. Uma diminuição do fluxo consistente indicará problemas no desenvolvimento e revelará a necessidade de mudança.

dicas para usar a métrica de velocidade

inconsistência de combate após 3-5 sprints. Se a velocidade permanecer inconsistente após um longo período de tempo, considere a avaliação de fatores externos e internos impedindo uma estimativa clara.

alterar o rastreamento de velocidade após as mudanças de equipe e tarefa. Quando um membro da equipe deixa o projeto ou mais membros/tarefas são adicionados, recalcular a velocidade ou reiniciar o cálculo inteiramente.

três sprints são suficientes para previsões iniciais. Para prever o desempenho futuro, use a média dos três sprints anteriores.

Sprint burndown chart

the sprint burndown chart shows the amount of work remaining to be done before the end of a sprint. A ferramenta é particularmente valiosa porque mostra o progresso em direção ao objetivo, em vez de listar itens completados. Também é muito útil para descobrir erros de planeamento que uma equipa cometeu no início de um sprint.

no gráfico abaixo da linha preta representa a linha prevista (tendência ideal) mostrando a que taxa a equipe precisa queimar pontos de história para completar o sprint no tempo. A linha azul indica a quantidade total de trabalho e o seu progresso ao longo do sprint. Você pode ver que durante os dias cinco e seis, uma equipe não conseguiu realizar o progresso previsto. No entanto, no sétimo dia, a questão foi abordada e o trabalho estava de volta no caminho certo. Essas atualizações contínuas permitem que as equipes abordem problemas emergentes durante reuniões diárias de stand-up.Sprint burndown chart

Sprint burndown chart

Além do trabalho com o desempenho em si, gráficos de burndown pode revelar problemas de planejamento

Dicas para abordagem sprint burndown

pontos de História deve ser mesmo no seu âmbito. Se o fluxo de trabalho não for consistente, algumas tarefas podem ter sido divididas em pedaços irregulares. O escopo do desvio entre uma tendência ideal e a realidade evidencia claramente este problema.

Account for unplanned tasks. O gráfico burndown é útil para entender o escopo das tarefas escondidas e não rastreadas. Se a quantidade de trabalho está aumentando em vez de diminuir, o projeto tem muitas tarefas não estimadas ou não planejadas que devem ser abordadas.

Use um gráfico burndown para avaliar a confiança da equipe. Considerando as tarifas atuais, pergunte à sua equipe o quão confiante eles estão sobre completar o sprint a tempo. Quanto mais tempo aplicar esta métrica, mais precisas são as suas estimativas de sprint.

estimar o lançamento com um gráfico burndown

um gráfico burndown de lançamento indica a quantidade de trabalho que deve ser concluído antes de um lançamento. O gráfico ilustra a visão geral do progresso e permite que você implemente alterações para garantir a entrega no tempo.

Uma versão tradicional do gráfico é semelhante para o sprint burndown chart, mas dá uma visão geral de todo o projeto, onde o eixo y é sprints e o eixo x é uma medida de trabalho restante (dias, horas, ou pontos de história). Mas, e se mais trabalho é adicionado ao projeto ou seu trabalho estimado não atende às expectativas?

na tabela abaixo, uma equipe planejou completar um projeto em quatro sprints e inicialmente teve 45 pontos de história. Enquanto o progresso foi como planejado durante o primeiro e segundo Sprint, no terceiro sprint o trabalho estimado aumentou, o que se reflete no eixo y em valores negativos. Durante o terceiro sprint, 5 novos pontos da história apareceram. Eles não foram concluídos e o quarto sprint acrescentou mais 5 pontos de história. Portanto, o progresso e o tempo de lançamento tiveram que ser ajustados.

release burndown chart

release burndown chart

O release burndown chart é super eficaz para situações com muitas mudanças de requisitos e permite que uma equipe para permanecer na pista durante cada sprint

Como pode o release burndown chart de ajuda?

Previsão em tempo Real no lançamento. Uma vez que seu projeto passa por mudanças, o que acontece todas as vezes com produtos iterativamente em desenvolvimento, você precisa ver como essas mudanças impactam a data de lançamento. O gráfico de gravação de lançamento permite prever a data de lançamento em tempo real de acordo com as atualizações no escopo de trabalho.

previsões de prazo. Você pode estimar se a equipe pode completar um lançamento de produto a tempo ou antecipar que o prazo deve avançar ainda mais considerando as tarefas adicionais.

estimando o número de sprints. Avaliar quantos sprints são necessários para terminar o trabalho é também um fator importante a considerar com o gráfico de burndown de lançamento.

processo de Avaliação de saúde e encontrar gargalos

tempo de Ciclo

O tempo de ciclo métrica descreve quanto tempo foi gasto em uma tarefa, incluindo cada vez que o trabalho teve de ser reaberta e concluído novamente. O cálculo do tempo do ciclo fornece informações sobre o desempenho global e permite estimar a conclusão de tarefas futuras. Enquanto o tempo de ciclo mais curto ilustra melhor desempenho, as equipes que entregam dentro de um ciclo consistente são mais valorizadas.Usando o gráfico abaixo você pode identificar o tempo médio que leva para completar uma tarefa, desenhar uma linha mediana ou limite de controle que não deve ser cruzado, e notar quais tarefas demoraram anormalmente para terminar.

tempo de ciclo gráfico para determinar o tempo médio necessário para concluir uma tarefa

o tempo de ciclo gráfico para determinar o tempo médio necessário para concluir uma tarefa

O desvio padrão desenha uma linha entre o normal e não é recomendado o número de dias para completar a tarefa

Você também pode empilhar todos os ciclos para um determinado período e desenhar uma visão da comparando-a com outros dados. Ao realizar mais uma investigação, pode tirar conclusões sobre a qualidade do trabalho.
tempo de ciclo gráfico por mês

o tempo de ciclo gráfico por mês

Aqui você pode ver que o número de tarefas concluídas a partir de Março a junho cresceu à medida que o número de bugs

Como usar o tempo de ciclo

Olhar para as semelhanças. Uma boa prática é encontrar itens semelhantes que levam tempos de ciclo imprevisíveis para completar, revelando problemas recorrentes, seja na engenharia ou na gestão.

desenhar previsões. Você pode tomar decisões orientadas por dados, prevendo o tempo para completar novas tarefas com base em semelhantes do passado.

Track the pace. O gráfico descreve como você mantém o mesmo ritmo de trabalho e define se existem problemas internos que reduzem a velocidade do trabalho.

Cumulativa Gráfico de Fluxo (CFC)

O fluxo cumulativo métrica é descrito pela área do gráfico mostrando o número de diferentes tipos de tarefas, em cada fase do projeto com o eixo x, indicando as datas e o eixo y mostra o número de pontos de história. Seu principal objetivo é proporcionar uma fácil visualização de como as tarefas são distribuídas em diferentes fases. As linhas no gráfico devem permanecer mais ou menos mesmo enquanto a banda com as tarefas “feitas” deve estar crescendo continuamente.
cumulativa diagrama de fluxo de

cumulativa diagrama de fluxo

O gráfico revela uma série de informações críticas, como a súbita gargalos ou sobe em qualquer uma das bandas

O CFC será de uma grande utilidade para o Kanban equipas, como uma simples visualização do trabalho da equipa. O gráfico também corresponde ao fluxo de trabalho de três etapas de Kanban. Aqui você também mapeia três categorias principais de tarefas: por-fazer, em progresso, e concluída.

além disso, o gráfico ajuda a identificar quando os limites de trabalho em progresso (WIP) são excedidos. Sendo uma das ferramentas mais valiosas no desenvolvimento ágil, os limites do WIP destinam-se a cultivar a cultura de acabamento do trabalho e eliminar multitarefas, estabelecendo a quantidade máxima de trabalho para cada status do projeto.

que questões são apontadas pela CFC?

  • lista de Pendências de crescimento indica a não resolvidos tarefas que estão muito baixa prioridade para resolver no momento, ou se tornaram obsoletos
  • Inconsistente fluxo repentino e gargalos de indicar quais as áreas que devem ser suavizada em fases posteriores
  • A largura de cada banda mostra o tempo médio do ciclo de
  • O significativo alargamento do “progresso” área pode significar que a equipe não será capaz de concluir todo o projeto em tempo

a Eficiência do Fluxo de

a eficiência de Fluxo é uma métrica útil no Kanban o desenvolvimento quase esquecido pelo desenvolvimento equipa. Enquanto a eficiência do fluxo complementa o fluxo cumulativo, ele dá insights sobre a distribuição entre o trabalho real e os períodos de espera. É um caso raro quando um desenvolvedor trabalha numa coisa de cada vez sem esperar. A realidade é geralmente mais complexa. E “trabalho em progresso” é um nome que nem sempre corresponde ao estado.

por exemplo, o código pode ter muitas dependências e você não pode começar a trabalhar com algum recurso antes que outro seja terminado, ou suas prioridades mudem, ou você está esperando a aprovação de um stakeholder. Medir quanto tempo você espera contra o trabalho pode ser ainda mais útil do que racionalizar processos relacionados com o trabalho real.

a eficiência do fluxo de diagrama de

a eficiência do fluxo de diagrama

olhando para o menor de indicadores de eficiência, pode-se compreender as principais gargalos

Como usar a eficiência do fluxo de

fórmula de Cálculo. A menos que aplique algum software de gestão de projectos que incorpore estas métricas, poderá calcular a eficiência do fluxo através desta fórmula simples: Work/(work+wait) * 100%. Então você pode visualizá-lo digitalmente ou até mesmo desenhar o gráfico em seu escritório quadro branco.

defina a sua eficiência de fluxo normal. Como em todas as outras métricas, é impossível reivindicar valores normais para todos os projetos. Alguns dizem que a marca de 15 por cento é OK para a maioria dos projetos, o que basicamente significa que um ponto de história ou outro item de trabalho espera 85 por cento contra 15 por cento de tempo de processamento. David J. Anderson, um especialista em Gestão da Escola de gestão de LeanKanban, sugere que 40% ou mais deve ser o alvo para a maioria das equipas.

Decompose detalhes do trabalho antes de fixar a eficiência do fluxo. O gráfico permitirá ver os períodos exactos de tempo em que a sua eficiência foi a mais baixa. E esses dados devem ser analisados com muito cuidado, pois a causa real e seu remédio não é revelado tão facilmente. Antes de iniciar acções intensivas, faça uma investigação minuciosa das causas.

aumento da eficiência do fluxo com análise bloqueadora. Um bom meio de perceber o ponto anterior é aumentar sua eficiência de fluxo com análise de clustering bloqueador. Se algum trabalho é bloqueado, ele merece um adesivo colorido ou outra forma de sinal visual para trazer estes bloqueadores à atenção da equipe para que eles possam reagir a eles.

bloqueador de cartões com o mencionado dias decorridos

bloqueador de cartões com o mencionado dias decorridos

Você pode marcar quantos dias um pouco do trabalho é bloqueado e priorizar a resolução

Normalmente, bloqueadores de acumular em clusters como eles têm muitas dependências uns com os outros. Melhor análise de bloqueador pode ser feito se você clusterize-los a partir de semelhanças de alto nível como bloqueadores internos e externos e, em seguida, especificando mais por design, conteúdo em falta, ou outras características em falta. A análise Blocker é uma maneira simples de investigar os vales em eficiência de fluxo.

Medição da qualidade do Código

cobertura do Código

cobertura do código define quantas linhas de código ou blocos são executados enquanto os testes automatizados estão em execução. Code code coverage é uma métrica crítica para a prática de desenvolvimento orientado a testes (TDD) e entrega contínua. Tradicionalmente, a métrica é interpretada por uma abordagem simples: quanto maior a cobertura do Código, melhor. Para medir isso, você vai precisar de uma das ferramentas disponíveis, como Macacões. Mas todos eles funcionam praticamente o mesmo: à medida que você executa testes, a ferramenta irá detectar qual das linhas de código são chamadas pelo menos uma vez. A percentagem de linhas chamadas é a sua cobertura de código.

cobertura de código de ficheiros

cobertura de código de ficheiros

cobertura de código através de linhas

cobertura de código através de linhas

Macacão, por exemplo, vai quebrar a cobertura de código para cada arquivo de medição e destaque coberto e descoberto linhas

Como usar a cobertura de código

Foco na descoberta de linhas e não superestimar a coberto queridos. Se a linha de código é chamada uma vez ou mais, não significa necessariamente que o recurso que suporta funciona perfeitamente bem e os usuários vão ficar satisfeitos. Chamar uma linha de código nem sempre é suficiente para fechar a tarefa de teste. Por outro lado, a porcentagem de linhas descobertas mostra o que não foi coberto e pode merecer testes.

priorize Code covered and don’t aim at 100%. Embora isto pareça contra-intuitivo, cobertura de 100% não significa que você tenha testado corretamente o código. O seu projecto tem o código que importa e o resto de uma base de códigos. Como a automação de teste é geralmente uma iniciativa cara, ela deve priorizar as características e blocos correspondentes de código.

a automação de Teste manual teste

Esta medida define quantas linhas de código dentro de um recurso já são cobertos com testes automatizados contra aqueles que são testados manualmente. Isto segue diretamente a métrica anterior, mas tem um caso específico de uso. A proporção de automação de teste em relação ao teste manual é usada apenas quando você precisa criticamente de automação para cobrir regressões. O teste de regressão é feito para verificar se algo ficou quebrado após atualizações de recursos. E se o seu produto sofrer melhorias constantes – que ele deve-o teste de regressão deve ser automatizado. Se não for, Seus especialistas de QA manual terão que repetir os mesmos cenários de teste repetidamente após cada commit de atualização.

automação de teste vs testes manuais

automação de teste vs manual de teste

Você pode usar os mesmos instrumentos utilizados para a cobertura de código para desenhar esta métrica

estrutura de tópicos de testes automatizados de cobertura por recurso irá permitir que você a priorizar os recursos de que: 1) podem sofrer de regressão após as atualizações, e 2) para que testes automatizados são críticos. Normalmente, você não tem tempo e recursos humanos suficientes para cobrir tudo através de testes automatizados de uma vez, a menos que você trabalhe dentro do quadro de desenvolvimento orientado por testes. Então, é melhor priorizar os recursos que são certos de impacto experiência do Usuário.

McCabe Cyclomatic Complexity (MCC) of code

Code complexity measurements are used to assess the risk of problems during code testing and maintenance. Quanto maior a complexidade do código, mais difícil se torna garantir que ele tenha um número aceitável de bugs e mantenha alta mantenabilidade. A abordagem mais comum para medir a complexidade do código é a métrica de complexidade ciclomática de McCabe (MCC). Uma das fórmulas para obter resultados de complexidade para MCC é a seguinte::

MCC = bordas – nós + declarações de retorno

McCabe Cyclomatic Complexidade

McCabe Cyclomatic Complexidade

MCC na imagem é igual a 3

Com este resultado, os desenvolvedores não estão a estimativa de seus complexidade do código por subjetivamente olhando para ele. Como as habilidades dos engenheiros diferem, suas avaliações variam o que torna o refactoring de código ou a correção de bugs mais desafiadores a longo prazo. Existem muitas ferramentas de medição MCC no mercado que podem ser combinadas com outras métricas de complexidade de código, como a profundidade da hierarquia de código e o número de linhas de código.

MCC use specificics and pitfalls

Balance human and machine perception of code complexity. Uma das principais razões para usar MCC é tornar o código legível para outros desenvolvedores. A legibilidade do Código reduz os riscos de longo prazo onboarding de novos desenvolvedores que têm que lidar com o código legado. Além disso, simplificará o reajustamento ao longo da estrada. O problema aqui é que o modelo MCC pode considerar alguns métodos complexos mas legíveis inaceitáveis. E se você forçar um desenvolvedor a refaturar métodos complexos em muitos sub-métodos, você pode alcançar os resultados opostos: muitos métodos com lógicas simples podem tornar-se ainda mais difíceis de compreender para um humano do que um único, mas complexo método.

não faça MCC uma métrica restritiva. Algumas organizações praticam a terminação de códigos commits que não passam no teste MCC. Embora isso possa potencialmente aumentar a simplicidade do código, é natural ter um código complexo nos níveis de classes, métodos e funções. Bloqueá-los completamente nem sempre é benéfico. Uma boa prática é definir KPI de complexidade geral de código para desenvolvedores, o que irá encorajá-los a abordar a codificação de forma mais consciente e pensar em simplicidade.

aplicar MCC para revisão de código. Outra prática valiosa para testes MCC é aplicá-lo durante revisões de código para reduzir o escopo do trabalho para a revisão de blocos de código específicos onde os riscos de defeitos são mais elevados.

Code churn

Code churn é uma visualização muito útil de tendências e flutuações que acontecem a uma base de código tanto em termos do processo global quanto do tempo antes de uma liberação. O Churn mede quantas linhas de código foram adicionadas, removidas ou alteradas. Às vezes, os gráficos mostram as três medidas.

Código churn

Código do churn

Este exemplo do Microsoft inclui todos os três parâmetros, mas você pode usá-los seletivamente

Embora o código de acompanhamento de churn pode parecer um tanto primitivo métrica, permite avaliar o código de estabilidade em diferentes fases de desenvolvimento. Você deve esperar a menor estabilidade durante os primeiros sprints e a maior estabilidade – com o churn menor concomitante – imediatamente antes de um lançamento. Se o seu código for altamente instável e a data de lançamento estiver a aproximar-se, soe o alarme.

Code churn use cases

Look for regularities. Picos regulares em mudanças de código podem revelar que a abordagem de geração de tarefas não é focada o suficiente e produz muitas grandes tarefas em uma base recorrente.

picos irregulares mas altos requerem investigação. Se você tem picos irregulares mas poderosos em mudanças de código, você pode investigar quais as tarefas que causaram tais picos sísmicos em seu código e reconsiderar o nível de dependências, especialmente se o número de novas linhas de código aumentou o número de linhas alteradas também.

preste atenção às tendências. A estabilidade do seu produto torna-se bastante crítica antes de um lançamento. Como mencionamos, a taxa de churn deve ter uma tendência de declínio quanto mais perto sua equipe chegar a um lançamento. Uma tendência crescente significa possível instabilidade do produto após um lançamento, porque é provável que o novo código não será submetido a testes suficientes.

Mire for progress, not control

Just like any other performance indicators, agile métrics don’t always have distinct answers or action tips that will seal your success. No entanto, você deve usar o conhecimento que eles fornecem para iniciar uma discussão, realizar uma avaliação, e oferecer seu próprio plano para lidar com questões problemáticas.Enquanto as métricas fornecem a visão numérica sobre o desempenho de uma equipe e a satisfação geral com o trabalho, não se fixam nelas. Considerando que as métricas ágeis não são padronizadas, não vale a pena comparar sucessos de diferentes equipes. Em vez disso, certifique-se de abraçar o feedback de sua equipe, iniciar discussões regulares, e nutrir uma atmosfera de objetivos comuns e apoio.

Deixe uma resposta

O seu endereço de email não será publicado.

Previous post melhores receitas de caril de camarão
Next post Melhor Crankbaits Para Baixo