Os projetos de transformação digital geralmente dependem da atualização ou substituição de aplicativos, mas isso pode frear a velocidade do progresso.

Muitos aplicativos corporativos dependem de sistemas estabelecidos, como o Java, que já existe há um longo tempo, mas ainda permanecem populares. Conversamos com Kim Weins, vice-presidente de produtos da plataforma de desenvolvimento web de código aberto Vaadin, para saber mais sobre os desafios de trazer aplicativos corporativos atualizados.

BN: Qual é a função e prevalência de Java em aplicativos corporativos?

KW: Java continua a dominar como o burro de carga para aplicativos corporativos porque é fácil de usar e pode lidar com cargas pesadas de desempenho. Java tem um enorme ecossistema de estruturas, componentes e ferramentas. Nos últimos 25 anos, as organizações criaram aplicativos usando Java, portanto, o número de aplicativos corporativos Java é enorme. Ainda hoje, Java ainda é uma das linguagens de programação mais populares (número três de acordo com RedMonk e Nação do Desenvolvedor). Com um enorme ecossistema de componentes e ferramentas disponíveis, não vejo os usuários corporativos menos satisfeitos.

BN: Quais são os maiores desafios que os desenvolvedores enfrentam ao criar aplicativos corporativos?

KW: Os dois maiores desafios que os desenvolvedores enfrentam são a produtividade do desenvolvedor e a experiência do usuário. A produtividade do desenvolvedor significa a rapidez e a facilidade com que os desenvolvedores podem criar, aprimorar e manter esse aplicativo. Melhor produtividade do desenvolvedor leva a vários benefícios comerciais importantes, incluindo custos de desenvolvimento mais baixos e tempo de lançamento no mercado mais rápido.

A experiência do usuário é uma maneira de descrever a rapidez e a facilidade com que os usuários do aplicativo podem fazer as coisas no aplicativo. Uma melhor experiência do usuário melhora as medidas críticas de negócios, incluindo o tempo e o esforço necessários para concluir as tarefas e a satisfação do usuário, o que, por sua vez, pode impulsionar a retenção de funcionários ou clientes.

BN: Quais fatores devem ser considerados quando projetando aplicativos corporativos?

KW: Os desenvolvedores querem criar aplicativos que os usuários adorem e, quando os usuários adoram um aplicativo, isso pode afetar seus resultados. Um estudo da Forrester descobriu que as empresas lideradas por design têm uma vantagem comercial significativa, com 70 por cento das empresas lideradas por design relatando ter uma experiência digital mais forte ou melhor em comparação com os concorrentes.

Os usuários de hoje são nativos digitais acostumados para auto-integração em aplicativos projetados intuitivamente e espere um excelente UX. A simplicidade pode reinar no desenvolvimento de aplicativos para o consumidor, mas na empresa existem processos de negócios complexos e, muitas vezes, muitos dados a serem apresentados.

Projetar para aplicativos corporativos exige uma compreensão sólida dos fluxos de trabalho e da função específica de cada usuário. Para aplicativos corporativos, pode ser necessário criar recursos para entrada de dados eficiente e suporte para colaboração. A mudança que precisa acontecer é uma mudança para projetar aplicativos centrados no usuário ou no fluxo de trabalho, em vez de centrados nos recursos. É assim que você cria aplicativos que os usuários adoram.

BN: Qual é o papel da modernização de aplicativos na transformação digital e na migração para a nuvem?

KW: O A primeira década de adoção da nuvem foi amplamente focada em aplicativos novos. Tudo começou com empresas sociais, de jogos e de tecnologia que tinham poucos aplicativos legados para enfrentar. Eles foram capazes de criar aplicativos desde o início usando princípios nativos da nuvem. As empresas tradicionais de todos os setores seguiram seus passos criando novos aplicativos em nuvem para atender às novas necessidades de negócios. Agora, as organizações estão indo além do que está ao alcance da mão em sua jornada para a nuvem. Eles precisam encontrar maneiras de modernizar os aplicativos existentes para atender às expectativas dos usuários hoje–e isso significa migrar esses aplicativos para a Web e a nuvem.

BN: Por que a modernização de aplicativos tem sido mais lenta do que outras áreas de transformação digital?

KW: A modernização de aplicativos é difícil. É muito para os desenvolvedores se concentrarem na manutenção de aplicativos e acho que pode ser opressor mudar o foco para a modernização. Freqüentemente, os desenvolvedores podem preferir começar do zero.

No entanto, cada aplicativo de negócios pode representar milhões de linhas de código que encapsulam fluxos de trabalho e lógica de negócios críticos. Começar de novo muitas vezes não é uma opção. Como resultado, muitas organizações precisam encontrar maneiras de aproveitar seus back-ends Java existentes, fornecendo uma interface moderna baseada na Web e a capacidade de implantar seus aplicativos na nuvem.

Embora a modernização não seja fácil, os benefícios comerciais podem ser significativos. A modernização de aplicativos pode reduzir a carga de manutenção, melhorar a agilidade ao facilitar o fornecimento de novos recursos e reduzir os custos.

Na verdade, uma pesquisa recente constatou que as empresas obtiveram uma redução de 52% no tempo de inatividade, uma redução de 45% no tempo de lançamento de novos recursos no mercado e uma redução de 12% economia de custos pós-migração após migrar sua pilha de tecnologia para a nuvem.

BN: O que os desenvolvedores devem levar em consideração ao escolher entre criar do zero ou migrar de plataformas legadas?

KW: Migrações bem feitas requerem preparação. Comece com uma avaliação de migração para avaliar as características do aplicativo, descubra as dependências no código do aplicativo e ajude a determinar se você tem recursos de desenvolvedor adequados para dar suporte à migração.

Você pode ter uma arquitetura de aplicativo forte, mas tem forte interdependência de módulos que dificultará a modernização. A interdependência pode ser operacionalmente boa, mas pode forçá-lo a se comprometer com uma abordagem de big bang em vez de uma faseada. Ambas as abordagens têm benefícios, dependendo do contexto. Uma abordagem comum que inclui os dois tipos de métodos de migração é primeiro fazer uma migração big bang que tenha como alvo a paridade de recursos e tenha menor impacto para o usuário e, em seguida, acompanhá-la com uma modernização em fases do aplicativo com alto impacto para o usuário com foco nas exibições críticas mais usadas.

Com o aumento da computação em nuvem, os aplicativos sem estado se tornaram mais comuns, especialmente para aplicativos em escala de consumidor. Essas abordagens facilitam o dimensionamento de aplicativos para cima e para baixo’horizontalmente’para atender às demandas do usuário simplesmente adicionando e removendo máquinas virtuais em um ambiente de nuvem. Pense no site de compras on-line que precisa atender a mais usuários à noite ou nos finais de semana, ou escalar para atender à grande demanda durante os picos de compras de fim de ano. Com uma arquitetura sem estado, a redução da infraestrutura à medida que a carga do usuário diminui não interrompe nenhuma sessão de compra atual do usuário. A sessão do usuário pode continuar em qualquer uma das VMs restantes.

Se seu aplicativo herdado usar uma arquitetura com monitoramento de estado, você ainda poderá implantá-lo na nuvem. No entanto, se você quiser aumentar e diminuir horizontalmente na nuvem, precisará fazer algum trabalho de desenvolvimento para permitir que as sessões do usuário se movam entre as VMs quando você reduzir. Como alternativa, você pode recriar o aplicativo com uma arquitetura sem estado.

Crédito da imagem: isak55/Shutterstock

By Maxwell Gaven

Trabalho com TI há 7 anos. É divertido observar a constante mudança no setor de TI. TI é meu trabalho, hobby e vida.