Low-Code e Modernização de Aplicações

Low-Code e Modernização de Aplicações

Modernizar é algo intrínseco do ser humano e natural para a nossa evolução, o que poucas pessoas sabem é que as ferramentas low code podem trazer ainda mais agilidade no processo de modernização de aplicações.

Para você ver como modernizar é algo cotidiano imagine a sua cozinha e veja quantas ferramentas você utiliza para realizar uma simples tarefa. Pode ser um abridor de lata ou um saca-rolha, ambos nos ajudam a realizar tarefas e no decorrer dos anos foram se modificando e modernizando.

Vamos usar o saca-rolhas como exemplo. Os primeiros a serem fabricados eram manuais em formato de T, que até hoje existem, mas conservam uma técnica de utilização muito rudimentar e pautada na força humana. A indústria vinícola, no decorrer dos anos, modernizou esta ferramenta produzindo modelos mais práticos e que não exigem esforço físico. Hoje, há uma infinidade de opções de formatos e modelos, indo dos mais básicos até os automáticos. Mas a função de todos é a mesma: extrair a rolha da garrafa de vinho.

Modernizar nada mais é que organizar sistemas, utilizando métodos, mecanismos ou equipamentos modernos; é também adaptar-se às práticas modernas.

Pedimos desculpas pelo trocadilho do poema de Fernando Pessoa, mas modernizar é preciso. A modernização dos sistemas legados é essencial, o mercado se tornou tão ágil que a transformação digital não é mais um diferencial, mas sim um imperativo para a sobrevivência.

Segundo a Gartner, um sistema legado é qualquer aplicação com base em tecnologias antigas, mas que ainda possuem papel funcional dentro da empresa. Um sistema legado nem sempre é definido pelo tempo de uso. Pode ser devido à falta de suporte ou a incapacidade de atender às necessidades da organização.

Steve Jobs, em entrevista em 1981, comparou o computador pessoal com uma bicicleta e ao ser questionado pelo repórter, ele explicou:

“Li na revista Scientific American sobre uma pesquisa que mediu a eficiência de locomoção de várias espécies do planeta e as classificou. O condor venceu, pois, utilizou menos energia e tempo para ir do ponto A ao B. O ser humano teve uma colocação inexpressiva, ocupando o terceiro lugar da lista. Mas decidiram testar novamente a eficiência do homem andando de bicicleta, e conseguiu ter duas vezes melhor performance que o condor. Essa pesquisa ilustrou a habilidade do homem em criar ferramentas. Com esta analogia, o computador está pavimentando o caminho para a bicicleta do século XXI e amplificando uma habilidade diferente que o ser humano possui. Agora estamos na parte mecânica da inteligência, pois esses dispositivos podem libertar profissionais de esforços árduos e permitir que trabalhem no nível conceitual, no nível criativo.”

De fato, muita coisa mudou de 1981 para 2021. Mas o conceito central da ideia de Jobs ainda é muito atual: criar (ou modernizar) ferramentas para liberar tempo para trabalharmos de forma criativa.

O que é Modernização de Aplicações?

Novas ideias são os primeiros passos para a inovação. No entanto, para a execução com eficácia é necessário um sistema de tecnologia modernizado, com agilidade e recursos de análise de dados.

A modernização de aplicações é o processo de transformar os aplicativos legados existentes e modernizar sua infraestrutura de plataforma, arquitetura interna ou recursos. Essa substituição ou atualização por recursos modernos se alinham melhor às demandas comerciais atuais.

Isso pode ser feito de diversas formas, desde desenvolver novos recursos para sistemas já existentes, substituir processos e aplicações por maneiras mais inteligentes de realizar uma tarefa (a Inteligência Artificial, por exemplo, permite automatizar tarefas manuais simples) ou criando do zero aplicações antigas aplicando recursos modernos somente disponíveis agora.

Modernização: todo mundo precisa

A discussão em torno da modernização de aplicativos está focada muitas vezes na arquitetura monolítica.

Usando uma analogia não técnica, imagine uma bloco de mármore para esculturas. As formas vão sendo lapidadas e após finalizado é difícil realizar ajustes ou mudanças. Isso é monolítico.

A arquitetura monolítica é um sistema único que não pode ser dividido e roda em apenas um processo. É uma abordagem tradicional que a aplicação de software possui diferentes componentes ligados a um único programa dentro de uma plataforma. Ou seja, quanto maior for a aplicação, maior será a dificuldade para solucionar problemas e adicionar novas funcionalidades rapidamente.

Os aplicativos legados costumam ser monolíticos e possuem duas características que os tornam desejáveis de modernização: são difíceis de atualizar e caros de escalar.

Em contraponto a arquitetura monolítica, surge uma opção mais viável e barata com diversos benefícios: a arquitetura de microsserviços.

Vamos continuar a analogia para você visualizar a diferença: é como se pegássemos a escultura que seria criada e dividirmos em vários pedaços apartados e independentes um do outros.

A arquitetura de microsserviços é a estrutura da aplicação criando uma coleção de serviços. Desta forma, a ideia central é separar os sistemas para que cada um acesse uma camada do banco de dados ou algum serviço externo. Assim, os componentes são menores, desacoplados e podem ser implantados e escalonados independente uns dos outros.

Recursos modernos de Cloud Computing (nuvem) e de Devops, como “infraestrutura como código”, também são parte central da modernização de aplicações.

Arquitetura monolítica x Arquitetura de microsserviços


Low-Code e Modernização de Aplicações
Fonte: IBM, 2019

Os benefícios da modernização de aplicativos geralmente pode ser resumidos em:

– Melhorar a velocidade de entrega de novos recursos;
– Permitir que funcionalidades de aplicativos existentes sejam consumidos via API por outros serviços;
– Mover aplicativos para a nuvem, eliminando a necessidade e custos de administração de um servidor local;
– Melhorar a experiência do cliente final, com aplicações mais fáceis de usar e mais rápidas.
– Tornar a TI mais estratégica para o core do negócio.

No entanto, os desafios desta modernização, em geral, se resumem em custo e complexidade. Mover uma aplicação local para a nuvem pode representar uma despesa grande para a empresa. Mas, por outro lado, outros aplicativos podem se beneficiar significativamente da reformulação ou da re-arquitetura.

Assim, a chave para o sucesso na modernização de aplicativos, como quase tudo, se resume à estratégia. Desde a escolha do projeto de modernização até os recursos a serem utilizados na nuvem. Velocidade, desempenho, escala, passando pelo desenvolvimento de novos recursos, são pontos que determinam o caminho para melhorar a experiência do cliente e o ROI.

Exemplos tangíveis de modernização

A Swiss Re, maior empresa de seguros e resseguros do mundo, se destaca neste mercado altamente competitivo. No seu portfólio há aplicações em microsserviços, como um app de sinistros para seus clientes, e um aplicativo que os passageiros cujos voos estão atrasados ​​ou cancelados terão automaticamente uma reclamação registrada em seu nome, que pode ser processada em até uma hora.

Outro exemplo interessante é da Dotz, empresa de programa de fidelidade. Somente com a migração de dados do hardware para a nuvem conseguiu gerar uma redução de custos significativa, economizando R$ 800 mil por ano.

Gatilhos para Modernizar


Segundo a Gartner, há seis gatilhos que indicam motivos razoáveis para modernizar os sistemas legados e estão divididos em duas perspectivas: de negócios e de TI.

Negócios
– Adaptação:
novos requisitos da empresa ou do mercado não são atendidos pelo sistema atual. A nova demanda exige informações que não foram previstas na criação do aplicativo ou que são difíceis de implementar usando a solução atual.
– Valor agregado: a aplicação atual não adiciona mais valor ou falta qualidade nas informações que ela disponibiliza.
– Agilidade: a aplicação não é capaz de acompanhar as mudanças impostas pelo mercado, seja pela estrutura ou pelo custo e riscos.

TI
– Custo:
quando o TCO (total cost of ownership) do sistema é maior que o valor que é retornado ou economizado com o uso da ferramenta.
– Complexidade: o sistema atual impacta diretamente na manutenção e no tempo, custos elevados e dificuldade de mudança.
– Risco: quando o sistema representa diversos tipos de riscos, desde segurança, compliance, capacidade de suporte, escalabilidade e escassez de mão de obra por uso de linguagem de programação obsoleta.

Quando é hora de modernizar?

Ainda há vários fatores que podem ser abordados como motivadores para a modernização, incluindo requisitos de manutenção, necessidade de entrega mais rápida, melhor escalabilidade e segurança aprimorada. A imagem a seguir destaca os principais casos.

Low-Code e Modernização de Aplicações
Fonte: Codit, 2020 


Diferentes formas de modernizar

Para crescer, competir e se diferenciar com eficácia, as organizações precisam de desempenho máximo de seus principais aplicativos de negócios. Isso é ainda mais importante na era da transformação digital.

Mas muitas organizações estão trabalhando com sistemas legados que nem sempre funcionam bem com aplicativos de software modernos. Se isso soa familiar, é hora de explorar a modernização de aplicativos.

A decisão pode parecer simples, mas não é. Pode haver confusão sobre qual escolha é a melhor escolha para sua empresa e essa dúvida é devido à grande variedade de possibilidades no processo de modernização. Por exemplo, a Gartner descreve sete opções para modernização de aplicativos, já a Computer Associates restringe o campo para apenas cinco e o CSC (Computer Sciences Corporation) descreve nada menos que 10 possíveis abordagens.

Aqui estão os principais caminhos de modernização de aplicativos que você pode usar como base:

Rearchitect / Refactor or Rewrite
Reconstruir aplicativos envolve reescrever partes do código do zero, preservando o escopo e especificações originais. Se a empresa decide alterar  o código original para acessar uma nova arquitetura com mais recursos desejados. Agora se o processo é reestruturar e melhorar o código existente sem alterar o comportamento externo, isso é uma refatoração do aplicativo.

Sabe-se que a rearquitetura tem risco e custo moderados, os resultados são  positivos. Como exemplo, a tecnologia COBOL contemporânea está disponível e inclui vários recursos destinados a simplificar e acelerar as alterações nos aplicativos originais.

Rip and Replace
Como o próprio nome indica, essa opção elimina completamente o aplicativo original e substitui por um novo aplicativo mais adequado às necessidades atuais da empresa.

No entanto, se a razão da mudança for puramente de business ao invés de tecnologias, há possibilidade da substituição total ser arriscada e cara, além de não alcançar o cenário técnico desejado.

Rehost / Replatform
Rehosting significa simplesmente que um aplicativo é movido para outra infraestrutura, seja física ou na nuvem, sem alterar o código original ou alterar seus recursos. Se pequenas alterações forem feitas no código original ou nos recursos para migrar para uma nova plataforma de tempo de execução, isso é conhecido como reformulação do aplicativo.

Assim como acontece com a mudança de qualquer aplicativo para a nuvem, uma das principais preocupações é sempre a segurança dos dados. Além de garantir que os principais aplicativos de processos de negócios podem ser confiados a terceiros.

Data Driven

Data driven são decisões tomadas baseadas em dados. Utilizar desta cultura é aproveitar processos, métricas e o máximo do potencial existente nos dados para obter informações sobre seus clientes atuais e potenciais. Netflix, Amazon e Marvel são algumas empresas que utilizam uma abordagem data driven para criar melhores produtos e experiências para seus clientes.

Importância de dados para modernização
É sabido que a transformação digital não pode ser alcançada sem ter um conhecimento profundo do que já está acontecendo nos negócios e nas operações. Ou seja, para seguir na transformação digital é necessário conhecer bem o passado. Isso não significa apenas olhar para dados históricos, mas também analisá-los para prever possíveis cenários, bem como reconhecer e reagir a oportunidades que podem expandir os negócios.

Essa perspectiva vem de uma análise aprofundada que transforma dados internos em informações e, para isso, conectividade e integração são fundamentais. Para criar esse profundo conhecimento de negócios, as empresas devem ir além de simplesmente coletar dados para centralizá-los e combiná-los em percepções acionáveis. Muitas vezes, o processo de coleta impede as empresas de realizarem análises mais profundas quando os dados são coletados e armazenados em bancos de dados separados. Essa cultura desperdiça tempo e dinheiro das organizações, bem como as impede de usar todo o seu potencial “escondido” nos dados.

Ao analisar de maneira assertiva, você pode superar essas barreiras e desbloquear novas oportunidades de negócios para sua empresa, aplicativos e parceiros. Assim que os dados estiverem disponíveis e utilizáveis, você pode aproveitá-los, até mesmo automatizando processos, para estender os aplicativos existentes com insights para melhorar seus negócios. Se começar pela integração, a empresa terá acesso a soluções de nuvem modernas e inovadoras.

API’s para acelerar a modernização
Uma API nada mais é do que um conjunto de padrões de comunicação para acesso a um software ou plataforma baseada na Web. São como pontes que conectam sistemas. A sigla API refere-se ao termo em inglês “Application Programming Interface” que significa em tradução para o português “Interface de Programação de Aplicativos”.

APIs são padrões para construir e conectar aplicativos modernos, pois fornecem uma interface padronizada à complexidade de back-end. Além de tornar simples para uma empresa proteger, monitorar e gerenciar como os ativos digitais compartilhados são usados. Frequentemente, a inovação não surge de algo novo, mas sim de usar ferramentas existentes de novas formas. As APIs podem facilitar a organização, tornando os dados e recursos fáceis para desenvolvedores internos acessarem e reutilizarem.

Outra abordagem para a modernização pode envolver deixar um aplicativo no local, mas expor com segurança suas funções ou dados por meio de APIs. Essa abordagem, baseada mais na integração do que na migração, permite que novos aplicativos nativos da nuvem simplesmente aproveitem os recursos dos sistemas e dados existentes.

Uma pesquisa realizada pelo Google Cloud em parceria com a Oxford Economics, em setembro de 2020, com 1.000 CIOs demonstrou que as organizações com plataformas de API têm 11 vezes mais probabilidade de se classificarem “bem à frente dos concorrentes em termos de inovação digital”. A pesquisa ainda demonstrou que CIOs de empresas que adotaram APIs também foram mais propensos a dizer que seus relacionamentos impulsionam metas como agilidade (42% contra 19%), inteligência de mercado (48% contra 25%), automação (53% contra 26%) e produtividade do funcionário (49% vs. 33%).

Low-Code e Modernização de Aplicações
Fonte: Google Cloud, 2020

Como começar a Modernizar

A maneira mais importante de iniciar um projeto de modernização é também uma das mais evidentes: fazer um inventário de todas as aplicações da empresa.

As etapas da sua aplicação
Para ajudar as organizações em sua jornada para a modernização de aplicativos, David Bartoletti, vice-presidente da Forrester Consulting, recomenda as seguintes etapas:

1. Criar um case de negócios atraente. Explore as perguntas: “Por que modernizar um aplicativo agora, quem se beneficia e quais novas oportunidades isso abre?”;
2. Avaliar onde você pode encontrar as habilidades necessárias para começar a refatorar ou migrar um aplicativo;
3. Considerar que o esforço de modernização deve incluir migrações para a nuvem;
4. Determinar quais métricas devem ser usadas para determinar o sucesso da modernização;
5. Realizar uma avaliação de risco para cada opção de modernização, já que os aplicativos costumam ser essenciais para os processos de negócios mais importantes de uma organização.

Atribuir notas de importância a essas etapas
Assim que tiver uma lista, você pode começar a representar graficamente todos esses aplicativos em relação aos eixos x e y de facilidade / dificuldade e potencial benefícios (valor) se modernizados. Você também pode pensar em valor “potencial” como o quão crítico o aplicativo é para a experiência do cliente e para o futuro da sua organização.

Os aplicativos que se enquadram no quadrante superior direito dessa grade de alto valor e baixo esforço serão os candidatos mais óbvios e menos controversos para iniciar um projeto de modernização de aplicativos.

As decisões mais complicadas recairão sobre os aplicativos de alto valor que são difíceis de serem modificados. Para estes, uma estratégia com mais cautela e já validada em um cenário menos arriscado pode ajudar a ganhar segurança para realizar esse processo. Existem abordagens para a modernização de aplicativos, nesses casos, que podem reduzir o risco e o custo e, ao mesmo tempo, mover seu portfólio na direção certa.

Analisar dados – maiores problemas versus possíveis benefícios
Essas aplicações que são determinadas como tendo alto valor e baixo esforço de modernização devem ser as primeiras abordadas. Para aplicativos de alto valor que são considerados difíceis de serem atualizados, dados relacionados a erros de código, falhas de funcionamento para o usuário e bugs em geral podem ser bons aliados para tomar decisões difíceis de reestruturar aplicações.

Para organizações que decidem atualizar aplicativos, é importante observar que muitos aplicativos não precisam ser totalmente reescritos do zero. Muitas vezes pode ser estudado a possibilidade de otimização dos códigos e algoritmos existentes reescrevendo estes como paradigmas e frameworks mais modernos e performáticos, preservando a regra de negócio e gerando menos impacto operacional que uma mudança grande pode ocasionar. Mas é importante considerar que nos últimos anos muitas tecnologias e linguagens de software se consolidaram como padrões de mercado, apresentando características muito diferentes de modelos utilizados para desenvolver software há 10 anos atrás. O que pode ser um indicativo que talvez um investimento em uma refatoração completa pode fazer sentido e significar uma alta redução de custos com servidores e serviços de Cloud por exemplo. Além de que a decisão de utilizar tecnologias modernas têm sido uma estratégia utilizada por muitas empresas para reter e atrair profissionais qualificados que zelam por estar sempre atualizados com o mercado.

Tipos de Ferramentas que podem ajudar no processo de Modernização

Há diversas plataformas que auxiliam as empresas no processo de modernização. Veja alguns exemplos:  

Coleta e Análise de Dados
Google Analytics
Mixpanel
Amplitude
FullStory
Hotjar

Plataformas de Prototipação e Validação de Soluções 
Figma
Maze Design
Framer
gStudio

Construindo melhores Interfaces de Usuário

Nos últimos 15 anos, plataformas digitais tiveram um grande avanço em UX, os aplicativos possuem uma ótima apresentação com interfaces intuitivas e ergonômicas. Hoje, podemos pedir uma pizza ou chamar um uber em apenas três toques, mas o “resto do mundo” está funcionando em interfaces de usuário horríveis e desatualizadas.

Low-Code e Modernização de Aplicações
Source: Michal MalewiczMuitos desses sistemas legados foram criados antes mesmo de se considerar a experiência do usuário como um fator relevante. Esses aplicativos executam nossa programação ferroviária, aviões e aeroportos, sistema bancário e financeiro, estações de tratamento de esgoto, estações de energias, seguradoras de carros e casas.

Enquanto aplicativos modernos são ergonômicos e intuitivos, plataformas legadas exigem muito trabalho cognitivo e tempo para aprender como deve ser utilizado. E muitas vezes são quase impossíveis de dominar, deixam lacunas e possibilidades para erros — às vezes com consequências graves.

Esses aplicativos legados estão em um nível totalmente diferente de complexidade. Por exemplo, uma UI desajustada e mal projetada levou o Citibank a ter um prejuízo de US$ 500 milhões. A tela que causou a confusão era de um software financeiro chamado Flexcube similar com a imagem a seguir:

Low-Code e Modernização de Aplicações

Um subcontratado na Índia, que acreditava que preencher as informações no campo “principal” com o número da conta do Citibank, garantiria que o pagamento permaneceria no banco. Só que ele estava equivocado. Para realizar a transação corretamente, o subcontratado precisaria definir os campos “front”, “fund” e “principal”.

Como medida de segurança, os procedimentos do Citibank exigem que três pessoas assinem uma transação desse porte. Nesse caso, eram: o subcontratado, um colega seu na Índia e um diretor do Citibank nos Estados Unidos. Todos os três acreditavam que definir o campo “principal” para um número de conta interna impediria o pagamento externo.

Construir melhores interfaces e atualizar os sistemas legados não são apenas para uma melhor experiência do usuário, mas para resolver problemas complexos através de procedimentos simples, que diminuem a chance de erros e passam segurança para os usuários responsáveis pelas tarefas.

Como Plataformas Low/No Code ajudam no processo de modernização?

Algumas plataformas Low/No-Code são totalmente integradas com banco de dados externos e serviços usando APIs. Essa função facilita muito a estruturação de novas ferramentas rapidamente gerando valor rápido para os usuários finais e ganhando credibilidade para realizar mudanças através de um resultado rápido e tangível.
Atualmente, os softwares são desenvolvidos assim:

Low-Code e Modernização de Aplicações

Apenas 1 em cada 400 pessoas no mundo sabe como escrever códigos de computador. A programação em seu estado atual é inacessível para muitos profissionais. Equipes de produto enfrentam muitas dificuldades para gerenciar todas as responsabilidades de desenvolver, lançar e manter um software funcionando.

O gStudio está revolucionando a forma de criar softwares. Estamos construindo uma linha de montagem para desenvolvimento de software. Em nossa plataforma, é possível encontrar modelos de interfaces e recursos avançados para pessoas não técnicas implantarem aplicativos escaláveis. Tudo isso sem a necessidade de saber programação e sem preocupações com a manutenção de hospedagem do seu software. 

Deixar uma resposta