Article image
Vagner Bellacosa
Vagner Bellacosa04/02/2022 20:22
Compartilhe

Descubra o que é Software Legado

  • #Informática Básica
  • #Arquitetura de Sistemas
  • #QA

A grande confusão do Software Legados em mini tópicos.

Salve jovem padawan, Fevereiro continua com muita chuva, a quarentena nunca mais acaba e o tiozão aparece com mais um artigo, originalmente pretendia ir diretamente para meu projeto mainframe, mas surgiu um gancho sobre metodologias, que puxou um fio e o novelo se desenrolou, necessitando falar sobre um tópico cavernoso.

As vezes pensamos em seguir um rumo, mas lendo os comentários no Fórum, vejo alguns Dionitos indignados, com bases frágeis, então acabo escrevendo um novo artigo com tópicos que espero de coração ajudar.

Sem mais delongas, vamos falar sobre Software Legado, passando por histórias de antigos CPDS e seus Spaghetti Code, Monólitos, Software Quebrados e explorando abertamente o conceito de software Legado.

O que é Software Legado?

É uma expressão muito utilizada para designar Sistemas Informáticos antigos, mas que continuam em operação, atualmente tem um sentido pejorativo, em que as novas gerações de DEVs acostumados a Frameworks de Trabalho com muitas cores, sons e imagens, acabam desdenhando destes sistemas, por acreditarem em coachs e empresas de consultoria, que aspiram vender pacotes de serviços.

Claro que muitas vezes realmente são softwares monolíticos construídos sem nenhum cuidado, cheios de remendos e tecnologias obsoletas, que nem valem o trabalho de migração, devendo ser jogados na lata do lixo da empresa.

Mas na maior parte do tempo, são softwares em produção, gerando milhões de lucro a seus stakeholder, administrando base de dados com milhões de registros, muitas vezes a engenharia envolvida em sua construção, mantem softwares performáticos, econômicos em uso de espaço em disco e memória, em sintes obras de arte em bits e bytes, programas que exploram o máximo da logica matemática, com escrita elegante e codigo limpo-

Modas e modismos

Os avanços tecnológicos criam necessidades aos usuários, que por sua vez pressionam a área de informática a criar soluções para as atividades do dia a dia na empresa, trabalhei com um gestor, que sempre argumentava ao final deste pedido, a sua produtividade ira aumentar quantos por cento? O break-even deste investimento será em quantos meses?

O grande receio era tornar-se vítima de modismo e gastar recursos vitais em projetos sem relevância e perigosos para o negócio da empresa. Os ERPs são um grande exemplo deste problema, totalmente em voga nos anos 90, hoje tornaram grande monstros legados, mantidos por analistas a beira da reforma, muitas das empresas desenvolvedoras foram incorporadas a grandes grupos, restando meia dúzia delas.

Outro exemplo da virada do século, as grandes empresas utilizam Mainframe com seus terminais 3270 ou emuladores em redes de cabo coaxil, atendiam a necessidade e geravam poucas transferências de dados, com o advento da interface gráfica e posterior WEB, os usuários queriam sistemas mais user-friends com janelinhas e botões, que forçaram a criação de monstrengos intermédios entre mainframe e baixa plataforma.

Chegando aos dias atuais com a computação em nuvem e terceirização completa dos serviços informáticos, com bons e maus resultados, somente o futuro ira dizer o quanto foi acertado, não esquecendo do altamente noticiado Bug do Milênio Y2k e suas soluções miraculosas.

A roupa nova do Rei.

Um antigo conto infantil onde um Rei gaboso e vaidoso é enganado por pilantras, que vendem roupas maravilhosamente lindas, que apenas pessoas inteligentes e fabulosas poderiam ver, por fim o Rei desfila nu nas ruas de seu reino.

Antes de migrar, comprar soluções faça uma análise profunda, elabore estudos de viabilidade econômica, calcule os custos envolvidos, cuidado com os custos ocultos e veja se vale migrar para novas soluções.

Entendendo um software Legado

Vou apresentar uma lista geral com inúmeros itens, que ajudam a tornar uma solução informática obsoleta, não é conclusiva ou completa, pois como o assunto é dinâmico surgiram novos e alguns podem até ser retirados.

Mobilidade

Atualmente vivemos a era First Mobile, todos os usuários e consequentemente querem que os aplicativos funcionem em mobile, independentemente de custos e riscos associados a entrar em novos canais. Muitas vezes empresas gastam tubos, empenham-se em adquirir soluções com preços elevados, mas que ao final acabam subutilizadas. 

Os sistemas mais antigos estão limitados a tecnologia existente e muitas vezes novos canais implicam em novas soluções, que destroem performance e dificultam o fluxo de processamento original, obrigando soluções Franksteins para explorarem as tecnologias estreantes.

Escalabilidade

Ao pensarmos numa solução, a escalabilidade é um fator de extrema importância, afinal se o utilizador do Sistema, expandir seus negócios, aumentando a base de clientes, número de acesso e transações, o Sistema deve estar preparado a atendar a demanda, caso contrário tornar-se obsoleto rapidamente.

Obsolescência tecnológica

Um Sistema Informático é uma entidade viva, necessitando de um meio ambiente especifico para qual foi projetado, acontece que devido a rápida evolução tecnológica, muitas vezes o custo de equipamento alteram-se drasticamente, tornando o custo de manutenção de velhas maquinas elevados, incentivando a migração com a aquisição de novos equipamentos, obrigando a recompilaçao de códigos fontes e reinstalação de softwares, ocasionando obsolescência técnica, pois em algumas situações ocorrem conflitos com DLLs, Sistemas Operacionais e etc.

Em outras situações a própria linguagem de programação sofre alterações, que tornam velhos programas incompilaveis nas novas versões. Quando trabalhava no Banco Real, a IBM efetuou um release no S/370, que tornava o subprograma PSDATA, escrito em PL/1 e Assembler inoperante, o grande desafio e dor surgiu, devido a este programa ser utilizado em 100% das operações de cálculo de data. O Banco Real não aplicou o patch enquanto a IBM não liberou uma versão onde o PSDATA continuasse a funcionar sem erro.

Colaboradores

Mudanças tecnologias afetam o bem-estar da equipe, alterando o desempenho e quebra de produtividade, empresas com quadros de funcionários compostos por pessoas com mais senioridade, tem dificuldades em adotar novas tecnologias, o mesmo ocorre quando o mercado cria novos padrões que afetam os Sistemas Informáticos, a exemplo podemos citar o uso dos Telégrafos para envio de mensagens importantes em uso até meados dos anos 90, o Fac-símile que gradativamente o substituiu, por fim os e-mails, maquinas de escrever e editores de texto, pagers por celulares e etc. Todas estas mudanças implicou em substituir processos e procedimentos em uso durante décadas. 

O mesmo se aplica aos terminais IBM 3270 e os pools de digitação para introduzir dados em sistemas. Com o processo obsoleto o Sistema informático que lhe dava surporte torna-se legado. Com certeza ainda existem empresas com microfilmes e processos para consulta-los e backups em fitas, cartridges e outros meios de outros tempos.

Suporte

Em algumas situações criticas, o fornecedor do software vai a falência, deixando inúmeros clientes sem suporte técnico e a linguagem deixa de ter evoluções ou deploys corretivos, deixando inúmeros utilizadores órfãos com um Sistema Informático moribundo, como exemplo relembramos o Clipper, o Dbase, o Macromedia Flash Player e tantos outros.

Incompatibilidade

Um problema que tira os cabelos da equipe de sustentação é a incompatibilidade de software com outros softwares, como todos estamos carecas de saber, os Sistemas Informáticos não são estanques e incomunicáveis, mas sim trocam informações com diversas entidades, em formato de arquivos mais variáveis e por todos os meios possíveis, estes pacotes necessitam estar pareado entre o remetente e o receptor, caso os softwares sofram alterações e está conversação se quebra. 

Teremos um problema de incompatibilidade entre softwares, outro caso mais cabeludo é o caso quando se troca algum periférico do hardware e ocorre conflitos entre hardware e software deixando a equipe de desenvolvimento numa corrida contra o tempo, com muitas situações desastrosas pelo caminho.

EOL – End of Life

Este é o pior cenário possível num sistema Legado, ocorre quando o Software encontra o seu fim, em decorrência de obsolescência de software ou hardware, num cenário assim nada poderá ser feito, a não ser migrar, de preferência num processo planejado e com tempo hábil para testes e acompanhamentos.

Um momento muito triste para o desenvolvedor que trabalhou durante anos, quiçá décadas no projeto e ao final vê-lo desaparecer para sempre, sendo apagado e retirado do DataCenter. Dói muito pensar nisso.

Custo de Manutenção 

O terror do gestor de infraestrutura e desenvolvimento, ao aumentar o custo da manutenção devido à complexidade crescente do software, problemas de escalabilidade que implicam a aquisição de mais hardware e mesmo o consumo elevado de insumos para a operação diária do Sistema, situações que rapidamente tornam o Software inviável economicamente e forte candidato a EOL.

Custo de Treinamento

Um grande problema que tende a piorar em nossa geração, o custo elevado para treinar técnicos e operadores em tecnologias arcaicas sem GUI, sem multiplataforma e aparência sisuda e espartana.

A cada dia surgem novas tecnologias e metodologias de desenvolvimento, que atrai as novas gerações de DEVs catequizando e criando clubinhos, que os dificultam trabalhar com softwares legados e com a necessidade constante de criar, fazem uma pressão para o novo e abandono do legado.

Por isso uma tecnologia com poucos desenvolvedores e estudantes desta tecnologia, torna-se um candidato perfeito a EOL, por isso antes de adquirir uma ferramenta para sua empresa, verifique as tendências do mercado. 

O SAP é um exemplo perfeito, conquistou o mercado nos anos 90 e hoje luta para sobreviver ao meio de tantas mudanças, existem outros erps que sofreram do mesmo mal, alto custo de formação e baixo retorno salarial, que acabou espantando os programadores.

Refatoração

No ciclo de vida de um software é o equivalente a visitar o cirurgião plástico, toques do Dr. Pitanguy, em linhas gerais é analisar um software antigo, mantendo todas as suas funcionalidades e workflows, sob uma roupagem nova e mais performática. Uma maquiagem que estende a vida útil de um Sistema, em alguns casos durante mais de uma década. Eu participei num projeto do gênero, na Zurich italiana participei de um equipe que refatorou o Sistema de IBM Mainframe para AIX Unix.

Lentidão

É um péssimo sinal, tanta coisa pode estar envolvida, os suspeitos são muitos, desde cabos de redes, servidores, provedores de internet, hardware com anomalia e o pior de todos: SOFTWARE mal projetado, todo sistema informático é uma maravilha, no ambiente de teste, com pouca intervenção funciona que é uma maravilha, bastou passar a produção, que os problemas surgem.

Sejam problemas na base de dados, seja índices mal feitos, conflitos entre aplicações, gargalos em workflow e usuários imaginativos. E quanto mais usado, mais deteriorado fica, chegando a pontos cruciais, onde Lideres de Projeto avaliam refatoraçao, remodelação, migração e em casos graves EOL.

Multiplataformas

Nos anos 90 a expressão usada eram Canais: canal web, canal emulador, canal móvel, cana pc e etc. Atualmente o mobile é o rei, como dizem First Mobile, caso o sistema não tenha sua versão em APP em alguma lojinha da moda, Android APPs, Microsoft Apps e ou na mais exclusiva e cheia de nove horas IOS Apps.

É uma sentença de morte, o Sistema Informático que não foi previsto em operar em  Multiplataforma está com seus dias contatos, rapidamente chegar uma empresa de consultoria com uma solução baratinha para ser implementada e aí temos novamente EOL.

Incompatibilidade

Este problema é um pouco mais raro, porem acontece com as melhores famílias, imagine um Sistema Informático que utiliza um periférico especifico para a introdução de dados, por exemplo o PDA Palmtop, era o queridinho no princípio da década de 2000, a Datarroba que o diga, quando a empresa deixou o suporte dos equipamentos, os softwares que o utilizavam ficaram incompatíveis com o novo sistema Android e com isso EOL.

Não atualização

Um risco que surge em utilizar softwares Open-Source, a moda do momento, dominando corações e agregando equipes pelo mundo afora, porém como não tem um suporte oficial garantido com Garantias Legais, inesperadamente aquele software que suporta seus negócios deixa de ser atualizado, e as contas para manter o projeto vivo é absurda, logo, a solução para softwares sem atualização é EOL.

Flexibilidade

Um problema em softwares antigos e construídos sobre outros paradigmas e sua falta de flexibilidade a mudanças, principalmente devido a equipe de sustentação do software, o que gera grande problemas quando surge a necessidade de alteração estrutural, a resistência das pessoas em modificar, torna-se o software um sério candidato a EOL.

Novas funcionalidades

Como sempre digo, perdoem a repetição, mas Sistemas Informáticos são entidades vivas, precisam-se adaptar-se, modificarem-se, evoluírem e apenas os mais aptos sobrevivem. Um programa que não esta apto a receber novas funcionalidades com certeza será substituindo por um programa da concorrência.

Se a empresa for incapaz de agregar novas funcionalidades a seu parque tecnológico, com certeza morrera, lembro-me sempre do Clipper que tinha limitação ao uso de memória baixa, um programa crashava e não compilava se ultrapassasse os 640 kilobytes de memória.

Falhas de Segurança

Um gestor de projetos não deve dormir no ponto, estar atento ao que acontece no submundo da informática, vendo a DeepWeb, os newsletters de segurança, atualizando softwares de apoio e mantendo backups a postos.

Nunca sabemos quando seremos atacados por hackers e outros vigaristas virtuais, por isso nosso parque informático necessita estar seguro, um sistema informático com falhas de segurança deve ser remendado e caso os custos sejam proibitivos, sabem a máxima, EOL nele.

Custos Operacionais

Em alguns momentos o Software está redondo, atende a todas as necessidades, usuários e desenvolvedores estão felizes, mas nem tudo é céu azul, nuvens de tempestade surgem no horizonte. 

Qual o problema? Custos operacionais elevados, por alguma razão a ser analisada, os custos de operação são elevados, sejam na aquisição de insumos, seja nos equipamentos que necessitam de ajustes ou até mesmo no consumo de eletricidade ou até mesmo os custos de manutenção que conduzem o Sistema para o EOL.

Manutenção Cara

Este é o grande problema dos softwares legado do ambiente IBM Mainframe, o aluguel da máquina é elevado, os custos são calculados em MIBS, a mão de obra é rara, com custos elevadíssimos em Hora/Homem e as novas gerações não curtem a tela verde dos emuladores 3270. Forçando as grandes empresas migrarem seu parque informático para a Cloud Computer, empresas como Microsoft, Google e Amazon estão na liderança destes Data Centers modernos, que na minha modesta opinião não são tão diferentes dos antigos CPDs da IBM.

Um longo caminho

Agradeço sua atenção até este ponto, foi um longo artigo, tantas definições, ideias para apresentar o que é um Software Legado, saiba que o seu fabuloso projeto de hoje , construído no Estado da Arte da Tecnologia contemporânea um dia será o Software Legado, maltratado e vilipendiado e alguns casos até odiado.

Conclusão,

Jovem padawan, quanto mais mergulhar no Mundo das Tecnologias, mais contato com Software Legado encontraras, o cemitério das tecnologias ultrapassadas é imenso, o memorial das Linguagens de Programação esquecidas e largadas renderia um artigo com milhares de páginas.

O meu objetivo nestas palavras foi apresentar alguns elementos que tornam o Software obsoleto e implica em sua eliminação. Lembrando que muitas vezes as funcionalidades são reescritas em novas linguagens, velhos bancos de dados migram em formato semelhante ao anterior. Então em tese não desaparecem apenas se transformam.

Esteja atento as tendências e surf a onda, mas cuidado para não se tornar um especialista em tecnologia ultrapassada, pois no primeiro momento seus rendimentos serão elevados, mas no futuro não encontrara projetos para aplica-los. 

Espero ter ajudado ate o próximo artigo.

image Referência Bibliográfica

WIKIPEDIA - A Enciclopédia Livre, faça parte, ajude atualizando ou criando verbetes http://www.wikipedia.org

Google Books um repositório com milhões de livros digitalizados https://books.google.com/

Internet Archive, tudo aquilo que um dia foi publicado veio parar aqui. https://archive.org/

Biblioteca de ícones https://www.flaticon.com/

image

image Mais momento jabá, um passeio noturno pela bela cidade de Guararema/SP as margens do Rio Paraíba do Sul, com a majestosa Maria Fumaça e seus passeios de Trem a Vapor nos antigos trilhos da Ferrovia Central do Brasil, uma pacata urbe com suas tipicas casas do Brasil de antigamente , visite meu vídeo e veja para onde fui desta vez : https://www.youtube.com/watch?v=U2KC2tebxNQ

Bom curso a todos.

image https://www.linkedin.com/in/VagnerBellacosa

image https://github.com/VagnerBellacosa/

Pode me dar uma ajudinha no YouTube?

image https://www.youtube.com/user/vagnerbellacosa

Compartilhe
Comentários (1)
Wenderson Anjos
Wenderson Anjos - 05/02/2022 23:37

Oooh meu deus, que postagem fabulosa! Li todo o artigo e te digo uma coisa: Este foi o melhor artigo que eu vi até agora! Muito obrigado por compartilhar este conhecimento e realmente concordo com muitas coisas que você disse. Eu me amarro por estas coisas antigas, inclusive legadas. Um exemplo é o Windows 7 que daqui em breve se cairá na EOL, mesmo que possa atender muitas de nossas necessidades.

Eu vejo que o conceito de abstração está cada vez mais presente na nossa área, estamos em um nível Macro das operações, onde não sabemos mais nada do que de fato acontece por baixo dos panos. A inteligência artificial está cada vez mais evidente e bem próxima de substituir toda a mão de obra humana. Vemos tantos exemplos de Softwares que você quase nem precisa mais programar, é só o tal do "Arrasta e Solta", tudo que era projetado e organizado a nível micro, foi se omitindo pelo tempo e vai chegar uma hora, que se isso piorar (Na evolução tecnológica), programadores não mais serão contratados e sim as próprias máquinas que irão fazer todo o trabalho por nós.

Aí surge um grande problema a nível de usuário e a nível de conhecimento: A nova geração de usuários não querem usar mais computadores de mesa, sempre vão preferir a mobilidade em todas as questões, logo não poderão se desenvolver em conhecimentos profundos em sistemas informáticos, já que isso é mais usual em PCs Desktops. Aqueles que já programam ou que estão entrando na área agora, ou seja, a nova geração de programadores, estão se alinhando cada vez mais as necessidades das empresas, empresas que estão mais focadas na produtividade e lucratividade, logo estes programadores vão utilizar todo o processo de abstração para resolução de problemas, focando 100% no problema social e 0% no funcionamento real das operações. E isso vai se ocorrendo, como um processo natural da tecnologia, que é abstrair até não surgir mais nada do que existia, as máquinas progridem e os humanos regridem, como uma balança antiga.

Então eu acho fortemente que todos os desenvolvedores, sejam eles iniciantes ou não, deveriam ter mais suportes (Didáticos e profissionais) a estudos de linguagens mais antigas e mais legadas, como também do próprio Assembly, já que o Assembly por mais que é uma linguagem bem antiga, ela ainda está por trás de tudo que criamos hoje, não importa o nível de evolução da tecnologia, ela estará em tudo. E se os desenvolvedores aprendem esta linguagem, eles de fato entenderiam qual é o verdadeiro funcionamento das operações tecnológicas, não a nível de macro, abstrativa, estruturada... mas a nível micro, imperativa, binária. Todos os procedimentos que um dispositivo e um sistema executa, desde ao ligar e inicializar até a operar e fornecer serviços de softwares, via rede, serial ou em qualquer meio, tudo seria compreendido da forma mais prática possível.

Por isso eu sou apaixonado por esta linguagem, além das outras de alto-nível que eu já programo. E administro um curso no Youtube incentivando cada vez mais os devs a entrar no Assembly e compreender a tecnologia como um todo - Hardware vs Software - E a ponte que conecta os dois, que se trata do sistema operacional, meu principal objeto de estudos e ensino. E tenho um sistema operacional que estou desenvolvendo a 2 anos, e que também estou ensinando neste curso. E o meu maior medo é devido as atualizações rápidas dos computadores, que por consequência após o meu término, ele nem consiga executar mais nos novos computadores, fazendo com que eu tenha que reescrevê-lo do zero e ter perdido anos de desenvolvimento, por isso eu já estou com um pensamento de adaptá-lo, para computadores antigos e atuais, como sistema de retro-compatibilidade, igual os processadores da Intel fazia em suas versões pra executar programas assembly antigos, porque se não, o KiddieOS (meu sistema) antes de estar pronto, já estaria fadado a EOL!

Mas é isso, amei seu conteúdo e quero te acompanhar em seu canal! Eu gostaria muito de ver assuntos como estes, de linguagens e conhecimentos primordiais/ancestrais da tecnologia em seus vídeos! Obrigado Vagner.