Migração de sistemas legado ou mal estruturados – Parte 2

primeiro artigo da série sobre migração de sistemas legados ou mal estruturados gerou vários comentários, recebi centenas de e-mails com perguntas e sugestões, o qual agradeço a todos que até aqui contribuíram, o feedback só vem a ajudar na evolução dos artigos sobre o tema, continuem publicando seus comentários.

Com a diversidade de tecnologias nos dias de hoje, está cada vez mais difícil decidir qual utilizar e principalmente saber por quanto tempo a tecnologia escolhida nos dará o suporte necessário, vamos neste artigo abordar a avaliação de tecnologias e fornecedores, assim como plataformas.

Avaliando tecnologias e fornecedores

Hoje temos inúmeras tecnologias, desde Open Source, gratuitas e comerciais, algumas suportadas por grandes fabricante de software e outros por aqueles que chamamos membros da comunidade, há também aquelas com muito pouco suporte e que tem sua evolução comprometida ou até mesmo já foram descontinuadas.

Escolher tecnologias sólidas e que tenha o suporte de empresa ou grupos comprometidas com sua evolução é fundamental. Obviamente todos tendem a escolher o que é gratuito, lembre-se que nada nada é grátis, tudo tem um custo que mais cedo ou mais tarde você estará pagando.

A avaliação da tecnologia está diretamente ligada a arquitetura a ser adotada em seu novo projeto. A evolução tecnologica nos últimos 10 anos foi tanta que se tornou impossível ter uma solução baseada em apenas uma tecnologia, fornecedor, plataforma e muito menos uma linguagem, nos levando a uma maior cautela na hora da escolha.

Além de uma avaliação técnica é SUPER importante avaliar diversos aspectos da empresa, como por exemplo:

  • Quais os clientes desta empresa? No website da empresa deve constar casos de sucesso, use seu network e valide os clientes desta empresa e o que eles pensam da tecnologia.
  • O que os clientes falam ou pensam da empresa? Um bom lugar para saber isso são os foruns de discussão das empresas, a maioria tem um e se não tiver, procure no Google. Procure se certificar das informações que você venha encontrar com profissionais que conheçam esta empresa.
  • Qual o RoadMap? Procure saber junto a empresa qual o RoadMap para as respectivas tecnologias que você venha a utilizar, além disso se possível uma conversa para saber mais a fundo sobre este RoadMap, eu diria que tecnologias que não tenham um horizonte definido para os próximos 5-10 anos, devem ser descartadas.

Esses são alguns aspectos que considero importante em uma avaliação, obviamente não são os únicos, entretanto se ao avaliar uma empresa e ela for mal nesses 3 pontos, você já pode descartá-la.

Estamos conectados

Integrações entre sistemas é algo que não foi inventado hoje, nossos usuários não estão mais sentados e obtendo informação no computador à sua frente e muito menos esperando o próximo dia de trabalho. A diversidade de plataformas, dispositivos móveis, notebooks e etc. gerou a necessidade de se ter a informação disponível por toda a parte.

Este cenário mudou a forma com que desenvolvemos software, o modelo Cliente/Server se tornou obsoleto e ineficaz, modelos de arquitetura distribuída surgiram no final da decada de 90, a Microsoft iniciou com a arquitetura DNA, surgiram os WebServices, SOA se tornou o padrão, os servidores de aplicação Java ganharam espaço, hoje falamos em REST e Cloud vem para nos ajudar a escalar e distribuir nossa arquitetura.

Pare por 5 minutos e pense nas arquiteturas e tecnologias mencionadas no parágrafo anterior, coloque isso em uma perspectiva para os próximos 10 anos, reflita sobre o que você já desenvolveu até os dias de hoje e se pergunte “O que eu faria diferente daqui pra frente?”.

Arquitetura baseada em serviços

Desenvolver soluções de software e não pensar em uma arquitetura baseada em serviços é como dar um tiro no pé e estar condenado ao fracasso no curto prazo. A razão porque digo isso é muito simples, estamos conectado através dos mais diversos dispositivos e a informação tem de estar disponível em todos eles, separar camada de negócio e apresentação é fundamental, sendo assim, uma boa arquitetura é chave e pode definir o rumo dos seus negócios.

Desktop ou Web

Vamos direto ao ponto aqui, assumir que suas aplicações de negócio devam ser aplicativos desktop é um retrocesso, se você pretende migrar suas aplicações legadas para a mesma plataforma que elas estão, neste caso de Desktop para Desktop, melhor não começar, fique onde está.

Obviamente aplicações de backend, processamento de dados que rodam nos seus servidores (geralmente em modo console), estes são aplicativos desktop e estes devem continuar assim, entretanto seu frontend não deve mais estar baseadas em interfaces desktop, esta é minha recomendação.

A Web evolui demais e hoje não temos as limitações do passado com browsers, uma solução Web traz flexbilidade para a empresa, reduz seu custo operacional, abre as portas para novos modelos de comercialização de software (SaaS) e muito mais, pretendo abordar em detalhes este tema em outro artigo.

Mobile

Em algum momento você terá de suportar uma ou todas as três plataformas móveis do mercado (iOS, Android e Windows Phone), em um curto espaço de tempo você vai saber com base no feedback dos clientes ou na necessidade do mercado que sua solução atende.

Existe uma grande discussão entre apps nativas ou web para dispositivos móveis, isso vai depender muito do tipo de aplicativo que você deve desenvolver. Inicialmente desenvolva apps nativas, pois ainda existem limitações com relação a web apps em Mobile, em alguns casos será melhor utilizar um modelo híbrido onde a sua app nativa irá chamar páginas webs, o qual é uma boa opção quando você precisa de maior flexibilidade.

Um aviso importante, não decida que suas apps para mobile serão todas web porque simplesmente você quer economizar com a assinatura anual da Apple de U$ 99 ou a da Google para Android que custa U$ 30, chamamos isso de economia porca.

Em breve pretendo publicar um artigo sobre o tema apps nativas vs web e seus respectivos pros e cons.

E agora?

Reuna sua equipe e converse com eles sobre essa potencial migração, compartilhe com eles a ideia de uma arquitetura distribuida, o suporte a dispositivos móveis, pergunte quais os benefícios e problemas que uma nova arquitetura deveria trazer.

Esta conversa com o time é uma oportunidade para aprender mais sobre os problemas existentes, o que pode ser melhorado, quais as vantagens competitivas que uma migração pode trazer para a empresa e assim por diante.

Faça esse exercício, enquanto isso vou preparando o próximo artigo.

4 respostas
  1. Marcos Paulo dos Santos
    Marcos Paulo dos Santos says:

    Olá Andreano, muito bom artigo; Para quem respira tudo isso eu tenho certeza que é essencial reavaliar a aplicar os processos do texto, mas no meu caso onde vivo no mundo real isso é utopia pois vejo cada vez as pessoas e empresas sempre desvalorizando o nosso trabalho e exigindo o “melhor” sem que as vezes nem sabe para que serve.

    Responder
    • Andreano Lanusse
      Andreano Lanusse says:

      @Marco, com relação a atualização não acho não, pois mobile tem uma estrutura robusta para atualizar, muito mais fácil do que o modelo desktop que usamos no passado.

      Responder
  2. Eric Serafim
    Eric Serafim says:

    Olá Andreano,

    Tens ideia de quando irá publicar a continuação deste artigo?

    Outro ponto que gostaria de ver contigo… quanto a soluções cliente-servidor desenvolvidas em Delphi utilizando componentes de terceiros para acesso aos dados, você teria alguma sugestão quanto ao processo de migração para o modelo Saas?

    Desde já agradeço sua atenção.

    Responder

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


This site uses Akismet to reduce spam. Learn how your comment data is processed.