Um especial de Halloween em clima de sexta-feira 13: Tiago Aguiar, Rafael Peixoto e Yuri Marcel reuniram suas piores histórias de terror da carreira em tecnologia. Sem citar nomes, empresas ou datas — só os bugs, os prazos impossíveis e os deletes que quase custaram o emprego.
DELETE sem WHERE disparado direto em produção por um estagiário inicianteC:\ do cliente a partir da aplicação webA primeira história do episódio é sobre um gestor que pede um prazo sem dar nenhuma informação sobre o escopo do trabalho — e ainda reclama quando a estimativa não agrada. A comparação usada foi direta: pedir prazo sem escopo é como perguntar quanto tempo leva para construir um prédio sem dizer quantos andares ele vai ter.
"Cara, você constrói um prédio, quanto tempo leva? Mas você nem sabe quantos andares vai ter o prédio. Como é que você vai dar prazo?" por Tiago Aguiar
Ainda no início de carreira, um dos hosts recebeu a tarefa de rodar uma query pronta — com updates e deletes — direto na base. Ao editar o comando, apagou sem querer a cláusula WHERE, e o delete afetou uma quantidade enorme de registros na base de produção. Só não virou tragédia porque a alteração ainda estava dentro de uma transação, e deu tempo de dar rollback antes do commit.
"Cadê o where? Na base de produção. De delete muito grande. Na hora que eu via a mensagem embaixo assim, sei lá, quantas bilhões deletáveis eu sou aí frio."
Durante uma migração para um servidor na nuvem, ninguém se atentou para a diferença de encoding entre o servidor antigo e o novo. O resultado: caracteres especiais digitados pelos usuários passaram a ser gravados como tags corrompidas no banco — cerca de 500 serviços afetados. A correção via ETL, pensada para remapear os caracteres especiais, teve um efeito colateral não previsto: apagou também todos os números das colunas afetadas, sumindo com telefones e outros dados de milhares de clientes.
"Nosso chefe na época não confiou mais na ETL para resolver esse problema. Então, a gente não podia mais executar esse trabalho de fazer a carga de dados."
O time de TI precisou, junto com a área de negócios, montar uma força-tarefa para ligar cliente por cliente e refazer o cadastro manualmente — um trabalho que se estendeu por meses, com alguns dados considerados perdidos de forma definitiva.
Em uma integração entre sistemas de empresas diferentes, um erro de timeout do lado do cliente foi interpretado por ele como culpa do fornecedor. Mesmo depois de uma explicação detalhada mostrando que o problema estava no servidor do próprio cliente, ele insistiu em pedir acesso para "arrumar" o serviço do outro lado — e ainda tentou, sem sucesso, contratar o host por fora para resolver o próprio problema.
"A gente falou assim, esse é o nosso request, e isso aqui é o serviço de vocês devolveu. Então é uma disponibilidade, na verdade vocês nem devolveram nada, tem um time-out. O problema tá no serviço de vocês." por Tiago Aguiar
Fechando o bloco de "hora extra", um dos hosts relembrou dois turnos que se estenderam por mais de 20 horas seguidas — um deles em pleno período de férias, quando a resposta ao pedido para ir descansar foi um convite para dormir na própria empresa e continuar depois de uma folga de meia hora.
"Tá bom, que hora você volta? Eu sei que você está de férias, mas que hora você volta amanhã? Tem uma casinha aqui, dorme aqui um pouquinho, descansa uma meia horinha, depois você continua."
"O problema não é a pessoa não saber, o problema é achar que sabe." por Tiago Aguiar