O low-code também é para desenvolvedores: aí vem a próxima revolução na programação
4 de julho de 2022Está em andamento uma grande mudança na forma como construímos e usamos aplicativos, e o low-code será uma característica chave.
Mesmo enquanto as plataformas e serviços modernos tornam os desenvolvedores mais produtivos, ainda há uma “lacuna de aplicação”. É a lacuna entre o código que os recursos da plataforma permitem e o código que os stakeholders desejam. As equipes de desenvolvimento estão sobrecarregadas e têm que priorizar seu trabalho, concentrando-se nos principais sistemas de negócio e nas ferramentas necessárias para trabalhar.
Não é surpreendente, então, que ferramentas de low-code tenham se tornado populares. Elas se baseiam em conceitos familiares para dar aos usuários finais um conjunto de ferramentas que os ajude a construir e compartilhar aplicações de que precisam. Os sucessores lógicos do Excel e do Access, são playgrounds que abrem acesso aos dados e fornecem maneiras de ligar aplicações e serviços, enquanto constroem experiências simples do usuário a partir de blocos de construção comuns. Você pode pensar neles como ferramentas modernas de automação de processos, capazes de extrair fluxos de trabalho das operações e transformar as ações capturadas em código.
Ferramentas de low-code como Zapier e a plataforma Power Platform da Microsoft são muitas vezes vistas como uma forma de descarregar a demanda de desenvolvimento, permitindo que os usuários construam os aplicativos de que precisam, quando precisam deles. Por melhor que seja ter uma maneira de reduzir a lacuna de aplicativos, existem limites significativos que tornam impossível olhar para ferramentas de low-code de forma isolada.
Gerenciando APIs
O que muitas vezes é esquecido na corrida para o low-code, é que no fundo, é uma tecnologia de fluxo de trabalho e integração, e isso significa construir e gerenciar pontos finais. Aqui, as equipes de desenvolvimento existentes se tornam essenciais, pois precisam ser encarregadas de fornecer APIs gerenciadas para aplicações e serviços existentes. Enquanto os modelos de APIs baseados em REST utilizados pela maioria das ferramentas de low-code, são relativamente fáceis de implementar e suportar, esse processo introduz um novo conjunto de problemas: quem tem acesso a esses APIs, e quanto podem acessar através deles?
Você não pode implementar soluções de low-code sem alguma forma de gerenciamento de API, vinculada à sua plataforma de identidade existente. Controles de acesso baseados em funções e aceleradores gerenciados serão necessários para garantir a segurança e integridade dos dados. Você precisa ter certeza de que os dados protegidos só podem ser acessados por aqueles que precisam deles, e que muitos usuários não afetarão as operações dos sistemas de linha de negócios. Ao tornar o gerenciamento de API parte de seu conjunto de low-code, os usuários que precisam de acesso aos APIs podem ser provisionados usando processos simples de autosserviço, com contas não utilizadas, para evitar a perda de dados.
Trabalhando em equipe
Depois, há a questão do low-code sendo desenvolvido de forma isolada. Muitas vezes os ativos são criados várias vezes, perdendo os benefícios da reutilização e da portabilidade do código. Parte do problema é que muito low-code é desenvolvido em ambientes proprietários, sem integração com sistemas de controle de fonte, ou com ambientes de codificação social como o GitHub. Mesmo o ambiente original de low-code, Excel, está se afastando do modelo proprietário, com sua nova função LAMBDA que permite compartilhar blocos de código entre diferentes projetos.
O que está claro é que low-code é código, mesmo que seja gerado em uma tela visual, de arrastar e soltar. Precisamos tratá-lo da mesma forma que tratamos o código em nossos principais desenvolvimentos empresariais, garantindo que ele seja seguro e confiável e que, onde possível, o conhecimento usado para construir essas aplicações não seja perdido e possa ser compartilhado com outras equipes.
As primeiras ferramentas de low-code saltaram por cima de muito do que era essencial para isso. Sim, você poderia construir processos ao seu redor, com revisões de desenvolvedores e outros marcos, mas essa abordagem atrapalha os benefícios óbvios do low-code código, colocando obstáculos no caminho do rápido desenvolvimento de aplicativos que podem ter apenas alguns meses de vida planejada.
Trazer low-code para ferramentas de desenvolvimento em larga escala, permite que você comece a tirar proveito das habilidades de diferentes partes da organização, construindo o que está se tornando conhecido como “equipes de fusão”, onde diferentes grupos trabalham juntos para construir um aplicativo ou serviço que resolve problemas específicos. Cada membro de uma equipe de fusão terá uma responsabilidade diferente: um pode ser o usuário final, um desenvolvedor de low-code, um API de serviço de gerenciamento. Não há uma estrutura fixa para uma equipe como esta; ela é composta das pessoas necessárias para uma tarefa específica. Eles não precisam nem mesmo se encontrar pessoalmente – um canal de Slack ou de Equipes para o projeto pode muito bem ser suficiente para a maioria das interações comuns.
Low-code como código
Novas ferramentas começaram a mudar isso, trazendo novos conceitos de gestão e novas formas de compartilhar código. Um desenvolvimento chave é um afastamento do ferramental puramente gráfico, com o desenvolvimento de novas linguagens que encapsulam muito do que pode ser feito com ferramentas gráficas, e que nos permitem construir nosso desenvolvimento de low-code em dutos CI/CD e ferramentas de codificação social como o GitHub.
Essas novas linguagens são mais adequadas para ambientes de low-code, construindo a partir de conceitos como consultas SQL e fórmulas Excel. Elas são rápidas de entender, usando uma mistura de conceitos de programação tanto declarativos, como funcionais. Os usuários ainda podem trabalhar usando seus ambientes familiares de desenvolvimento gráfico, salvando o código resultante em seus repositórios git automaticamente. Enquanto isso, os desenvolvedores podem rever rapidamente esse código em suas IDEs ou editores de código. Não há contexto de troca, e todos recebem as ferramentas necessárias para fazer os trabalhos que precisam fazer. Os desenvolvedores podem então usar pipelines CI/CD para testar rapidamente o código antes do lançamento, procurando por showtoppers e outros bugs críticos.
Transformar low-code em código permite que você tire proveito de uma nova geração de assistentes de codificação baseados na aprendizagem da máquina. Tecnologias como o modelo Codex da OpenAI podem identificar padrões comuns em código e fazer sugestões baseadas em como outras aplicações resolvem problemas similares. Se, digamos, um aplicativo de low-code precisa de um controle de grid conectado a um sistema ERP, ele pode fazer sugestões de como construir strings de conexões apropriadas ou como melhor formatar uma consulta.
É uma abordagem que ainda está muito em seus primeiros dias, mas que mostra promessa. Não é tanto ter um código de escrita AI para você, é ter um programador de par baseado em AI que faz sugestões sobre como melhorar o código. À medida que você aprende como construir aplicações de low-code, é um conjunto de rodas de treinamento que você pode lentamente tirar, reduzindo a dependência tanto da IA quanto dos recursos do desenvolvedor.
É possível ver como isto acaba, com os desenvolvedores de sistemas principais construindo APIs, AIs refinando como estas são utilizadas e usuários seguindo rapidamente suas sugestões para construir aplicativos de alta qualidade que funcionam bem e não perturbam os outros usuários.
Estamos nos primeiros dias de uma grande mudança na forma como construímos e usamos aplicativos, e o low-code será um fator-chave nesta nova revolução. A relação entre low-code e o desenvolvimento de aplicativos mainstream precisa ser uma relação próxima. No entanto, com low-code visto como uma forma de responder à falta de recursos de desenvolvimento, é uma relação que precisa ser gerenciada cuidadosamente. Portanto, é bom ver organizações reconhecendo a importância de um gerenciamento eficaz de API, do uso de ferramentas que melhoram o compartilhamento de código, de novas estruturas de equipe que cruzam fronteiras organizacionais e, finalmente, do uso da aprendizagem de máquinas para reduzir riscos e aumentar a produtividade.
Leia o artigo original em Ingles no site zdnet.com