sábado, 17 de dezembro de 2011

Eliminar a dívida técnica é uma obrigação, não uma opção


Durante a palestra do Klaus no Agile Tour 2011 em Maringá/PR, houve uma pergunta sobre "O que fazer quando o 'chefe' não permite que você 'gaste' um tempo do sprint para fazer a limpeza do código?" Discutiu-se um pouco sobre o assunto no evento, mas o próprio Klaus acabou reconhecendo no final que a conclusão foi uma "não-resposta".

Minha primeira reação à pergunta foi direta: minta. Ainda bem que não faço as coisas por impulso. Mentir quebraria um dos meus princípios fundamentais que é o da "verdade, doa a quem doer" e também o princípio prático do "mentir dá muito trabalho: dizer a verdade é infinitamente mais fácil". Desnecessário dizer que já angariei muita antipatia por causa destas atitudes, porém ninguém poderá jamais me acusar de ser falso.

Fazer "limpeza do código", também conhecido como eliminar o débito técnico a dívida técnica não é uma opção. É uma obrigação de todo profissional. Não acredito que o "chefe" deve permitir que você faça ou não. Programadores devem faze-lo, doa a quem doer. Lembram do juramento de Hipócrates? "Não fazer o mal". Um médico não permitiria que um paciente tomasse uma dose de remédio que pudesse mata-lo. Programadores não permitem que a dívida técnica aumente para não matar o software.

Se você é um programador, você (e não o seu "chefe") sabe o que é o melhor para o código. Use esse poder.

Se o seu "chefe" é adepto do micro-gerenciamento, provavelmente ele deve ficar olhando o gráfico de burn-down ou calculando a velocidade do sprint para medir a "produtividade" da equipe. O erro fundamental aqui trata-se da visibilidade dos números. Estimativas, velocidade e burn-down são informações da equipe e para a equipe. O "chefe" não deve ficar sabendo destes números. Mas se o seu "chefe" insistir em ficar acompanhando isso e você precisa eliminar o débito técnico, há uma solução simples. No próximo planning poker, dobre o número das cartas. Em cada tarefa, coloque o adicional de 100% para realizar a limpeza necessária. Você não estará mentindo, a velocidade não vai diminuir, o gráfico de burn-down vai continuar bonitinho, o seu "chefe" vai continuar indiferente, e o mais importante, você ficará feliz e satisfeito e o seu código, limpo.

2 comentários:

  1. Realmente é difícil passar um tempo fazendo a ''limpeza de código'' , visto que meu gerente fica controlando os minutos gastos e a quantidade de atividades ...infelizmente tive que enganar, ""gastando"" tempo com a limpeza, e colocando o tempo em outras atividades...

    ResponderExcluir
  2. Oi William,

    Controlar os minutos é típico de processo de produção de fábrica chinesa. Mais uma prova de que ninguém confia no trabalho de programadores. Cabe ao lado mais inteligente quebrar este círculo vicioso: nós!

    E quando chegar o momento certo, você tem um poder que os gerentes não tem: pedir demissão e trabalhar em outro lugar.

    ResponderExcluir