métricas ágeis

Você vai ler sobre:

  1. Entendendo a importância das Métricas Ágeis
  2. O que são métricas e como elas nos auxiliam rodando ágil?

Aqui no blog, já falamos como diversas empresas estão passando por grandes transformações e mudanças estruturais para conseguir acompanhar as demandas do mercado e se manterem competitivas. Uma dessas grandes mudanças tem relação com a adoção do mindset ágil, que permite que tornem seus processos mais eficientes.

Porém, quando falamos em agilidade temos que pensar na garantia de qualidade, e é nesse ponto que as métricas ágeis são fundamentais. Quer saber mais sobre o assunto? Então fique conosco, pois é sobre isso que falaremos nesse post.

Entendendo a importância das Métricas Ágeis

Geralmente quando falamos em métricas temos o intuito de medir para melhorar. Utilizando inputs dos mais variados podemos adequar nosso modo de trabalho durante todo o ciclo de desenvolvimento, e consequentemente otimizar a entrega de valor. E quando consideramos todas as etapas do ciclo de desenvolvimento, colocamos a cereja no bolo, pois métricas são padrões que ajudam a equipe a monitorar e implementar ações para aumentar a produtividade.

Quando analisamos um software baseado em Garantia de Qualidade de Software, comumente olhamos para os aspectos:

Durante décadas aplicando metodologias de desenvolvimento tradicionais como cascata, tínhamos etapas bem definidas até a entrega, e planejávamos as atividades de acordo com cada uma dessas etapas. Qualidade de software sempre foi uma das atividades apartadas do desenvolvimento, sendo esta etapa realizada por uma outra equipe após a finalização do desenvolvimento. O que vemos nessa proposta é o aumento, em muito tempo, da descoberta dos erros e consequentemente a exponenciação dos custos de correção e de impactos para entrega.

Vimos uma grande mudança quando o advento da agilidade conquistou nossa preferência como metodologia de projetos, pois a etapa de testes agora faz parte do desenvolvimento do software, e se fez necessário evoluir a forma de aplicar qualidade para a entrega.

O objetivo sempre foi quantificar os testes, medir a qualidade do software e melhorar todo o desenvolvimento de acordo com as métricas aferidas. Se você já pensou em metrificar a qualidade do seu software rodando ágil você está entre uma minoria de profissionais, e se você utiliza esta estratégia no seu processo de desenvolvimento, você faz parte de um grupo menor ainda.

 

Receba conteúdos exclusivos direto no seu e-mail

O que são métricas e como elas nos auxiliam rodando ágil?

Agora que você já entendeu sua importância, é preciso que entenda exatamente o que são métricas. Como o próprio nome sugere, métricas são padrões de medição, aplicadas em agilidade ajudam a monitorar a produtividade no decorrer do projeto, elas são um componente essencial pois ajudam na avaliação da qualidade do software, na manutenção do desempenho da equipe, além de expor problemas em seus estágios iniciais. Além disso, as métricas ágeis ajudam o time na auto-organização e autogestão garantindo o compromisso com a entrega de valor.

Customizando Métricas Ágeis para aplicação em Garantia de Qualidade de Software

Burndown Chart:

Essa métrica representa a quantidade de tarefas concluídas e quanto trabalho ainda resta durante uma sprint. O eixo-Y é representado por horas, dias ou story points, dependendo da preferência do Time, e o eixo-X representados pelos dias da sprint. A utilização do Burndown para Garantia da Qualidade pode ser feita a partir da inclusão da condição “aprovado nos testes” para a Definição de Pronto (Definition of Done - DoD), assim toda história entregue vai refletir no progresso dos testes.

Velocity Chart:

Já a Velocity Chart representa a quantidade de trabalho entregue frente ao trabalho estimado pelo time, é comumente utilizado para balizar a quantidade de pontos que uma equipe é capaz de entregar por sprint. Medir a velocidade é fundamental, a partir dela podemos criar ações para aumentar a velocidade e a maturidade do time, e quanto maior a velocidade maior é o progresso do time desde o desenvolvimento (em conjunto com a Garantia de Qualidade) até a entrega.

Customizando Métricas da Garantia de Qualidade de Software quando rodamos ágil

Cobertura de Código:

O valor obtido com a análise da cobertura de código nos informa o percentual de código coberto pelos testes unitários. Devemos extrair essa métrica a cada build e monitorar os valores para que a cobertura do código mantenha-se 100%, ou próximo desse valor. Essa métrica também nos fornece uma visão do comprometimento do time com a qualidade do software, e caso não tenhamos uma alta cobertura temos que atuar na mudança para aumentar essa taxa. Um ponto que devemos evidenciar sobre essa métrica, é que ela cobre somente os aspectos do sistema, sendo necessário metrificar a quantidade de requisitos cobertos por testes

Cobertura de Requisitos:

Basicamente possui a mesma aplicação da Cobertura de Código, porém, esta métrica é aplicada aos testes funcionais (caixa preta). Essa métrica nos informa o percentual de requisitos cobertos pelos testes. A extração dessa métrica e monitorar seus valores se faz necessária a cada build para que a cobertura dos requisitos mantenha-se 100%, ou próximo desse valor. O ideal é que tenhamos esses testes automatizados para termos os mesmos benefícios descritos para a Cobertura de Código. Essas duas métricas fornecem uma visão bem realista da qualidade do software que estamos entregando.

Porcentagem de testes automatizados:

Porcentagem de cobertura de código por testes automatizados, nos permite aumento de velocidade na finalização da atividade, na regressão e na confiança, pois descartamos o quesito falha humana. Quanto mais testes são automatizados, mais alta é a cobertura de código, como resultado, maior qualidade do software.

Quality Intelligence:

Inteligência em Qualidade é uma métrica que nos ajuda na identificação das mudanças recentes de código, e baseado nessas mudanças temos a oportunidade para avaliar se os testes desenvolvidos para aquela parte do código ainda estão vigentes. Caso estejam obsoletos podemos remover esses testes do escopo, economizando energia de manutenção e execução de testes sem valor para a entrega. O que por outro lado libera profissionais para implementarem qualidade neste novo pedaço de código entregue.

Escaped Defects:

Essa métrica nos mostra a taxa de defeitos encontrados em produção, a equipe deve estar atenta para tratar os erros o mais rápido possível. Caso haja alta incidência de erros em produção, todo o fluxo de desenvolvimento deve ser revisto a fim de minimizar o envio de erros para produção. Esta métrica nos ajuda a identificar bugs e medir a evolução do processo de qualidade quando liberamos novas versões dos softwares. É fundamental, para evitar reincidência de bugs, que cada bug encontrado seja criado um caso de teste e executado a cada ciclo.

Esta é uma das mais importantes métricas para Garantia da Qualidade de Software, cada erro encontrado em produção causa danos inesperados para a companhia; gera desconforto para o usuário, o software é posto em cheque baseado na desconfiança sobre qualidade, segurança e competência da empresa.

Portanto, como vimos, um dos principais motivos de rodarmos ágil é a possibilidade de realizarmos entregas com mais eficiência e eficácia, manter o foco em constantes entregas de valor com qualidade garantida é um desafio para qualquer time, e a utilização de métricas nos facilita para a obtenção desses objetivos.

Sobre o autor

Rodolpho Dutra

Analista de sistemas apaixonado pelo universo de TI e a forma como a tecnologia é capaz de preencher lacunas melhorando nossas vidas. Agilista e especialista em Qualidade de Software que aproveita cada oportunidade para transformar o atual em obsoleto, mantendo o agora em evolução.

https://www.linkedin.com/in/rodolphodutra/