Por que você deve modernizar o software legado?
4 de março de 2022Este artigo foi escrito por Victor Klaren e traduzido pela LEF.
Victor Klaren, Thinkwise CVO: Eu regularmente me deparo com o seguinte: empresas que ainda estão executando seus aplicativos de negócios mais importantes em um servidor IBM AS/400. Eles ficariam encantados em se livrar dele, mas não sabem como. Na maioria das vezes, o software ainda funciona bem e eles têm medo dos riscos, incertezas e custos de desenvolve-lo do zero. Vamos explorar o valor agregado e as implicações da realização de tal processo de modernização.
A razão mais importante para substituir o software legado é que algo não está mais funcionando corretamente ou está faltando. Este não é o caso de muitas aplicações legados. Se o software está tecnicamente desatualizado, mas ainda satisfaz todos os requisitos funcionais, então há pouca razão para modernizá-lo a partir dessa perspectiva. O software legado também pode se tornar funcionalmente obsoleto, tornando-o incapaz de executar tarefas mais modernas. Considere, por exemplo, preencher uma webshop ou uma plataforma de análise. Neste caso, as empresas tendem a optar por construir uma aplicação periférica moderna em cima da aplicação legado, em vez de modernizar o próprio aplicativo legado.
E quem pode culpá-los. Os projetos de TI envolvendo sua aplicação de negócios primárias são complexos, caros e arriscados, e têm um impacto direto nas operações de seus negócios. A opção mais segura é, portanto, se contentar com a funcionalidade atual do seu aplicativo legado e adiar sua modernização indefinidamente, aceitando os altos custos ocultos. Mas e se houver a possibilidade de manter a funcionalidade existente e, ao mesmo tempo, modernizar a tecnologia?
Diferentes formas de modernizar
Em geral, existem três maneiras de modernizar uma aplicação herdado, cada uma com suas próprias vantagens e desvantagens.
1. Conversão do código fonte
Em primeiro lugar, você pode tentar converter a linguagem de programação antiga em uma nova linguagem de programação. Mas você rapidamente se desarmou contra vários problemas. Os conceitos aplicados em várias línguas são muitas vezes muito diferentes. Por exemplo, como você muda de um procedimento para um modelo orientado a objetos? Ou de um aplicativo de RPG (Rapid Program Generator) em um AS/400 para um aplicativo de 3 níveis? Ou de uma interface de usuário orientada a caracteres para uma variante móvel?
A filosofia do seu antigo aplicativo é muitas vezes perdida durante este processo de conversão. Além disso, o software de conversão faz várias suposições, o que pode aumentar seriamente o número de bugs no novo aplicativo. A combinação dos problemas acima torna o novo software extremamente difícil de manter.
2. Use um front-end gui (embrulho)
Uma solução que muitas vezes é escolhida é deixar o código como ele é, e desenvolver uma interface de usuário moderna em cima do aplicativo legado. Isso parece resolver o problema, pelo menos de fora, mas a desvantagem é que toda vez que você altera seu processo principal, você tem que modificar tanto o aplicativo legado quanto o aplicativo front-end. Isso inibe ainda mais o desenvolvimento contínuo da aplicação.
3. Obtenha um modelo de software
Uma nova tecnologia emergente é usar uma plataforma de low-code para sistemas Core. Algumas plataformas oferecem a opção de derivar um modelo de low-code a partir do software legado, para que você possa definir a filosofia crucial do seu aplicativo principal. Durante esse processo, a funcionalidade central do aplicativo é especificada, incluindo os modelos de dados, estruturas de GUI, processos e traduções. Na verdade, tudo o que está disponível em um nível meta. O modelo derivado geralmente não é completo; isso difere para cada tecnologia e aplicação. Mas é evidente que isso proporciona um salto considerável para um projeto de modernização. Na prática, você pode obter de 20 a 50% da funcionalidade, e isso é uma tremenda economia para aplicações grandes.
Desenvolvimento contínuo após modernização
Com cada tipo de modernização do legado, você tem que olhar além do projeto inicial. Você vai querer e precisar continuar a desenvolver a aplicação. Este é o aspecto mais difícil com a conversão, pois após a conversão a filosofia original do aplicativo não existe mais. Com ‘embrulhando’ o problema permanece que você tem que aplicar todas as modificações duas vezes, e você também terá que encontrar e contratar desenvolvedores caros que ainda são capazes de trabalhar com a tecnologia obsoleta.
Por outro lado, um modelo de low-code oferece excelentes possibilidades para continuar o desenvolvimento facilmente. É possível enriquecer automaticamente os modelos com base em análises inteligentes dos metadados. Isso não só acelera o desenvolvimento, mas também fornece um processo uniforme.
Evite novos softwares legados
A substituição do software legado é considerada um problema importante e crescente para o futuro. O Gartner dedicou uma conferência inteira a este tema no final de 2018. Com o passar do tempo, os custos de manutenção do software legado continuam aumentando. E, em última análise, é claro, haverá um momento em que a tecnologia não pode mais ser suportada.
Um problema ainda maior, e que você quase nunca ouve falar, é que neste momento muitas organizações ainda estão criando o legado do futuro. Hoje em dia, está se tornando cada vez mais fácil implementar novos softwares, mas ninguém sabe por quanto tempo esse software permanecerá popular e se ele será tecnicamente suportado. Isso se tornou um problema mais ou menos aceito.
A única maneira de evitar a criação de um novo legado, é modernizando seus aplicativos de negócios com uma plataforma de low-code para sistemas Core que é capaz de mudar automaticamente para uma tecnologia diferente. Se você continuar a desenvolver-se com tal plataforma, é garantido que a tecnologia em que o software roda sempre será mantida atualizada e que nenhum novo legado será criado. Em outras palavras: uma solução definitiva para o problema do legado.