Como aplicar métricas ágeis no desenvolvimento de software?

Como tomar decisões acertadas em meu projeto? Como sanar a ansiedade dos stakeholders pelo progresso, status e estimativas de entrega de uma solução digital? Este post irá te mostrar como as métricas de projeto, as estratégias de monitoramento e a base de dados são a resposta para essas e outras perguntas.
Germano Lodi | 19 de agosto de 2020

O desenvolvimento de uma solução digital exige um aperfeiçoamento contínuo relacionado a cada um dos processos. Desde a concepção e levantamento de requisitos, até a construção propriamente dita e monitoramento da solução já implementada, identifica-se o sucesso de um projeto pela saúde e estabilidade do progresso da elaboração do mesmo. Nesse contexto, métricas de projeto surgem como um conjunto de indicadores responsáveis por mostrar aos interessados as informações necessárias para tomadas de decisões, auxiliando na identificação de pontos de atenção.

O objetivo deste post é levantar a importância dessa métricas, além de abordar as principais metodologias utilizadas pelo mercado. Assim, abriremos as portas a quem busca sanar a ânsia de clientes, investidores e demais interessados pelo progresso, status e estimativas de entrega de seus projetos digitais.

Os desafios da engenharia de software

O ambiente de construção de um produto de software pode ser imprevisível.

Demandas pontuais tornam-se prioridades, “incêndios” devem ser resolvidos e, mesmo assim, o progresso da solução digital deve continuar em um ritmo saudável e consistente. A desorganização e a falta de coordenação tornam esse meio cada vez mais caótico e o desperdício de recursos é inerente à ausência do gerenciamento de todo esse processo.

Controlar a saúde do desenvolvimento de uma solução digital e tomar decisões cada vez mais acertadas são alguns dos maiores desafios no meio de engenharia de software, mesmo nas empresas mais maduras e tradicionais. É um trabalho de bastante aprendizado e análise, impossível de ser feito sem transparência e alinhamento de objetivos.

Qual é a importância de medir o processo de construção de um produto?

Citando um dos principais especialistas em consultoria de qualidade, H. James Harrington:

“Se você não consegue medir algo, você não consegue entendê-lo. Se você não consegue entendê-lo, você não consegue controlá-lo. Se você não consegue controlá-lo, você não consegue melhorá-lo”.

Mesmo com a medição de processos como atividade chave para melhorar continuamente a qualidade dos produtos digitais, identifica-se em diversas empresas, de diversos portes e origens, uma pobreza na aquisição, monitoramento e uso inteligente de ferramentas e cultura de medição da progressão de projetos.

Como consequência a essa ausência de controle, gera-se um alto grau de imprevisibilidade no progresso do projeto e é perdida a capacidade de fazer um gerenciamento de riscos apurado.

Além disso, a ansiedade por parte dos interessados no projeto, sejam esses os gestores ou os clientes, para que o andamento da realização das entregas aconteça conforme planejado não é sanada: sem medições, torna-se quase impossível esclarecer se os recursos estão sendo utilizados da maneira mais eficiente e se, de fato, os prazos serão alcançados.

Ao mesmo tempo que é fundamental comunicar o resultado do dinheiro que está sendo investido, os hábitos de medições de desempenho e progressão do projeto também auxiliam nas tomadas de decisões feitas pelas lideranças técnicas. Mais do que isso, permitem inclusive dar margens de esforço e ritmo de entrega para quem efetivamente constrói a solução.

Como e o que medir?

Se por um lado concluímos que é importantíssimo saber, com transparência, o que está acontecendo em nosso projeto, surgem dúvidas do que medir e qual seria o melhor meio de fazê-lo.

Se estamos buscando mostrar aos stakeholders o andamento do projeto e, ao mesmo tempo termos o controle da performance de entrega da equipe, três pontos principais devem ser monitorados:

  • Ritmo de entrega de atividades;

  • Qualidade das entregas;

  • Desempenho dos colaboradores.

Esses indicadores só são obtidos quando rastreamos a quantidade, o tempo despendido, a frequência e a qualidade das atividades entregues pela equipe. Para isso, precisamos gerar estes dados, acompanhá-los e analisá-los.

Normalmente, isso é feito ao computar diariamente o progresso e estado de cada uma das atividades que estão sendo desenvolvidas.

Esse acompanhamento é facilitado por algumas ferramentas, como por exemplo o Kanban. A seguir, um exemplo básico de Kanban, que permite que sejam rastreados os estados das atividades na construção de um produto.

Blog Post_19.08.2020_Métricas ágeis.png

O que fazer com o que medi?

Ter uma receita de bolo para todos os projetos de uma empresa não é o caminho correto para adotar hábitos de medição. O que faz sentido para alguns projetos, pode não importar em outros, uma vez que cada projeto possui suas particularidades.

É papel dos líderes do projeto mapear com antecedência o que deve ser gerado quanto a recursos, materiais e dados que façam sentido para o acompanhamento do progresso do projeto.

Entretanto, existem alguns padrões de mercado que ditam quais são os indicadores, relatórios e gráficos mais relevantes. Os principais objetos de entrega são:

  • Gráfico CFD (cumulative flow diagram), responsável por rastrear a saúde do projeto;

  • Gráfico de leadtime, responsável por identificar gargalos no processo de construção;

  • Gráfico de throughput, responsável por analisar o ritmo de entrega de funcionalidades;

  • Análise Previsto X Realizado, responsável por identificar o ritmo de consumo de horas do projeto;

  • Relatório de Monte Carlo, responsável por estimar entregas de funcionalidades, milestones ou o projeto como um todo.

A seguir, você pode observar um compilado dessas análises comentadas, que serão abordadas no detalhe em uma postagem futura.

Blog Post_19.08.2020_Métricas ágeis_2.png

Primeiros passos

Caso você tenha decidido começar a implementar rotinas de geração de relatórios de métricas do projeto, pode começar mapeando aquilo que deve ser medido. É essencial que sejam alinhadas às expectativas destes relatórios, para saber o que faz sentido ele apresentar e a frequência de geração.

Com as métricas mapeadas, o próximo passo é incluir na cultura da equipe de desenvolvimento o hábito de gerar esses dados, por exemplo, através do uso correto de uma ferramenta de Kanban.

A construção de um relatório de métricas, principalmente no começo, costuma ser um processo evolutivo. Através do retorno dos envolvidos será possível chegar a um documento conciso que permite que decisões cada vez mais seguras e acertadas sejam tomadas.

No próximo artigo desta série de métricas ágeis serão apresentados em detalhes os gráficos e ferramentas mais utilizadas nesses planos de monitoramento. Além disso, abordarem também quais são as formas mais usuais e interessante de apresentar essas métricas ágeis aos stakeholders.

mkt_blog_banner_discovery_3.png

Germano Lodi
Software Engineer | Gerenciamento de projetos, qualidade e estatística. Divido o coração entre programar e gerenciar. Enxadrista amador.