Do legado às nuvens — Sistemas legados no mundo SaaS

Luan Cruz
TOTVS Developers
Published in
5 min readJul 16, 2019
Photo by Ian Robinson on Unsplash

Não é só entre programadores de plantão e empresas de TI, que os assuntos big data, ciência de dados e sistemas multiplataformas circulam com bastante naturalidade. Temas comumente desmitificados pela imprensa, esses conceitos “novos” fazem parte do ambiente da maioria dos serviços em nuvem presentes no mercado (Ou deveriam, hein?! Haha).

Uma informação interessante dentre essa pilha de dados é que, só em 2018, esse mercado movimentou mais de US$ 175,8 Bilhões de dólares (isso mesmo, B de Bilhões!), e espera-se um crescimento de 17,3% para 2019, alcançando incríveis US$ 206,2 Bi, segundo a empresa Gartner.

Mas do outro lado desse mundo de dados organizados em grandes armazéns (Warehouse, para os mais íntimos), de fácil acesso e compilados, estão os sistemas legados. Esses sistemas ainda sustentam milhares de usuários e regras de negócio robustas, trazendo consigo cases famosos, histórias de sucesso de grandes empresas do Brasil e do mundo. Em casos mais antigos, softwares vendidos no modelo CDU ’s (cessão de direito de uso), com a manutenção da infraestrutura por parte do contratante.

Mas daí surge uma pergunta: Como adaptar esses sistemas a um mercado que exige rapidez, simplicidade e, principalmente, sistemas responsivos à todas as plataformas e acessíveis em qualquer lugar?

E daí começamos. Devemos nos desprender de vícios antigos e planejar a construção de um sistema remodelado, com adoção de arquiteturas novas e compatíveis com a nuvem. Se você está pensando “e se adaptarmos nosso sistema atual para darmos um jeito de colocá-lo disponível ‘online’?”… Adivinha?!

Sim, pode ser uma boa ideia! Mas calma lá, como uma transição. Vou explicar: Disponibilizar a opção de um armazenamento dos dados remotamente pode ser uma excelente opção para o seu cliente, que não necessitaria mais de uma infraestrutura própria, custosa para se manter. Pode ser excelente opção para você também, que pode ganhar um pouco mais de dinheiro com a venda de serviços (dinheiro é importante também, né?!), e, o que é tão importante quanto, pode ajudar você a entender melhor seus clientes — agora você tem acesso aos seus hábitos e preferências (através dos dados armazenados e administrados pela sua empresa). Isso, além de já preparar a engrenagem da sua empresa ao mundo das receitas recorrentes (Futuro... Ops! Presente — venda de serviços), ajudará na construção do novo sistema. Por que? Respondo essa também: estaremos em constante contato com nossos clientes, entendendo suas reais necessidades.

Eu poderia escrever várias vantagens que esse novo mundo trás, como uma estratégia comercial mais assertiva, consolidada através desses feedbacks / interações (Analise dos dados e foco no que é importante: nosso cliente). Mas isso nos leva a novos desafios (obrigatórios, eu diria), outros conceitos que devem entrar na operação (CS, Churn…), mas vamos voltar aos trilhos, deixamos isso para outro momento.

Como cases reais, temos processos famosos no Brasil, como o do ERP (Enterprise Resource Planning) mais usado pelas empresas do pais, o Protheus da TOTVS, que apresenta linguagem própria. Outrora vendido apenas como CDU, hoje a maior parte da sua receita vem através dos valores de recorrência, proveniente da venda dos seus serviços de software. Fora do país, a Microsoft traz como case um dos seus principais produtos, o tradicional pacote Office, em que é necessário comprá-lo “em definitivo” para tê-lo disponível. Já com o Office 365, temos uma soma de software e serviço, permitindo que se use seus recursos em qualquer dispositivo, sem nenhum tipo de investimento em infra, armazenando todos os dados em nuvem.

E a evolução? Novo produto? O planejamento cauteloso e a experimentação devem ser exercidos de maneira exaustiva. O redesenho da nova arquitetura, garantindo que todas demandas dos clientes sejam supridas, deve ser prioridade (Dica: Atender ao cliente não quer dizer reescrever exatamente da mesma forma que antes).

Uma coisa é de consenso geral: Não há uma fórmula mágica ou método “Passo a passo” que possam garantir o sucesso de um projeto de migração ou integração de sistemas legados à serviços em nuvem, mas há, sim, alguns caminhos básicos e adaptativos a serem seguidos para auxiliar nessa transição / evolução.

1. Entenda sua demanda e quem são seus clientes

Antes de começar a pôr a mão na massa, entenda profundamente quais problemas estão sendo solucionados e a quem está atendendo (Quem são os clientes). Seja ele, o mecânico que precisa emitir a Nota Fiscal de Serviço de uma manutenção realizada no seu carro ou o controle financeiro de uma empresa que fatura milhões por mês. E tão importante quanto, nunca esqueça os clientes internos, da sua própria empresa. Se a ideia é uma migração de clientes ou integração de sistemas, entenda exatamente o que deve ser desenvolvimento e para qual público. Compreender profundamente as necessidades, é essencial para o sucesso dessa empreitada.

2. Planeje e Planeje bem!

Antes clicar em New Project na sua IDE preferida, esta é uma das etapas mais importante dessa evolução do sistema, o planejamento. Pegar o velho papel e lápis (é bom ter uma borracha também, até porque a ideia é desenhar à mão livre mesmo, errar não é problema) e começar a esboçar no papel como seria o sistema em uma visão mais macro, definindo a arquitetura e as linguagens que serão usadas.

Exemplo de arquitetura

3. Experimentação

Com tudo planejado e as necessidades de todos os clientes (Os vizinhos de baia estão incluídos aqui, hein?!) definidas, começamos a parte divertida! É o desenvolvimento, em proporção menor, da arquitetura planejada, para garantir que tudo imaginado realmente possa a vá funcionar na prática. Teste exaustivamente o que foi planejado com POC ’s e MVP ’s. Isso minimiza os riscos e eleva, à taxas maiores, a probabilidade de sucesso do projeto.

4. Deixe o ágil agir!

Com o desenvolvimento a todo vapor, metodologias ágeis são sempre muito bem-vindas (diria até obrigatórias) para conseguir fazer toda a engrenagem se encaixar de maneira sincronizada. O Scrum, com os conceitos de Sprint, Daily e Planning, cai como uma luva.

5. Itere sempre

A iteração constante com o mundo real, alinhando se o que vem sendo desenvolvido é válido e aplicável, é obrigatória. Para erros, tenha fluxos que garantam encontrar esses erros de maneira rápida e principalmente, que você os corrija mais rapidamente ainda.

E por aí, como está sendo o planejamento para a migração ou integração entre sistema?

--

--

Luan Cruz
TOTVS Developers

Apaixonado por tecnologia, especialmente quando o assunto são produtos digitais, serviços que simplificam da vida humana.