
Dias 55 a 59 · 19 a 23 de maio – 2026
O capítulo passado terminou com o X9 ganhando nome. Nestes cinco dias a vigia de pedidos atrasados ganhou o dela — Sofia — e eu descobri que robô com nome precisa de corpo: um navegador só dele. Porque corpos, diferente de nomes, brigam entre si.
Primeiro, a tela aprendeu a dizer a idade do dado
O dia 55 foi de dinheiro. Nasceu a conferência dos repasses da plataforma de delivery: em vez de olhar o extrato e acreditar, o sistema passou a comparar o que era esperado com o que foi pago, semana a semana. No mesmo dia apaguei uma tela inteira que existia só para lançar valores à mão — e toda vez que uma tela de digitação morre, algum número deixa de depender de alguém ter lembrado de digitar.
Também joguei fora uma linha que aparecia todo mês e não existia de verdade: um total fantasma que a plataforma mandava e que não correspondia a nenhuma loja. Dado errado não se conserta com explicação no rodapé; se descarta.
E no dia 56 apareceu, na barra lateral, a informação mais chata e mais honesta do painel: a data dos últimos dados. Não “atualizado agora”, que é o que todo sistema diz. A data real de cada fonte, cada uma com a sua, porque elas chegam em horas diferentes.
Isso mudou o jeito de olhar o painel. Antes, número velho e número novo tinham a mesma cara. Depois disso, quem abre a tela vê na hora se está decidindo com informação de hoje ou de anteontem. É a mesma família de decisões das cores da tela de notas: o sistema tem que confessar o que ele não sabe.
Cinco dias brigando com encanamento
Nada do que vem agora aparece na tela, e foi onde eu passei mais tempo.
A importação que puxa os dados do e-mail quebrou de três maneiras. Mensagem codificada num formato que o leitor não entendia — a informação estava lá, ilegível. Conexão caindo antes de terminar, resolvida com mais tempo de espera e outra biblioteca de leitura. E o filtro, que usava um padrão de texto esperto: às vezes acertava, às vezes não. Troquei por uma comparação boba — ou o pedaço está no nome, ou não está.
Foi a lição do dia: em encanamento, esperto é defeito. O código que decide se um dado entra deve ser entediante de ler e impossível de interpretar de dois jeitos.
Do outro lado, o envio pelo WhatsApp esperava a página ficar “completamente quieta” antes de agir — e aquela página nunca fica quieta. Passei a esperar só o conteúdo aparecer: um ajuste de uma linha, e a mensagem que às vezes não saía passou a sair.
O tempo dentro da cozinha
No dia 57 entrou uma medida nova, e é das que eu mais gosto: o tempo de produção. Não o tempo de entrega, que o cliente vê e reclama, mas o tempo que o pedido leva dentro da cozinha, antes de sair para a rua.
A diferença importa porque muda o culpado. Entrega atrasada com cozinha rápida é problema de rua; entrega atrasada com cozinha lenta é problema nosso — e só o segundo a gente resolve. O coletor foi de zero a funcionando em todas as onze lojas no mesmo dia, com as categorias e os indicadores prontos.
Vale registrar o que veio antes: eu tinha começado esse trabalho puxando o dado do sistema de frente de loja. Escrevi o coletor, gerei o PDF, e no dia seguinte apaguei tudo, porque apareceu uma fonte melhor. Cinquenta e sete dias atrás eu teria insistido no meu código por apego. Agora apagar ficou fácil.
Sofia
E aí, no dia 57, nasceu um vigia novo.
O problema era um aviso que aparece na tela da plataforma quando um pedido pode atrasar. Ele aparece, fica lá, e se ninguém estiver olhando naquele minuto, passa. A ideia era simples: alguém olhando sempre.
O que era simples na ideia deu trabalho de verdade. A plataforma tem proteção contra robô — e com razão. Não deu para abrir uma janela de navegador limpa e automatizada: ela é reconhecida na hora. A saída foi o robô usar um navegador de gente, aberto de verdade, com sessão de verdade, e conversar com ele por dentro.
Daí em diante foi endurecendo o bicho, num dia só: detectar não um aviso, mas vários ao mesmo tempo; abrir sozinho o painel de “ver todos” antes de olhar; limpar abas duplicadas que ele mesmo deixava; se recuperar quando travava; classificar o aviso por gravidade, porque um pedido atrasado e sete pedidos atrasados não são o mesmo recado; mandar para quem interessa, escolhido numa tela e não no código; e guardar em disco a hora do último resumo, para não repetir mensagem quando ele reiniciasse.
No dia 59, na hora de arrumar os nomes do painel, aquilo deixou de ser “Monitor de Atrasos” e virou Sofia — a guardiã dos pedidos.
E o nome não saiu de um gerador. Sofia é homenagem a alguém de quem gostamos muito, aqui de dentro — alguém que cuidava da administração do app de delivery no dia a dia, que é justamente o que a robô faz agora. Quem é de casa sabe de quem estou falando. Para quem lê de fora, basta saber que o nome foi escolhido com carinho, não sorteado.
O problema que eu não tinha previsto
Aqui está a conta que veio com os nomes.
O X9 e a Sofia não são código puro: eles precisam de um navegador aberto para trabalhar. Um vive na tela da plataforma de delivery; o outro precisa do WhatsApp aberto para mandar recado. E os dois queriam o mesmo navegador.
Deu exatamente no que você imagina. Um abria a aba do outro, um fechava a janela que o outro estava usando, e o comportamento ficou daquele tipo que só acontece quando os dois trabalham ao mesmo tempo — o pior de todos para descobrir.
A solução foi dar corpos separados: um navegador para a plataforma de delivery, outro para o WhatsApp, cada um na sua porta, sem se ver. E, para o do WhatsApp, uma rotina de higiene que levou o dia para acertar: abrir, aquecer, enviar, esperar a confirmação, fechar. Antes eu deixava a janela aberta o tempo todo, achando que era mais rápido; ficar aberta é o que fazia a sessão apodrecer. No meio do caminho tentei só minimizar em vez de fechar — não bastou. E, se o navegador travasse, o sistema passou a matá-lo e abrir outro sozinho, em vez de esperar alguém notar.
De brinde, o envio ficou quatro vezes mais rápido: de cerca de um minuto por mensagem para doze a quinze segundos, porque parei de abrir um navegador novo a cada envio e passei a usar o que já estava lá.
A lição: enquanto um programa é “o script”, ele divide recursos com todo mundo e ninguém repara. Quando ele vira alguém, com nome e turno de trabalho, ele precisa de lugar próprio — e é aí que você descobre quantos vizinhos ele tem.
O dia da faxina, e uma armadilha de apelido
O dia 59 foi de auditoria. Duas ondas: a primeira em cima de segurança, código morto e qualidade; a segunda reorganizando o que estava repetido em três lugares. Saiu uma tela inteira que ninguém mais usava — resto de uma época em que os dados entravam à mão.
Duas coisas dessa faxina merecem nota. As telas protegidas passaram a exigir a identificação de quem chama, porque tinha requisição saindo sem dizer quem era. E separei os dados de teste dos dados de produção, que até então moravam no mesmo lugar — escrevi até um script só para provar a separação, porque “acho que está separado” não serve quando o assunto é apagar o dado errado.
E a armadilha: no embalo de rebatizar tudo no painel, mudei também o título de um relatório que sai em PDF para os gerentes. Voltei atrás no mesmo dia. Nome interno pode mudar quando quiser; nome de documento que já circulou, não — quem recebe arquiva pelo nome, e o histórico dele deixa de casar. Duas telas também sumiram por um instante: renomear coisa no painel sem criar o endereço novo dá página não encontrada.
A lição desses dias
Batizar um programa é de graça. O que custa é o que vem depois: o robô com nome passa a ter turno, ferramenta e vizinho — e você arbitra entre eles como se arbitra entre pessoas que dividem uma cozinha pequena.
E tem a parte que eu não esperava gostar: com nome e corpo, ficou possível dizer o que cada um faz sem abrir o código. “A Sofia vigia atraso.” “O X9 conta o que aconteceu.” Isso não é enfeite — é o que permite que outra pessoa, um dia, cuide deles.
No próximo capítulo, os robôs começam a conversar entre si — e o primeiro deles some no meio do turno sem avisar ninguém.
Deixe um comentário