Modernização de sistemas Legados

Horizonte para modernização de sistemas

Autor: Valdir Scarin

Quando o objetivo é modernizar aplicações legadas, olhando os números de algumas pesquisas norte americanas, aparentemente o trabalho é infinito. O mercado de software nos Estados Unidos cresceu em média 7,2% ao ano entre os anos de 2000 e 2014 alcançando U$ 475 bilhões¹. Em 2016, esse número chegou a U$ 564 bilhões ². Sendo assim, esta enorme quantidade de dinheiro foi utilizada na produção e sustentação de inúmeros sistemas e uma coisa é fato: Este dinheiro não seria gasto se esse sistemas não fosse importantes!

Esses montantes financeiros são astronômicos, assim como a diversidade dos tipos de softwares construídos. É interessante pensar que todos eles foram construidos utilizando as tecnologias existentes nas épocas em que foram desenvolvidos, mas a pergunta que fica é como continuar fazendo uso desses softwares, que para muitos ganharam a alcunha de legados.

Sistemas legados são sistemas de informação os quais baseiam-se em tecnologias desatualizadas, mas que são fundamentais para as operações do dia-a-dia da empresa ³.

Mapa de Tecnologia do Legado

A tecnologia e a linguagem de programação são forças que ajudam a enquadrar os sistemas como legados. Inicialmente, quando uma empresa escolhe a tecnologia a ser utilizada para construção do sistema, em geral faz comparação das características intrínsecas (sintaxe, facilidade de uso, produtividade, desempenho, portabilidade), pacotes disponíveis (frameworks), comunidade e cultura. A cultura seja da empresa ou da região é muito importante, nela enquadram-se a disponibilidade de profissionais na empresa ou no mercado, os salários, formação média e a curva de aprendizado. Uma tecnologia fica obsoleta e os profissionais param de estudá-la e suporta-lá, porém o resultado é único, o sistema legado se forna um risco. Todo esse movimento acontece em conjunto, quase que num efeito manada!

Para avaliação dos problemas de um sistema legado, é importante conhecê-los. Ter visão dos dados mantidos, características da tecnologia que são utilizadas e mapa de dependências bi-direcionais. É comum que os sistemas de uma empresa utilizem as mesmas tecnologias, isso torna mais desafiador a avaliação de modernizações, por que as tecnologias possuem mecanismos particulares de comunicação (pelo menos era assim até a chegada dos WebServices e REST), o que faz inicialmente a migração ser imaginada em um modelo “BigBang”.

Critérios para modernização

Os critérios para modernização são extremamente importantes, não são todas as aplicações que devem ser elegidas para modernização. A sua estratégia de modernização pode ter maior ou menor custo (VMBEARS pode te ajudar a ter custo baixo) por isso é importante entender quais sistemas devem ser modernizados. Entender o que o sistema faz e como faz, e se este ainda favorece o negócio faz parte de sua avaliação. Para ter visão geral sobre este assunto, leia Critérios para Modernização de Sistemas Legados

Estudo para modernização

É bem verdade que entender um sistema legado não é simples. Ainda mais quando ele não é mais sustentado e as únicas operações de suporte são o liga e desliga. A busca para o entendimento do sistema legado a ser modernizado deve ser metódica, encarando todos os desafios em primeiro lugar.

Para vencer, deve-se conhecer perfeitamente a terra (a geografia, o terreno) e os homens (tanto a si mesmo quanto o inimigo). O resto é uma questão de cálculo. Eis a arte da guerra. (Sun Tzu, A arte da Guerra)

Um bom início será criar um mapa que indique:

• Tecnologia (Java)
• Features da Tecnologia (XA, WS)
• Frameworks (Hibernate, JasperReports, Struts…)
• integrações P2P (ERP, CRM, BI)
• Serviços
• Ambiente de produção (IBM Websphere, Jboss…)

E para cada item deste mapa, indicar uma atividade de estudo e tempo para avaliação de resolução.

“Cada empresa encontra-se com negócios e tecnologias distintos, portanto o mais importante é atentar-se ao método de sucesso que foque na modernização das tecnologias e arquitetura, preservando plenamente os benefícios atuais do sistema legado com a flexibilidade da nova arquitetura ou tecnologia.” Diz Valdir Scarin, arquiteto e co-fundador da VMBEARS, empresa focada no estudo de arquiteturas complexas e proposições de cenários de modernização que minimizam risco e custo através de reuso do código das próprias aplicações.

Método

O método que a VMBEARS aplica para estudar e modernizar sistemas é:

• Avaliar a arquitetura existente: A fim de criar um AS-IS de arquitetura e ter visibilidade dos desafio a serem resolvidos, o desenho inicial da arquitetura permite entender as minuncias da empresa, critérios e valores mais importantes para orientar as estratégias de modernização, e identificar os sistemas elegieis;
• Proposição de Estratégias de Modernização: Como resultado da avaliação arquitetural é proposto cenários de modernização do sistema tendo em vista o menor impacto na transição do sistema. Neste passo são avaliadas estratégias como Encapsulamento, Replatform, Refactoring, Rearchiteture entre outras. É importante notar que para cada estratégia de modernização existe custos e impactos diferente associados e é neste passo a melhor estratégia para o cliente é escolhido;
• Entregas Parciais: Entregas parciais são ótimas para acelerar os beneficios da modernização e minimizam o impacto na operação dos times de suporte e infraestrutura. Do ponto de vista gerencial, essa estratégia traz melhor monitoramento do projeto e gestão das eexpectativa do cliente;
• Acompanhamento da Operação: Com os novos sistemas em produção é importante passar conhecimento para os times de suporte, desta forma a fase de acompanhamento da operação permite que o time de modernização e suporte fiquem junto entendo, avaliando e realizando ajustes caso necessário.

Conclusão

A modernização de sistemas é impressindivel para empresas que querem continuar entregando com qualidade e atendendo o mercado com velocidade. Entender a melhor forma de modernizar o portifólio de sistemas é o ponto chave para sucesso.

Existem várias formas de modernizar sistemas, mas todas exigem conhecimento e tomar a escolhas corretas. O método para executar a modernização: estudar cenário atual, escolhe estratégia, entregas parciais e o acompanhamento deve ser realizado com atenção, para manter o cliente continuamente satisfeito.

Referências

¹ The U.S. Software Industry: An Engine for Economic Growth and Employment – https://www.siia.net/Admin/FileManagement.aspx/LinkClick.aspx?fileticket=ffCbUo5PyEM%3D&portalid=0

² THE $1 TRILLION ECONOMIC IMPACT OF SOFTWARE – http://softwareimpact.bsa.org/pdf/Economic_Impact_of_Software_Report.pdf

³ Legacy Application or System – https://www.gartner.com/it-glossary/legacy-application-or-system
Sistemas Legados e as Novas Tecnologias : Técnicas de integração e estudo de caso – http://www.ip.pbh.gov.br/ANO7_N1_PDF/IP7N1_mendespinto.pdf