Quando você herda o sistema que ninguém quer tocar

Em TI, existe um tipo de problema que quase sempre chega disfarçado de oportunidade.

Alguém sai. A documentação não existe. O sistema continua faturando, mas ninguém entende direito como ele se sustenta. A partir daí, o trabalho deixa de ser só técnico. Vira arqueologia, contenção de risco e, muitas vezes, teste de sangue-frio.

Foi esse o centro de dois relatos recentes publicados no Dev.to por desenvolvedores que pegaram exatamente esse tipo de herança: uma base sem comentários, sem contexto e sem autores por perto para explicar por que certas decisões foram tomadas. Em um dos casos, a tarefa começou como um “ajuste pequeno” num serviço de reconciliação de pagamentos. No outro, a missão era pior: transformar um sistema sem documentação em uma arquitetura capaz de aguentar 5 mil usuários concorrentes, multi-tenant e com autenticação por cliente.

O caso chama atenção porque ele desmonta um mito que muita gente ainda compra cedo demais: o de que sistema legado sem mapa é só um incômodo operacional. Na prática, muitas vezes ele vira o verdadeiro retrato de como uma empresa trata continuidade, passagem de contexto e responsabilidade técnica.

o que assusta primeiro nem sempre é o código

No relato mais confessional, a autora descreve o tipo de cena que qualquer dev reconhece rápido: função duplicada com nome improvisado, código morto convivendo com caminho novo, comentário velho de TODO sem explicação e commit message que não diz nada útil. O detalhe mais importante não é a bagunça em si. É a ausência completa de contexto.

Segundo ela, o pior não foi encontrar código ruim. Foi perceber que a lógica real da aplicação já não estava mais no repositório. Ela tinha morrido junto com threads de Slack, conversas de corredor e decisões tomadas na correria por gente que já nem estava na empresa.

Esse ponto vale ouro porque é ali que muita equipe erra o diagnóstico. Não se trata só de “falta comentário”. Trata-se de perda de memória operacional. E memória operacional perdida custa caro: aumenta medo de mexer, alonga debug, perpetua código morto e empurra decisões de arquitetura para um futuro que nunca chega.

o caso mais forte não foi reescrever tudo

No segundo relato, o cenário era de alto risco: um sistema Node.js rodando frontend e backend no mesmo servidor, Active Directory acoplado à autenticação, MySQL de um lado, MongoDB do outro e ingestão acontecendo por caminhos diferentes, sem padrão claro.

A reação mais sedutora seria a clássica: “vamos reescrever direito”. Só que o autor faz um movimento mais maduro. Em vez de reconstruir tudo sem entender quase nada, ele decidiu observar o sistema funcionando antes de meter a mão no miolo.

A estratégia foi mapear comportamento em produção, identificar bordas seguras de mudança e escalar a caixa-preta por fora antes de refatorar por dentro. Na prática, isso significou separar frontend e backend, usar PM2 em cluster, aliviar banco com read replicas e isolar a parte realmente perigosa atrás de uma camada de abstração: a autenticação por tenant.

É o tipo de caso que pesa editorialmente porque ele não glorifica heroísmo barato. O ganho não veio de um gênio que “entendeu tudo” em dois dias. Veio de disciplina técnica: observar, encontrar seams, reduzir superfície de risco e só depois alterar o que precisava mudar.

Diagrama mostrando a evolução de um sistema legado de um servidor único para uma arquitetura distribuída sem reescrita total.
O relato mais técnico mostra um caminho raro em legado: observar o sistema rodando, aliviar gargalos por fora e só então mexer no que é realmente sensível.

o verdadeiro problema é cultural, não só técnico

Os dois relatos apontam para a mesma ferida: empresas adoram falar de velocidade, mas poucas tratam transferência de contexto como parte do produto.

Quando a operação depende de pessoas específicas, a saída de alguém vira falha estrutural. Quando ninguém se sente seguro para deletar código morto, a base vai engordando em silêncio. Quando documentação, convenções e racional de arquitetura sempre ficam para “depois”, o que sobra para o próximo time não é agilidade. É medo.

Isso explica por que tanta equipe convive com sistemas que ninguém quer tocar. Não porque todo mundo seja incompetente. Mas porque o ambiente premiou entrega imediata e deixou custo de manutenção para os outros.

No texto mais pessoal, a autora até faz uma concessão honesta: muita sujeira não nasce de preguiça. Nasce de deadline, urgência e da falsa sensação de que tudo parece óbvio enquanto você ainda está com o contexto fresco na cabeça. O problema é que o contexto evapora. O código fica.

o que esse tipo de herança ensina para quem trabalha com TI

Os relatos não viram regra universal, mas ajudam a nomear lições bem práticas:

  • comentário útil vale menos como “capricho” e mais como economia de sofrimento futuro;
  • observar sistema em produção costuma explicar mais do que ler código solto por horas;
  • reescrita total de um sistema pouco entendido quase sempre é mais risco do que solução;
  • fronteiras claras e adaptações pequenas salvam mais operação do que refatoração épica;
  • código morto, convenção frouxa e commit sem contexto também são passivo de negócio.

Talvez a virada mais importante esteja na forma de medir senioridade. Em muita empresa, ainda se associa maturidade técnica a escrever solução nova rápido. Só que nesses casos o valor aparece em outro lugar: saber desacelerar, mapear dependências, não fingir entendimento e criar trilha para quem vier depois.

É menos glamouroso. E justamente por isso é mais raro.

por que esse community-case merece a vaga de hoje

Para o segundo slot principal do dia, esse caso ficou mais forte do que as pautas utilitárias e as trilhas mais “fonte primeiro” por um motivo simples: ele entrega um retrato aberto, concreto e muito reconhecível da vida real em TI sem depender de rumor ou abstração de mercado.

Não é só um texto sobre legado. É um texto sobre o custo humano e operacional de herdar decisões sem contexto. E isso conversa com backend, infra, produto, suporte e liderança técnica ao mesmo tempo.

O que mais fica depois da leitura é uma frase que os dois relatos, juntos, praticamente esfregam na cara: você herda o código, mas nem sempre herda o raciocínio que mantinha esse código de pé.

Quando isso acontece, o problema já deixou de ser só programação. Virou governança.

fontes

Os comentários estão desativados.

plugins premium WordPress