Por que é tão difícil medir produtividade em software ?

Por que é tão difícil medir produtividade em software ?

Em algum momento alguém vai te perguntar: "o time está produzindo bem?". Parece uma pergunta simples, até você tentar responder com um número. Quantidade de commits? Cards fechados no Jira? Story points entregues na sprint? Cada um desses números conta uma parte da história e esconde outra. E tem um agravante: muito do que importa no nosso trabalho não dá para pegar na mão, e algumas coisas nem sequer dão o mesmo resultado duas vezes.

Para entender por que isso é tão difícil, fui atrás de estudos que mediram o problema de verdade: uma pesquisa da Microsoft com devs e gestores, um estudo da University College London com mais de 37 mil histórias de usuário, o relatório DORA do Google sobre IA nos times, experimentos controlados da METR e do próprio Google, e trabalhos brasileiros apresentados no SBES e no SBQS, além de um estudo da Zup. Abaixo, o que cada um mostra e o que dá para tirar disso no dia a dia.

A gente mede o que dá para contar

Um engenheiro civil consegue medir quanto peso uma viga aguenta. A gente não consegue medir quanto um design de API vai facilitar a vida do próximo dev. O nosso produto é conhecimento virando código, e conhecimento não tem balança.

Por isso quase toda métrica de software é um proxy: uma medida indireta que a gente usa no lugar daquilo que realmente quer saber. Ninguém liga, de verdade, para quantos commits o time fez. O que interessa é se o time entrega coisa útil, com qualidade, sem se matar no processo. O commit só entra na conversa porque é fácil de contar.

Enquanto o proxy e o objetivo andam juntos, tudo certo. O problema é quando eles se separam e ninguém percebe.

Quando o número vira meta

Existe um nome para isso: Lei de Goodhart. A versão popular diz que, quando uma medida vira meta, ela deixa de ser uma boa medida. O exemplo clássico é cobrar linhas de código por dia. O número sobe, o código incha e ninguém mais reaproveita nada, porque reaproveitar diminui a contagem.

Um artigo de 2018 publicado no arXiv mostra que esse efeito aparece de jeitos diferentes. Traduzindo para a nossa realidade:

  • O ruído vem junto. Toda métrica tem uma parte que não tem nada a ver com o que você quer medir. Quando você otimiza o número, otimiza esse ruído também. Segundo os autores, esse efeito não tem como evitar.
  • Funciona até não funcionar. Subir cobertura de testes de 60% para 80% costuma ajudar. Forçar de 95% para 100% muitas vezes gera teste escrito só para passar pela linha.
  • Correlação não é causa. Times bons fazem muito deploy. Isso não quer dizer que forçar mais deploys deixe o time bom.
  • As pessoas se adaptam. Se o bônus depende de cards fechados, o card grande vira cinco cards pequenos.

Resumindo: não existe métrica à prova de gambiarra. Existe métrica usada por quem sabe onde ela falha.

Cada um tem sua definição de produtivo

Antes de medir produtividade, alguém precisa dizer o que é produtividade. E aí a coisa já começa subjetiva.

Uma pesquisa feita dentro da Microsoft perguntou isso a devs e gestores da mesma empresa. A maioria dos devs respondeu falando de atividade, ou seja, o que fizeram no dia. A maioria dos gestores falou de resultado e qualidade. Mesma empresa, mesma palavra, significados diferentes.

Aqui no Brasil, um estudo apresentado no SBQS 2025 conversou com desenvolvedores de um grande instituto de ciência e tecnologia e chegou a cinco fatores que eles associam a ser produtivo: qualidade, expectativas, prazos, progresso e eficiência. E cada fator muda de peso dependendo se a pessoa está codando, revisando PR ou escrevendo documentação.

Foi justamente para lidar com isso que surgiu o SPACE, um modelo que olha produtividade por cinco lados: satisfação, desempenho, atividade, colaboração e fluxo de trabalho. A ideia principal é simples: nenhum número sozinho dá conta. Os autores ainda recomendam olhar os dados por time, nunca por pessoa, e aceitar que algumas métricas puxem para lados opostos. É de propósito, uma segura a outra.

O que as metodologias ágeis mudam nessa percepção

Scrum e Kanban trouxeram uma coisa boa: o trabalho ficou visível. Tem quadro, tem burndown, tem sprint review a cada duas semanas. Em vez de descobrir no fim do projeto que tudo atrasou, o time vê o problema cedo.

O efeito colateral é que a sensação de produtividade passou a depender muito do que aparece nesses artefatos. Um quadro com tudo em "Done" na sexta-feira parece uma sprint boa, mesmo que metade das entregas volte como bug na semana seguinte. Uma sprint em que o time passou dias investigando um problema de performance parece ruim, porque quase nenhum card andou. O ritual vira o termômetro, e o termômetro mede movimento, não valor.

A velocity é o caso mais claro. Ela nasceu como ferramenta de planejamento interno do time: "costumamos entregar uns 30 pontos, então vamos puxar uns 30". Quando sobe para o relatório da gestão e alguém pergunta por que caiu de 32 para 28, ela vira meta. E aí entra a Lei de Goodhart: os pontos inflam, as tarefas são quebradas para fechar mais cards e o número melhora sem o time entregar mais.

Um estudo de 2024 em uma empresa alemã mostra como isso aparece na prática. Os desenvolvedores consideravam os story points irrelevantes em alguns times, relataram dificuldade com burndown charts e com a própria estimativa, e os product owners reclamaram de falta de transparência e de precisão nas estimativas. A empresa media, mas ninguém confiava muito no que estava medindo.

No Brasil, uma pesquisa apresentada no SBQS 2024 ouviu 145 profissionais que trabalham com agilidade em larga escala, ou seja, vários times trabalhando no mesmo produto. A conclusão dos autores é que não existe pacote pronto: as métricas precisam ser escolhidas para a realidade e o objetivo de cada organização. Copiar o dashboard de outra empresa não resolve.

Story point é chute calibrado

Quem já participou de planning poker sabe: o 5 de um dev é o 8 de outro, e depois de dez minutos de discussão todo mundo fecha num 5 meio a contragosto. Story point parece objetivo porque é número. Mas é opinião do time convertida em escala.

Um estudo da University College London analisou mais de 37 mil histórias de usuário de 37 projetos open source e comparou os pontos com o tempo real de desenvolvimento. A estimativa errou em 78% dos casos e nem era consistente ao longo do mesmo projeto.

E jogar IA no problema não resolveu tanto. Os mesmos pesquisadores testaram de novo um modelo de deep learning que era considerado o melhor para estimar story points. Em pelo menos metade dos projetos, ele não foi significativamente melhor do que simplesmente chutar a mediana dos pontos.

Isso não quer dizer que estimar é perda de tempo. A conversa do planning ajuda o time a se entender sobre a tarefa. Mas velocity em story points mede, em boa parte, a régua do próprio time. Comparar a velocity de dois times é comparar duas réguas diferentes.

O mesmo código, resultados diferentes

Mesmo os números que parecem mais "duros" têm ruído. Um sistema determinista é aquele que sempre devolve a mesma saída para a mesma entrada. Muita coisa que a gente mede não funciona assim.

O exemplo que todo mundo já viu é o teste flaky: aquele teste que passa, falha, passa de novo, sem ninguém mexer no código. Um estudo com projetos JavaScript mostrou que a maioria desses testes acaba corrigida, mas uma parte é simplesmente pulada, isolada ou apagada. E outra pesquisa de 2024 lembra que muita gente mantém o teste flaky na suíte porque, de vez em quando, ele pega um bug de verdade. Resultado: aquela taxa de sucesso do CI no dashboard já vem com ruído embutido.

Com IA no fluxo de trabalho, isso ficou bem maior. Pesquisadores da University College London pediram ao ChatGPT o mesmo código várias vezes para 829 problemas. Dependendo do conjunto de testes, entre 47% e 76% das tarefas não tiveram duas respostas com o mesmo resultado nos testes. E colocar a temperatura em zero, que muita gente acha que resolve, diminuiu a variação mas não acabou com ela.

Moral da história: rodar um prompt uma vez e anotar "funcionou" não mede a ferramenta. Mede a sorte daquela execução.

IA no time: o dev acelera, o sistema nem sempre

Assistentes de código entraram no dia a dia de quase todo time, e com eles veio a pergunta: quanto mais rápido a gente ficou? A resposta honesta é que depende muito de onde você mede.

No nível da pessoa e da tarefa, há ganho em vários estudos. Um experimento controlado do Google com 96 engenheiros mostrou que a IA reduziu em cerca de 21% o tempo de uma tarefa complexa, com a ressalva dos próprios autores de que a margem de erro era grande e o resultado não se aplica automaticamente a outros contextos. Aqui no Brasil, a Zup testou o StackSpot AI, assistente que usa o contexto da própria empresa, com 62 desenvolvedores. O pessoal relatou economia de tempo e acesso mais fácil à documentação e às APIs internas, mas também respostas inconsistentes e dificuldade com código mais complexo.

No nível do time e da entrega, o quadro muda. O relatório DORA 2024, que ouviu milhares de profissionais, encontrou um paradoxo. Cerca de 75% das pessoas disseram que a IA aumentou a própria produtividade. Mas, quando a adoção de IA sobe 25%, o relatório estima queda de 1,5% na vazão de entregas e de 7,2% na estabilidade, além de 2,6% menos tempo em trabalho que a pessoa considera valioso. Uma das explicações levantadas é que, com código ficando mais barato de gerar, as mudanças ficam maiores, e mudança grande é mais arriscada de colocar em produção.

Isso bagunça a análise de desempenho de três jeitos:

  • Métricas de volume perdem sentido. Se uma IA escreve 300 linhas em segundos, contar linhas, commits ou PRs mede quanto a ferramenta digitou, não quanto o time resolveu.
  • O gargalo muda de lugar. Escrever código raramente era a parte mais lenta. Com IA, a fila cresce na revisão, nos testes e no deploy. Quem só olha a velocidade de codar não vê isso.
  • Avaliar pessoas fica mais difícil. Dois devs com o mesmo número de entregas podem ter usado a IA de formas muito diferentes, um revisando tudo com cuidado e outro aceitando sugestão sem ler. O número é igual, o risco não.

A lição dos estudos é que a pergunta "a IA deixou o time mais produtivo?" só tem resposta se você medir o sistema inteiro: do card aberto ao código estável em produção, não só o tempo que o dev levou para escrever.

Achar que rendeu não é medir

Quando o dado objetivo é difícil, a saída natural é perguntar para as pessoas. Pesquisa de satisfação é útil, e o próprio SPACE inclui isso. O cuidado é não confundir sensação com resultado.

No começo da pandemia, pesquisadores de várias universidades brasileiras ouviram 413 desenvolvedores do país sobre o trabalho remoto. A produtividade percebida aumentou, principalmente porque havia menos interrupções durante o dia. É um dado valioso sobre como as pessoas se sentiam, e os próprios autores falam em produtividade percebida. Mas é diferente de medir entrega.

O caso mais famoso dessa diferença é o estudo da METR, de 2025. Eles acompanharam 16 devs experientes em 246 tarefas reais de projetos open source grandes, que eles já conheciam bem. Um sorteio definia se cada tarefa podia ou não usar IA. Com IA, as tarefas levaram 19% mais tempo, o contrário do que os próprios participantes e especialistas esperavam.

Os autores deixam claro que é uma foto de um cenário específico (código maduro, gente que conhece o repositório de cor, ferramentas do início de 2025). Não é uma regra, e o estudo do Google mostrou ganho em outro contexto. Mas a lição vale para qualquer time: o que a gente sente sobre a própria produtividade é um dado sobre o sentimento, não sobre a produtividade.

Então, como medir?

Nada disso é motivo para parar de medir. Sem número nenhum, a decisão fica com quem fala mais alto na reunião. A ideia é medir sabendo o que cada número consegue e não consegue dizer. Algumas dicas práticas:

  • Use métricas que se vigiam. Frequência de deploy junto com taxa de falha em produção. Quantidade de PRs junto com tempo de revisão. Uma métrica sozinha é fácil de inflar. Duas puxando para lados opostos, nem tanto.
  • Meça o time, não a pessoa. Métrica individual vira meta individual, e aí a gambiarra aparece rápido.
  • Deixe a velocity com o time. Ela serve para o time planejar a próxima sprint. Levada para o relatório da gestão, vira meta e perde a utilidade.
  • Meça o fluxo inteiro, principalmente com IA. Tempo do card aberto até a produção, tamanho das mudanças e taxa de falha dizem mais do que a velocidade de escrever código.
  • Cruze dado com percepção. Olhe o dashboard e pergunte ao time. Quando os dois discordam, geralmente é aí que está a informação mais interessante.
  • Rode mais de uma vez. Para tudo que não é determinista (testes, LLMs, benchmarks), repita a medição e olhe a variação, não um número só.
  • Defina o certo antes. Se o resultado é subjetivo, como a qualidade da resposta de um sistema com IA, monte um gabarito à mão antes de testar. Assim "ficou bom" vira "acertou 8 de 10".
  • Revise as métricas de tempos em tempos. Toda métrica começa como uma pergunta. Se virou meta e ninguém lembra mais qual era a pergunta, é hora de trocar.

Medir software sempre vai ter uma dose de julgamento humano. O time que mede bem não é o que eliminou a subjetividade. É o que sabe onde ela entra e deixa isso claro para todo mundo.

Referências

  • ALSHAMMARI, Abdulrahman et al. 230,439 Test Failures Later: An Empirical Evaluation of Flaky Failure Classifiers. arXiv, 2024. Disponível em: https://arxiv.org/abs/2401.15788. Acesso em: 1 out. 2026.
  • BECKER, Joel et al. Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity. arXiv, 2025. Disponível em: https://arxiv.org/abs/2507.09089. Acesso em: 1 out. 2026.
  • COELHO, Murilo; REINBOLD, Isabelle; SANCHO, Lizie; PAIXAO, Matheus; ARAÚJO, Allysson Allex; FREIRE, Sávio. Software Developers' Perceptions of Productivity: An Industry-focused Study. Simpósio Brasileiro de Qualidade de Software (SBQS), SBC OpenLib, 2025. Disponível em: https://sol.sbc.org.br/index.php/sbqs/article/view/38991. Acesso em: 1 out. 2026.
  • DORA. Accelerate State of DevOps Report 2024: Infographic. Google Cloud, 2024. Disponível em: https://dora.dev/research/2024/2024-DORA-Report-Infographic.pdf. Acesso em: 1 out. 2026.
  • FORSGREN, Nicole et al. The SPACE of Developer Productivity. ACM Queue, 2021. Disponível em: https://queue.acm.org/detail.cfm?id=3454124. Acesso em: 1 out. 2026.
  • HASHEMI, Negar; TAHIR, Amjed; RASHEED, Shawn. An Empirical Study of Flaky Tests in JavaScript. arXiv, 2022. Disponível em: https://arxiv.org/abs/2207.01047. Acesso em: 1 out. 2026.
  • MANHEIM, David; GARRABRANT, Scott. Categorizing Variants of Goodhart's Law. arXiv, 2018. Disponível em: https://arxiv.org/abs/1803.04585. Acesso em: 1 out. 2026.
  • MENEZES, Renato; MARINHO, Marcelo; SAMPAIO, Suzana. Metrics for Large-Scale Agile Development: A Survey of the Brazilian Software Industry. Simpósio Brasileiro de Qualidade de Software (SBQS), SBC OpenLib, 2024. Disponível em: https://sol.sbc.org.br/index.php/sbqs/article/view/32949. Acesso em: 1 out. 2026.
  • OLIVEIRA, Edson; LEAL, Gislaine; VALENTE, Marco Túlio; MORANDINI, Marcelo; PRIKLADNICKI, Rafael; POMPERMAIER, Leandro; CHANIN, Rafael; CALDEIRA, Clara; MACHADO, Letícia; SOUZA, Cleidson de. Surveying the Impacts of COVID-19 on the Perceived Productivity of Brazilian Software Developers. Simpósio Brasileiro de Engenharia de Software (SBES), SBC OpenLib, 2020. Disponível em: https://sol.sbc.org.br/index.php/sbes/article/view/17054. Acesso em: 1 out. 2026.
  • OUYANG, Shuyin et al. An Empirical Study of the Non-determinism of ChatGPT in Code Generation. arXiv, 2023. Disponível em: https://arxiv.org/abs/2308.02828. Acesso em: 1 out. 2026.
  • PARADIS, Elise et al. How much does AI impact development speed? An enterprise-based randomized controlled trial. arXiv, 2024. Disponível em: https://arxiv.org/abs/2410.12944. Acesso em: 1 out. 2026.
  • PHAM, Kevin Phong; NEUMANN, Michael. How to Measure Performance in Agile Software Development? A Mixed-Method Study. arXiv, 2024. Disponível em: https://arxiv.org/abs/2407.06357. Acesso em: 1 out. 2026.
  • PINTO, Gustavo; STEINMACHER, Igor; SOUZA, Cleidson de; SOUZA, Alberto de; ROCHA, Thayssa; MONTEIRO, Edward. Developer Experiences with a Contextualized AI Coding Assistant: Usability, Expectations, and Outcomes. arXiv, 2023. Disponível em: https://arxiv.org/abs/2311.18452. Acesso em: 1 out. 2026.
  • STOREY, Margaret-Anne; HOUCK, Brian; ZIMMERMANN, Thomas. How Developers and Managers Define and Trade Productivity for Quality. arXiv, 2021. Disponível em: https://arxiv.org/abs/2111.04302. Acesso em: 1 out. 2026.
  • TAWOSI, Vali; MOUSSA, Rebecca; SARRO, Federica. Agile Effort Estimation: Have We Solved the Problem Yet? Insights From A Replication Study. arXiv, 2022. Disponível em: https://arxiv.org/abs/2201.05401. Acesso em: 1 out. 2026.
  • TAWOSI, Vali; MOUSSA, Rebecca; SARRO, Federica. On the Relationship Between Story Points and Development Effort in Agile Open-Source Software. UCL Discovery, 2022. Disponível em: https://discovery-pp.ucl.ac.uk/id/eprint/10151116. Acesso em: 1 out. 2026.

Comentários (0)

Nenhum comentário ainda. Seja o primeiro.

Continue lendo

Entendendo a Função list() no PHP

Entendendo a Função list() no PHP

A função list() do PHP é uma forma prática de atribuir múltiplos valores de um array a variáveis individuais. Neste artigo, vamos explorar como essa função funciona, seus usos mais comuns e alternativas modernas…

Iniciantes, Intermediários, php
Collections no PHP e seu uso no Laravel

Collections no PHP e seu uso no Laravel

Ao desenvolver aplicações modernas com PHP, uma das tarefas mais comuns é manipular arrays — filtrando, transformando ou agrupando dados. Embora o PHP nativamente ofereça funções poderosas para isso, como array_map,…

Laravel, php, Tutorial