logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog

follow us in feedly

Semântica

É engraçado como a semântica da maioria dos mortais não vale para programação. "Legado" da forma que aprendi na escola é algo bom, que é passado entre as gerações. O dicionário confirma. Mas o significado dessa palavra mudou no decorrer dos anos. Pelo menos para nós, escovadores de bits.

Para quem trabalha com programação, "legado" é aquele código antigo que ninguém quer dar manutenção e que todo mundo culpa por todos os problemas. Problemas em produção? É culpa do código legado. O projeto levou o dobro do tempo? É porque "precisamos contornar o legado". O sistema dá problema em produção todo dia? "É só a parte do legado, o que fizemos no último ano funciona". O sistema e a empresa continua com problemas, mas parece que culpar o legado isenta todo mundo de toda e qualquer responsabilidade.

Então começamos um projeto novo para "resolver o legado", depois de convencer todo mundo. Sempre pensamos que, dessa vez, vamos fazer diferente e montar uma arquitetura que é robusta, escalável e que vai ajudar a empresa a crescer, sem os problemas do passado. Afinal, agora somos mais espertos e entendemos mais sobre programação. Mas isso **nunca** acontece. Por que?

Nós estamos hoje construindo o legado de amanhã. Tanto no bom sentido quanto no mal sentido (mais uma vez me lembro como é engraçado em programação a palavra "legado" ter um conotação ruim por si só). Daqui alguns anos, o código que estamos escrevendo hoje também será um "código legado". E por que isso? Existem vários motivos, o principal é: não conseguimos prever o futuro. Isso simplesmente não é possível. No futuro as necessidades serão outras, as técnicas serão outras, e pricipalmente as pessoas e suas visões de mundo serão outras. Todas as tentativas que eu vi de fazer um sistema que seria genérico o suficiente para prever o futuro acabou gerando um meta framework super genérico que só piorava a situação.

O framework genérico caseiro é um erro clássico de grandes empresas, quase sempre obra dos ditos "Arquitetos de Software". Já vi vários casos onde a empresa faz seu próprio framework e bibliotecas internas para coisas simples como acesso à banco de dados, só para garantir que os programadores vão "fazer a coisa certa". Aí todo mundo passa boa parte do tempo contornando esse framework interno que foi feito por uma "equipe de arquitetura" que não tem programadores ou engenheiros de software experientes. Geralmente as equipes de arquitetura são formadas por pessoas que querem um salário maior e menos pressão por prazo e qualidade. Como um deles já me disse uma vez, "no Word sempre compila, ser arquiteto é bem mais fácil".

E algumas vezes a proposta para "resolver o levado" é jogá-lo fora e recomeçar. **A IDEIA MAIS ESTÚPIDA DO PLANETA**. O Joel já disso isso faz tempo e parece que ninguém entendeu. Você não pega um código fonte que funciona e simplesmente joga fora. Você pode reorganizá-lo e substituir as partes problemáticas aos poucos, mas trocar tudo de uma vez é algo que eu nunca vi funcionar. Nunca.

Software não é algo estático, ele precisa estar sempre em evolução. O legado é eterno. A atenção que damos para ele determina se o legado será bom ou ruim. Ao invés de fazer um projeto novo a cada 4 ou 5 anos, devemos manter o software evoluindo sempre. A Microsoft refaz o Word de tempos em tempos? E o Linux, ele passa por uma reformulação geral a cada 5 anos? Não. Software de qualidade está sempre evoluindo. É assim que deve ser.

Lembre-se: código fonte é código fonte. Bonito ou feio, novo ou velho. E é nossa responsabilidade fazer com que o ele continue funcionando. Então, por favor, deixe de frescura, abra aquele código fonte antigo, entenda como ele funciona e mantenha tudo funcionando e evoluindo. É o seu legado.

Em 19/11/2015 06:56, por Rodrigo Strauss


  
 
 
Comentários
Amilson Junior | e-mail | em 20/11/2015 | #
Photoshop ta aí a 25 anos... olha as engines de jogos, eu to estudando a CRYENGINE e tem código C++ de 2003 nela. Ótimo post.
Algo a dizer?
Nome:


Site:


E-mail:


Escreva o número vinte e seis:


 Não mostre meu e-mail no site, não serve pra nada mesmo...

Comentário





Os comentários devem ser sobre assuntos relativos ao post, eu provavelmente apagarei comentários totalmente offtopic. Se quiser me enviar uma mensagem, use o formulário de contato. E não esqueça: isso é um site pessoal e eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado.
rebarba rebarba
  ::::