“O low-code é uma caixa preta e vou bater na parede em algum momento. É limitado e só funciona se você seguir um modelo. Não é codificação de forma alguma”. Esses foram alguns dos meus pensamentos há dez anos, antes de decidir dar uma chance ao low-code. Eu estava muito cética e decidi aprender mais, pois queria ter conversas informadas sobre o assunto. Mudei de ideia e hoje sou uma grande defensora do low-code.
Alguns anos depois, e pensando um pouco mais sobre esse controverso tópico, percebi que muitas dessas objeções ao sistema são desencadeadas pelo fato de que o low-code significa muitas coisas para muitas pessoas. Muitas ferramentas de “low-code” visam diferentes desafios e exigem diferentes níveis de proficiência técnica, como geradores de sites, criadores de formulários, conectores de API, criadores de banco de dados, automação de fluxo de trabalho e muito mais.
Com ferramentas como a OutSystems é possível gerir todo o ciclo de vida de desenvolvimento de conteúdos, para aplicações empresariais em geral, celular ou web. Como uma desenvolvedora orgulhosa, decidi compartilhar as razões pelas quais adotei o low-code:
1. Extensibilidade do código
Para alguém que sempre gostou de “estar no controle”, primeiro lutei para mudar meu mindset para usar uma linguagem visual. Ser capaz de estendê-lo com meu próprio código foi uma das coisas que me fez ficar com ele. A OutSystems é aberta por design para permitir que todas as camadas de aplicativos sejam estendidas com códigos “tradicionais” personalizados: front-end, back-end, banco de dados e integração.
Também me lembro de ter construído uma funcionalidade de upload de arquivos com JavaScript em cima da plataforma da OutSystems sem perceber que poderia simplesmente arrastar e soltar um widget e preencher alguns parâmetros para obter o mesmo resultado. Isso me fez perceber que passar por aquele processo era importante para reconhecer a flexibilidade da plataforma.
2. Fácil Integração
Nenhum produto de software existe em silos e precisamos constantemente nos integrar com bibliotecas de código aberto, APIs de terceiros, armazenamentos de dados legados e muito mais. Com cada integração vem um novo código para lidar com os requisitos específicos de cada dependência, e esse código requer manutenção sempre que a dependência muda. A OutSystems abstrai o trabalho clichê fornecendo modelos e conexões prontas para serviços e bancos de dados populares como Salesforce, SAP, Microsoft, etc. E todos esses conectores prontos para uso são projetados para reutilização, manutenção e facilidade de mudança.
3. Redução de Trabalho Repetitivo
O desenvolvimento de software é uma forma de auto expressão e pode ser incrivelmente recompensador, especialmente quando você supera obstáculos. Não há nada mais emocionante do que um momento “eu construí isso!”. A desvantagem é que o desenvolvimento de software é um trabalho manual e pode ser muito repetitivo. Isso drena nossa energia e nos faz cair em um vórtice de frustração. Então, quando comecei a explorar com a OutSystems, percebi que a maioria das tarefas de desenvolvimento óbvias/padrão estavam sendo tratadas fora da caixa: autenticação, autorização, validações de formulários, segurança básica, tratamento de erros, telas CRUD, etc. E isso ocorre pois, como plataforma, a OutSystems é uma linguagem visual que abstrai outras linguagens de forma semelhante a Java ou C# abstract Assembler.
4. Fazendo as Coisas
A natureza do “arrastar e soltar” do low-code e seus recursos de implantação rápida permitem que os desenvolvedores montem não apenas um protótipo, mas uma solução funcional muito rapidamente. Assim, tendo um protótipo rápido instalado e funcionando, os usuários podem dar seus feedbacks de maneira muito mais direta e nós, desenvolvedores, podemos transformar esse “protótipo” no produto final mais rapidamente, alinhado com as necessidades do usuário desde o início. Este é um divisor de águas e realmente afeta o momento “mão na massa”.
5. Front-end, Back-end e Implantação em uma Plataforma
A menos que você seja especializado em uma área específica, ser um desenvolvedor de software significa que você é um generalista e trabalha com diferentes ferramentas, tecnologias e linguagens de programação para lidar com front-end, back-end e implantação. Isso pode ser avassalador pois o mundo da TI está em constante evolução e precisamos aprender coisas novas o tempo todo. Com a OutSystems, conto com uma única ferramenta para construir UI, bases de dados relacionais, estruturas de dados, lógica e integrações com ligação a sistemas externos, tudo visualmente e com a flexibilidade de entrar no sistema quando necessário.
6. Experiência Unificada ao Desenvolver para Diferentes Plataformas
O desenvolvimento de software é um mundo muito complexo e, além do mencionado acima, os desenvolvedores precisam lidar com várias plataformas – web, desktop, híbrida, móvel, iOS, Android, etc. Então, pela natureza focada em web do low-code e tecnologias móveis híbridas (a tecnologia híbrida permite que os desenvolvedores criem aplicativos móveis nativos com HTML e JavaScript), o low-code está posicionado exclusivamente para gerar aplicativos móveis e de desktop a partir de uma única base de código.
7. Segurança
A segurança é uma das principais preocupações na criação de software corporativo e envolve muito trabalho em diferentes frentes. Eu aprendi com ferramentas de low-code coisas como usar bibliotecas e estruturas seguras e atualizadas, acesso seguro a bancos de dados, lidar com exceções e erros, autenticação e autorização, técnicas de codificação e escape, auditoria de aplicativos e sistemas, em que todas foram realizadas e manipuladas ao longo do caminho por mecanismos prontos para uso.
8. Comunidade
Por último, mas não menos importante, confesso que quando comecei, parte de mim sentia que estava traindo a aliança dos programadores, mas depois encontrei a Comunidade OutSystems e foi aí que percebi que existem tantos pro developers como eu que aceitaram e deram esse passo. Embora o número de desenvolvedores que usam low-code esteja crescendo ano após ano, eles ainda são superados em número pelos desenvolvedores tradicionais. Assim, as comunidades que se formam em torno dessas plataformas são naturalmente fortes e solidárias.
Nota final
Low-code não significa fácil, mas com certeza significa mais rápido e eficiente. Habilidades técnicas profundas ainda são necessárias para ter sucesso nessas plataformas ao criar aplicativos de nível empresarial. Ao longo dos anos, o low-code ganhou força e mais empresas aprenderam sobre seus benefícios em relação às práticas de codificação tradicionais. Ele permite que você mantenha os elementos críticos das soluções de codificação tradicionais, como flexibilidade e personalização, economizando um tempo considerável.
*Por Vera Tiago, Global Developer Advocacy Team Leader da OutSystems.