Vou dizer sem rodeios: abstenha-se de tentar medir a produtividade de programadores individualmente. Isto é o que deve fazer em vez disso.

Por Nick Hodges
Há cerca de dez anos escrevi um post no blogue intitulado “Podemos medir a Produtividade do Programador?”. Nele discuti as numerosas tentativas objetivas de medir a produtividade do programador (linhas de código, pontos de função, etc.) e sugeri a inclusão de algumas métricas subjetivas. A minha conclusão na altura: contrariamente ao desejo dos gestores amantes dos KPI, na altura não via nenhuma forma praticável de medir a produtividade dos promotores individuais.
Menciono isto porque as coisas mudaram significativamente nos últimos anos. Na altura da redação, dois sistemas de controlo de código fonte, Git e Mercurial, estavam a lutar pelo domínio nos departamentos de desenvolvimento. Como gestor de software, na altura, fui responsável pela migração da fonte visual Safe da Microsoft para Mercurial, que escolhemos por causa da sua facilidade de utilização do Windows.
Como todos sabemos, apostámos no cavalo errado: Git é agora considerado o padrão de facto para o controlo de versões. Como resultado, formou-se uma indústria separada em torno dos repositórios Git. A compra pela Microsoft do GitHub por 7,5 mil milhões de dólares, por exemplo, mostra o seu valor. O desenvolvimento também levou muitas empresas a oferecerem agora métricas para o seu código Git – e também a sugerirem que podem medir a produtividade dos programadores de software.
Traga o sistema métrico
Se partirmos do princípio de que é de facto possível medir a produtividade do programador (da qual não estou inteiramente convencido), temos de nos perguntar se esta é uma boa ideia. É provável que a gestão seja bem-vinda: os executivos querem saber quais os programadores com melhor desempenho e querem métricas que os ajudem a avaliar o desempenho. É também provável que os RH estejam interessados em documentar questões de desempenho – e os CEO querem saber especialmente se o orçamento que estão a atribuir está a ser utilizado eficazmente.
Mesmo que se utilizem ferramentas inovadoras para medir a produtividade individual do programador – as métricas que são aplicadas muitas vezes não passam de uma piada de mau gosto e, sobretudo, facilmente manipuladas – como o número de linhas de código escritas. Se medir os programadores por tais métricas, pode assumir que todos os membros da equipa irão melhorar no papel. No entanto, paga-se um preço elevado por isto sob a forma de produtividade da equipa: quando os criadores são medidos “uns contra os outros”, isso cria uma situação competitiva – que é exacerbada quando se trata de salário ou promoções. O espírito de equipa e o trabalho de equipa são assim empurrados para longe.
Como medir corretamente
O sucesso no desenvolvimento de software é, em última análise, um esforço de equipa e não baseado em desenvolvimentos individuais: uma equipa de desenvolvimento discute a conceção e implementação de um determinado projeto antes de o código ser escrito. Quando os programadores individuais escrevem o código, fazem-no frequentemente com a ajuda de colegas de equipa que respondem a perguntas e fornecem informações. Todos os membros da equipa analisam e aprovam o trabalho durante as revisões de código – trabalhando em conjunto para fazerem avançar as coisas.
É por isso que se deve abster de medir a produtividade dos criadores individuais e, em vez disso, concentrar-se na equipa como um todo. Afinal de contas, é provavelmente também do interesse da direção que os programadores trabalhem em conjunto como uma equipa e para um objetivo comum. (Nota do editor: Especialmente porque toda a questão – ao contrário talvez do resto do mundo – já é diferente de um ponto de vista puramente jurídico na Alemanha, desde que exista um conselho na empresa – neste país existem direitos e obrigações de codeterminação claramente definidos ao abrigo da Lei de Constituição da Empresa sobre o tema do controlo e supervisão do desempenho dos trabalhadores).
Ao mesmo tempo, as equipas de desenvolvimento estão muito conscientes de que aumentam o seu sucesso quando melhoram a métrica da sua equipa. Quando os benefícios se tornam visíveis, a motivação para continuar a concentrar-se nas tarefas e métricas corretas aumenta ainda mais. Afinal de contas, as equipas querem melhorar a sua produtividade e alcançar bons resultados – medir as métricas relacionadas com a equipa ajuda a fazê-lo.
Há dez anos, quando perguntei se devíamos ou podíamos medir a produtividade dos programadores, fiz a pergunta errada. Um único programador é apenas tão forte como a sua equipa.