Por Caio Klein
O mundo da tecnologia certamente está lidando com o superaquecimento da demanda de desenvolvedores, que se tornaram necessários em qualquer lugar. Consequentemente, a oferta por esses profissionais está bem aquém da necessidade.
Este é um reflexo da transformação do mundo empresarial em um espaço tecnológico onde a busca por pessoal qualificado já não é mais restrita a poucos players que vivem apenas de tecnologia. Segmentos inteiros como logística, transporte e varejo já não podem mais operar sem os sistemas e softwares que movem, coordenam e interligam seus negócios com todo ecossistema. A importância em manter desenvolvedores de software passa a ser tão fundamental como qualquer outra área crítica da empresa. E essa é uma realidade global. Profissionais com o mínimo de fluência em inglês estão sendo recrutados para trabalhar em empresas das mais diversas partes do mundo, recebendo salários em euros ou dólares e trabalhando remotamente sem saírem de suas cidades originais.
É neste cenário que uma empresa precisa buscar a maior eficiência possível de seus colaboradores, removendo do time de desenvolvimento qualquer tarefa que não seja de sua competência e munindo esse time com todo o ferramental que acelere as entregas e melhore a qualidade do software final.
Em uma análise da produtividade dos times de seus clientes, a Sky.One , startup especializada no desenvolvimento de plataformas tecnológicas para modernização de softwares de gestão, identificou que até 30% do esforço de desenvolvimento está focado em prover as integrações necessárias de suas soluções com o resto do ecossistema. São rotinas de software que basicamente utilizam os mesmos tipos de funções responsáveis pela interação com outros sistemas, manipulação e validação de dados.
Porém, como cada integração é feita de forma personalizada para cada necessidade, existe pouca reutilização de rotinas. Cada integração representa um pedaço novo de software que precisa ser desenvolvido, testado, hospedado e posteriormente mantido. Muitas vezes a integração é desenvolvida como uma extensão de um dos dois softwares envolvidos e requer um time de programadores que conheça as interfaces de ambos sistemas, bem como os detalhes do software em que a integração será hospedada.
As plataformas de integração endereçam exatamente a dificuldade em criar e manter diversas integrações sobre um mesmo software, dispensando a necessidade de desenvolvimento de código uma vez que dispõe de diversos módulos reutilizáveis por meio de uma interface gráfica onde um analista de integração pode operar e configurar todas as necessidades de uma integração.
Isto é possível graças às bibliotecas de funções disponíveis no IPaaS. Interfaces REST (Transferência de Estado Representacional), SOAP (Protocolo Simples de Acesso a Objetos), acessos a banco de dados e protocolos de transferência de arquivos já se encontram previamente construídos sendo necessário apenas a parametrização para que seja possível interagir com praticamente todo tipo de software. Além disso, um motor de transformação de dados está disponível de forma que os dados originários de um dos sistemas possam ser facilmente convertidos, enriquecidos ou adaptados para ser consumidos pelo outro lado. A construção dos fluxos de manipulação desses dados é totalmente gráfica e pode ser rapidamente operada por um técnico com conhecimento das necessidades de negócio da integração e que conheça minimamente as estruturas de dados envolvidas.
A adoção de uma plataforma de integração também representa uma interface na qual o ISV (Fornecedor Independente de Software) pode disponibilizar as formas de integração disponíveis ao seu software. Ao disponibilizar os conectores, um ISV permite que qualquer outra solução possa construir suas integrações de forma rápida e conveniente sobre as interfaces já construídas. Essa é uma forma rápida e eficiente de endereçar o backlog de integrações demandadas pelos clientes sem impactar o time de desenvolvimento da empresa.
Caio Klein é CPO da Sky.One, startup especializada no desenvolvimento de plataformas que automatizam e facilitam o uso da computação em nuvem.