
Um aviso rápido antes de começar: a partir deste capítulo, cada post passa a cobrir 5 dias da história, em vez de 3. Capítulo maior, com mais coisa acontecendo dentro, e um respiro melhor pra contar direito. O resto continua igual: tudo real, tudo datado, do jeito que aconteceu.
Dias 25 a 29 · 19 a 23 de abril – 2026
Tem uma distância enorme entre “o sistema está pronto” e “o sistema está no ar”. Esses cinco dias foram sobre atravessar essa distância — cair no meio do caminho, levantar e atravessar de novo.
Antes da estreia, a parte que ninguém vê
No capítulo passado eu tinha montado o esqueleto do Fechamento de Caixa: a tela onde o operador, no fim do turno, conta o que tem e bate com o que o sistema esperava. Esqueleto é a palavra certa — funcionava comigo clicando com calma, sabendo exatamente onde não encostar.
Só que quem ia usar aquilo não era eu. Era gente com pressa, no fim do expediente, com a loja fechando em volta. Software que só funciona quando o dono usa não é software: é demonstração.
O dia 19 foi inteiro endurecendo a tela. Bloquear o que não podia ser preenchido errado, tratar campo vazio, impedir que um clique duplo salvasse duas vezes. Nada disso dá orgulho de mostrar pra alguém — é o corrimão da escada: ninguém repara, até faltar.
No meio disso, uma dívida antiga finalmente saiu do papel: senha de verdade. Até ali o sistema tinha usuários de um jeito improvisado, que servia enquanto éramos quatro gatos pingados. Reescrevi tudo. Agora cada senha é guardada embaralhada, e embaralhada sem volta: nem eu, olhando o banco de dados, consigo descobrir a senha de alguém. É o mínimo que qualquer sistema sério faz, e eu estava devendo.
Junto veio o pacote de gente grande: tela pra criar e editar usuário, permissão por pessoa, e um registro de quem mexeu em quê. Esse último importa mais do que parece numa operação com várias lojas — quando um número muda, você quer saber quem mudou. Não por desconfiança, por rastreabilidade. Some a dúvida, sobra o fato.
E pus o número da versão visível na tela inicial. Bobagem de dois minutos que mata uma confusão recorrente: quando alguém diz “aqui tá dando erro”, a primeira pergunta deixa de ser adivinhação. Olha o número e você sabe se a pessoa está na versão nova ou ficou com a página velha aberta desde ontem.
Conferência, vales e a maquininha
Com a base firme, ataquei o que o gerente esperava. Não basta o operador contar o dinheiro — o sistema precisa dizer se aquilo bate.
Montei a tela que põe lado a lado o esperado e o que realmente entrou, quebrado por forma de pagamento. E resolvi o caso que sempre trava o fechamento na vida real: o vale. Aquele dinheiro que sai do caixa por um motivo legítimo no meio do turno e que, se ninguém anotar, vira um buraco misterioso no fim do dia. Agora o vale é registrado na hora e sai em PDF, com a assinatura de quem pegou. Buraco misterioso vira papel.
Também tornei obrigatório informar a hora do fechamento — sem isso dois turnos se misturam e ninguém sabe mais de quem era o caixa.
E encaixei a importação automática da administradora de recebíveis, a maquininha do cartão. Antes alguém baixava o relatório e subia na mão. Agora o sistema puxa sozinho, inclusive vouchers e vendas online, e amarra cada arquivo à loja certa pelo CNPJ. Detalhe que evita o erro mais chato de todos: número certo na loja errada.
17h52
No dia 21, liguei a chave. O Fechamento de Caixa saiu do meu computador e foi pro ar, valendo pra todo mundo.
Às 20h34 eu desliguei de novo.
Duas horas e quarenta e dois minutos. Foi o que o módulo durou em produção na primeira tentativa.
Não vou romantizar: bateu aquele frio na barriga de quem vê a coisa desandar com gente de verdade do outro lado. O que corria lisinho comigo clicando devagar encontrou a realidade — telas abertas ao mesmo tempo, sequências de clique que eu nunca testei, dado chegando num formato que eu não previ. Nada catastrófico, nada que perdesse dinheiro. Mas o suficiente pra entender que aquilo ainda não ficava de pé sozinho.
A parte boa dessa história é o que eu tinha feito antes: aquela chavinha que liga e desliga o módulo sem mexer no código nem republicar nada. Voltar atrás foi um clique. Sem a chave, teria sido uma noite inteira desfazendo na marra, com a operação parada no meio.
O conserto
Os dois dias seguintes foram de olhar no olho do que quebrou.
Comecei pelo mais silencioso e mais perigoso: a conta estava errada. A fórmula que extraía os recebimentos do app de delivery pegava os valores de um jeito que funcionava na maioria dos casos e escorregava nos outros. É o pior tipo de erro que existe: o que acerta quase sempre. Erro que erra sempre você descobre no primeiro teste; erro que acerta em nove de dez passa despercebido até virar prejuízo no fim do mês.
Depois fui atrás de uma situação que a vida real mostrou e eu não tinha previsto: caixa com sobra. Eu construí o fluxo assumindo que a diferença sempre seria pra menos — falta dinheiro, registra o vale, explica o buraco. Só que às vezes sobra. E o sistema, teimoso, exigia um vale mesmo quando não havia nada a justificar. O operador ficava preso numa tela pedindo explicação pra um problema que não existia.
Anotei mentalmente: quase todo travamento de sistema vem de alguém ter assumido que a vida só acontece de um jeito.
Aproveitei e fechei o primeiro acesso — agora o usuário novo define a própria senha no primeiro login. Antes eu criava a senha e mandava pra pessoa, o que significa que, por um tempo, duas pessoas sabiam a senha de uma conta só. Funciona entre conhecidos; envelhece mal quando a equipe cresce.
Dia 23, 13h22
Liguei a chave de novo.
E dessa vez ficou.
Não teve foguete — teve alívio, que é uma emoção bem mais honesta na programação. Passei o resto do dia com o olho no sistema esperando um susto que não veio.
Com o módulo de pé, deu pra construir por cima. E aí entrou a peça que mudou quem o sistema atendia: o Consolidado da Direção. Até então o fechamento era coisa de cada loja olhando o próprio umbigo. O consolidado juntou tudo numa visão só — todas as unidades, lado a lado, no mesmo período.
Foi a primeira vez que o sistema deixou de ser ferramenta de operação e virou ferramenta de decisão. Quem opera precisa saber se o caixa da loja bateu hoje. Quem dirige precisa saber quais lojas batem sempre, quais escorregam toda semana e onde está o padrão. Mesma informação, dois usos completamente diferentes — e o segundo só existe quando o primeiro é confiável.
Por fim, uma certeza: a colaboração valiosa de um de nossos gerentes topando ser “cobaia” fez tudo isso acontecer. Contribuição valiosíssima dele e do time.
A lição desses dias
Existe uma distância entre “funciona” e “aguenta”. Funciona é comigo, com calma, sabendo dos atalhos. Aguenta é com o operador apressado, no pior dia do mês, fazendo exatamente o que eu não previ.
E ficam duas lições que carrego até hoje. A primeira: construa a saída antes de precisar dela. Não liguei o módulo torcendo pra dar certo — liguei sabendo que, se não desse, eu voltaria em um clique. Isso não é pessimismo, é engenharia. Quem sobe sem plano de descida não está corajoso, está apostando.
A segunda: software que fica de pé na segunda tentativa quase nunca é software com mais sorte. É software com mais informação. As três coisas que eu consertei entre uma estreia e outra, eu jamais descobriria testando sozinho — a realidade apontou cada uma. Aquelas duas horas e quarenta e dois minutos no ar foram o teste mais barato que eu podia ter feito.
No próximo capítulo, o sistema aprende a se virar sem mim: buscar sozinho o que precisa, trabalhar em três frentes ao mesmo tempo — e as armadilhas que aparecem exatamente quando você acelera.
Deixe um comentário