A ineficiência do uso de timesheets…
Bom… muito tempo sem postar mostra o quando minha vida esteve ocupada nos últimos meses. Nos próximos posts falarei um pouco sobre minhas andanças sobre a America Latina, mas antes disso, quero falar sobre algo que me incomoda no dia dia (e você também) que é o preenchimento das atividades realizadas no dia, a.k.a. Timesheet.
Algum tempo suspeito (empíricamente) que o uso de timesheet é totalmente inadequado para o gerenciamento do desenvolvimento de software, principalmente no que diz respeito a quantidade de horas trabalhadas.
Pois:
- O preenchimento de timesheet é chato;
- O preenchimento de timesheet toma tempo;
- Desenvolvedores difícilmente preenchem o timesheet diariamente;
- Timesheets preenchidos muito tempo depois são mentirosos;
- Entradas do timesheet são maquiadas;
Imaginando que estaria sozinho neste pensamento (Mentira… todo mundo odeia timesheet) me deparo com o blog de Jeff Sutherland – um dos pais do SCRUM – em que ele mostra a seguinte imagem:

Correlação entre o tempo de programador e a qualidade do software.
Ele diz que:
“Atualmente time sheets são tão ruins quanto burros:
- Desmotivam os desenvolvedores
- 10-15% de perda de produtividade (No mínimo)
- Desenvolvedores simulam o tempo preenchido em vez de preencher corretamente
- Relatórios com dados errados são usados para a tomada de decisão
- Clientes são enganados
- Não tem nada haver com a qualidade do código
- O foco da organização é em dados falsos e não na real produção”
Ainda mais:
- Não existe correlação entre o tempo do desenvolvedor e a produção do software
- Não existe correlação entre o tempo gasto e a qualidade do código
- Não existe relação entre “pessoas qualificadas” e a producão de código
Ou seja… time sheet atualmente não serve pra nada.
Por fim, termino este post com está frase de Jeff:
“Trust me, you need to dump those lame time sheets and get focused on real software production before an Agile competitor puts you out of business!”
Daniel Quadros disse,
Outubro 17, 2007 às 11:12 am
Eu acho que um título mais apropriado seria “O Uso Ineficiente de Timesheets”. Timesheets, como tudo nesta vida, tem as suas limitações. E, como todo dado e estatística, pode ser interpretado errado. É o erro mais comum é querer achar fatos que não existem. O outro é aplicar conclusões no contexto errado.
Timesheets fornecem também informações úteis. Por exemplo, existe sim correlação entre o tempo gasto e o trabalho realizado, para um determinado indivíduo fazendo tarefas parecidas em contextos parecidos. É um dos motivos do Joel Spolsky procurar contratar somente bons programadores. É claro que é besteira procurar uma precisão alta, mas o histórico ajuda a estimar o tempo necessário um determinado indivíduo para executar uma determinada tarefa. Timesheets podem também ajudar a melhorar o processo, detectando gastos exagerados de tempos em atividades que não colaboram diretamente para “real software production”.
Dependendo do tipo de software (vide o artigo Five Worlds do Joel), horas de desenvolvimento são o principal fator de custo e definem diretamente o preço.
Por tudo isto, eu não acho que seja o caso de simplesmente jogar fora os timesheets. Acho que o correto é avaliar corretamente que informações eles estão trazendo, o quanto estão custando e se é possível alterar a forma de registro e (principalmente) o uso das informações para obter um resultado positivo.