top of page
Buscar
  • everton645

Sistemas Legado - O que preciso saber?

Atualizado: 8 de nov. de 2022

Apesar do nome autoexplicativo, ainda existe muita dúvida sobre o que é um sistema legado. Vamos definir rapidamente como um sistema que usa tecnologias obsoletas e usa não recebe manutenção adequada.

Independente do quão hype seja a tecnologia que você usa hoje, em algum momento ela será legada. Vem com a gente que vamos te mostrar como fazer para um sistema envelhecer bem sem que se torne um fardo.


Quando falamos de sistemas computacionais, legados nem sempre são bem vistos. Programadores dispostos a trabalhar com sistemas legados estão em extinção. A definição clássica para um legado, é qualquer sistema que use uma metodologia, tecnologia, práticas obsoletas ou desatualizadas, isto não quer dizer que o sistema não entrega mais valor ou não tem mais utilidade. Se fosse o caso seria fácil fazer a substituição, mas a verdade é que no mundo real as empresas investem milhões no desenvolvimento de soluções. Uma vez que a demanda é atendida, a tendência é que o investimento diminua.

O ciclo de desenvolvimento de software tem etapas a serem seguidas para evitar que um sistema se torne legado.


Quem estudou administração de empresas já deve ter se deparado com PDCA, que é um ciclo contínuo de melhoria de processos. PDCA corresponde a Plan de planejar, Do de fazer, check de checar/mensurar e A de agir.


É pela falta destes ciclos que os sistemas se tornam legados.


Os sistemas se tornam legados quando o ciclo de manutenção não ocorre como deveria. Vamos pensar assim, antigamente o Jquerry era muito bem visto. Hoje, apesar de ser usado, ele já não é mais tão bem visto por ter tecnologias melhores.

Se no passado um desenvolvedor fez um sistema com jQuery, e ao longo dos anos não atualizou as bibliotecas, sinto dizer, mas este sistema se tornou um legado.


Quem acredita que a etapa de manutenção do sistema serve apenas para a implementação de mais ferramentas, esta enganado. É nesta etapa que se atualizam as bibliotecas e inclusive se reescrevem os códigos. Isto mesmo, ao longo da evolução e manutenção de um sistema, seu código é reescrito.


Se o PDCA dentro das empresas é contínuo e constante, o ciclo de desenvolvimento de software também deve ser. As empresas que investem em softwares devem estar cientes disto. Obviamente cada organização tem sua própria realidade e nem sempre é possível manter equipes grandes de desenvolvimento, principalmente após a implementação do sistema. E é por isto que toda a vez que este ciclo é quebrado, o sistema está apto a se tornar um legado. Os desenvolvedores mais novos mal sabem que em algum momento eles vão precisar colocar a mão em algum legado. A demanda por este tipo de mão de obra é gigante. Eu me arrisco dizer que ela pode ser maior que a de projetos novinhos. Outro fator importante de citar é os ganhos. Normalmente quem trabalha com legado tem ganhos acima da média. Mas é importante dizer, que ao longo dos anos, devs que trabalham só com isto podem cair na estagnação.


O desafio de manter um sistema, enquanto plataformas mais novas são utilizadas, é um desafio, e isto te prepara para o mercado de forma diferenciada.

Acho que conseguimos mostrar de fato o que é um sistema legado, de qualquer forma, as principais características que você encontra nele são:

  • Software desatualizado.

    • Que podem apresentar bugs, brechas de segurança e congelar o projeto para evoluções corretivas e até obrigatórias, vide LGPD

  • Uso de tecnologia obsoleta

    • Através do uso de uma linguagem antiga, ou que não tenha mais atualização. Ou, tecnologias que somente caíram em desuso

  • Falta de especialista

    • Poucos profissionais tem conhecimento para lidar com sistemas legados. Para qualquer empresa isto é um gasto de tempo e dinheiro, e por fim isto gera para eles falta de competitividade.

  • Falta de mobilidade

    • Muitas vezes nos acostumamos a usar sistemas desktop. Muitas vezes é importante que o sistema possa ser utilizado de celulares e mobiles.

  • Falta de escalabilidade

    • Hoje, é preciso pensar em escalabilidade.

  • Falta de suporte

    • Tem relação em muitos momentos com a tecnologia empregada no sistema.


Obviamente existem outras características que são complementares a estas citadas acima. Mas calma que nem tudo é tragédia. Existem ações que empresas podem fazer para evitar que um projeto vire legado.

Se você é um dev e atua em uma empresa que atua com legados, anota essas dicas:

  • Adote técnicas de Refactoring (técnicas de estrangulamento)

    • Consiste em atualizar todo o código do legado sem comprometer a experiência de uso durante o processo. Cobrir o sistema de testes é obrigatório para dar muito mais segurança nesta etapa. Este trabalho deve ser feito continuamente, mesmo que os bugs dos legados continuem lá.

  • Reescreva as rotinas

    • A aplicação precisa entrar novamente no ciclo de desenvolvimento, mesmo que tardiamente, e voltar a ser mantida através da reescrita. Sim, a aplicação toda em algum momento precisa ser refeita. Se no primeiro passo os testes são essenciais, aqui a documentação é deveras importante.

  • Integração com soluções prontas

    • Isto nem sempre se aplica, mas em alguns casos é uma boa estratégia criar proxys, que conectam o legado a um sistema mais moderno que faz o papel do sistema novo.

  • Desenvolva testes automatizados

    • A cultura de testes é algo que já deveria estar enraizado em qualquer empresa de desenvolvimento de sistemas

  • Feature Flags

    • Esta técnica permite que a equipe trabalhe no código fonte do legado sem necessariamente modificar o seu código. Este processo adota várias estratégias. A ideia das features flags é atualizar a aplicação sem comprometer o fluxo de trabalho ou do negócio. Ou seja, há uma integração dos legados da empresa ao dia a dia.


Do ponto de vista do mercado, os legados irão sempre existir, os legados estão tão longe e tão perto ao mesmo tempo da nossa realidade.


conteúdo retirado do canal Código Fonte TV, que pode ser acessado no link https://www.youtube.com/c/codigofontetv





26 visualizações0 comentário

Comments


bottom of page