Meus Dados Já Mentiam Antes de Eu Escrever uma Linha de Lógica
Por muito tempo acreditei que meus problemas viviam no meu código. Quando os resultados saíam errados, eu saía à caça pela minha lógica, pelos meus modelos, pelas partes engenhosas das quais eu me orgulhava. O verdadeiro culpado quase sempre estava uma camada abaixo de tudo isso, quieto e nunca examinado: os próprios dados. Pareciam limpos. Não eram. E tudo o que construí sobre eles herdou fielmente a mentira.
Esse é o tipo mais entediante de falha que existe, e é justamente por isso que é tão perigoso. Ninguém quer gastar seu tempo auditando fileiras de números. Então ninguém audita, e a podridão fica ali no fundo, sustentando tudo.
O mito dos dados limpos
Dados de mercado brutos parecem tranquilizadoramente arrumados. Fileiras organizadas, timestamps ordenados, números de aparência sensata marchando em sequência. Essa arrumação é um disfarce. Dados do mundo real, coletados de sistemas reais que de vez em quando quebram, estão crivados de pequenas corrupções que não se anunciam: lacunas onde momentos simplesmente faltam, entradas duplicadas, timestamps que derivam ou se desalinham, valores que congelam e se repetem durante uma queda, números impossíveis ocasionais, trechos inteiros sutilmente deslocados do lugar.
Nada disso vem com uma etiqueta de aviso. Parece exatamente igual aos dados bons, porque está sentado nas mesmas fileiras arrumadas. O formato é honesto mesmo quando o conteúdo não é, e o formato é tudo o que você vê à primeira vista.
Lixo entra, lixo confiante sai
O que você precisa internalizar é que o sistema não sabe que os dados estão errados. Ele não tem como saber. Ele pega o que quer que você lhe entregue e processa a corrupção com exatamente a mesma diligência que aplica à verdade, e então produz um resultado limpo, confiante e de aparência profissional construído sobre a podridão.
A armadilha inteira está aí. A saída parece estar bem. A corrupção não se propaga como erros óbvios e estridentes que apontam para o problema. Ela se propaga como respostas erradas plausíveis — resultados que são inteiramente acreditáveis, que passam no seu teste de intuição, sobre os quais você alegremente constrói a próxima coisa. Quando o erro vem à tona, se é que vem, ele está enterrado sob camadas de trabalho que assumiram que o chão sob elas era sólido.
Os erros que se escondem dentro da plausibilidade
Aprendi, devagar, que os erros perigosos nos dados não são os óbvios. Um preço de zero, um dia inteiro faltando, um valor que é claramente um absurdo — esses você pega, porque são absurdos na cara. Eles esbarram na primeira verificação de sanidade.
Os erros que de fato te machucam são os plausíveis. Um valor que está errado, mas ainda dentro de uma faixa acreditável. Um timestamp errado por uma única unidade. Uma lacuna que algo lá em cima preencheu silenciosamente com um chute. Esses passam direto por todas as verificações de sanidade que você tem, porque parecem exatamente dados legítimos — são indistinguíveis da verdade sem que você vá especificamente verificá-los contra alguma outra coisa. A corrupção mais cara é aquela educada o suficiente para parecer correta.
Eu estava depurando o andar errado do prédio
Por um tempo embaraçosamente longo, meu instinto quando algo saía estranho era ir procurar um bug na minha lógica — na parte interessante e sofisticada do sistema, a parte que eu achava digna de pensar. O bug quase nunca estava ali. Estava embaixo, nos dados, em alguma suposição sobre a entrada que eu simplesmente nunca tinha me dado ao trabalho de verificar.
Eu estava, na prática, vasculhando os andares de cima de um prédio em busca da origem de uma rachadura que corria pela fundação. Eu inspecionava o código elegante de novo e de novo, não encontrava nada de errado com ele, e ficava cada vez mais perplexo — porque não havia nada de errado com ele. Ele estava corretamente processando entradas ruins em saídas ruins, exatamente como projetado. A lógica era inocente. O chão sobre o qual ela se apoiava é que era culpado.
Qualidade de dados não é uma tarefa que você termina
Uma das constatações mais humilhantes foi que você não limpa os dados uma vez e segue em frente. Isso é uma fantasia. Novos dados continuam chegando, e chegam com novas corrupções. Uma fonte muda o formato em silêncio. Um provedor lá em cima tem uma queda e depois preenche a lacuna com algo questionável. Algo que foi confiável por meses quebra de um jeito inédito numa terça-feira comum.
Qualidade de dados, vim a entender, não é uma faxina única que você risca de uma lista. É uma disciplina contínua — uma postura permanente de suspeita em relação a toda entrada, mantida para sempre, porque o momento em que você para de vigiar é exatamente o momento em que uma corrupção nova e criativa entra sem ser questionada.
Valide impiedosamente, não confie em nada
A correção prática foi tratar toda entrada como culpada até que se prove limpa. Verifique lacunas. Verifique duplicatas. Verifique valores impossíveis, timestamps que não avançam de forma constante, trechos suspeitos em que um número para de mudar de um jeito que dados reais nunca fariam. E, crucialmente, embuta essas verificações diretamente no pipeline, para que a corrupção seja pega ruidosamente na porta de entrada, no instante em que chega, em vez de descoberta meses depois como a esquisitice inexplicável de um resultado que você já não consegue rastrear.
É um trabalho tedioso, defensivo, profundamente sem glamour. É também o trabalho que decide se tudo o que vem depois é construído sobre rocha ou sobre areia. Uma falha ruidosa na porta é um presente. Uma falha silenciosa que você herda e sobre a qual constrói é uma catástrofe lenta.
A lição mais profunda: a fundação define o teto
O princípio por trás de tudo isso é simples e implacável. Nenhuma quantidade de brilhantismo no modelo lá em cima compensa a podridão nos dados lá embaixo. A qualidade de tudo o que você constrói é limitada, em absoluto, pela qualidade daquilo que você alimenta. Você não consegue raciocinar para sair de entradas ruins; você só consegue produzir erros mais confiantes e mais elaborados sobre elas.
Então o trabalho maçante e ingrato de garantir entradas limpas não está abaixo do trabalho de verdade, do jeito que eu costumava tratá-lo. Ele é a fundação do trabalho de verdade, e toda a estrutura acima só é tão honesta quanto essa base. Eu costumava querer pular essa parte para chegar logo às partes interessantes. Agora entendo que as partes interessantes não valem nada se a parte entediante embaixo delas estiver mentindo.
— Sem sinais, sem retornos, não é recomendação de investimento.