domingo, 18 de janeiro de 2015

1112,7 = 1112,70?

O sistema de comparação que estamos desenvolvendo cismou de apontar que R$ 1112,70 é diferente de R$ 1112,70.

Isso estava denegrindo a imagem da equipe uma vez que o sistema estava muito bom e aquele erro era muito bobo. Ainda mais porque a tela de exibição dá um grande destaque em vermelho às diferenças encontradas.

Acontece que o especialista no algoritmo de comparações estava de férias e só retornaria em uma semana. Eu acreditava que ele conseguiria resolver aquele erro em uma hora. Então, o prazo previsto para a correção seria uma semana e uma hora. Ruim!

Achei válido desafiar outros membros da equipe a enfrentarem aquele problema. Na pior das hipóteses, eles aprenderiam alguma coisa com o episódio e o especialista resolveria o problema em 1 semana e 1 hora.

Depois de dois dias de trabalho, finalmente conseguimos preparar o ambiente para a depuração do erro. Chegara a hora da verdade.

O meu lado gestor estava superexcitado. Era muito bom ver a equipe desafiada, com sangue nos olhos. Eles realmente estavam trabalhando em equipe, buscando uma solução para o problema. Virou questão de honra!

O meu lado técnico estava igualmente excitado. Era muito bom parar um pouco as atividades gerenciais e estar ali junto com a equipe depurando um erro. Ainda mais um erro matemático. De volta aos velhos tempos.

Analisamos primeiro os dados. Ao percebermos que os dados lidos do banco estavam idênticos e que os valores registrados como inconsistentes eram iguais, só nos restou o código Java. Por algum motivo, o Java não estava entendendo que aqueles valores eram iguais.

Então, descobrimos que as comparações estavam sendo feitas com Strings (textos). O Java estava corretamente afirmando que a String '1112.7' era diferente da String '1112.70'. Bingo!

Daí, foi só alterar a comparação para utilizar valores numéricos ao invés dos valores textuais.

A grande lição gerencial foi investir mais no repasse de conhecimento e na formação de bons substitutos para todos os papéis da equipe.


Até a próxima.

Nenhum comentário:

Postar um comentário