Categorias

O que é esse tal de ‘low code”?

Você passou quatro anos na faculdade (às vezes cinco, às vezes seis…), tirou diversas certificações, tem mais dez anos de curso na Universidade StackOverflow da Vida, dez anos de mercado e consegue fazer o “Hello, World” mais sucinto e eficiente da história da programação. Para todos os efeitos, você é um Desenvolvedor com “D” maiúsculo e se orgulha disso. Então, de repente, surge esse tal de “low code”. Pode ser até mesmo um “no-code”. De uma hora para a outra, pessoas sem nenhum conhecimento prévio estão criando aplicativos. É o fim do seu mercado?

Vamos começar do começo: essa “tendência” não surgiu agora. Muitos IDEs já permitiam havia décadas que você arrastasse e soltasse componentes para gerar código de forma automatizada e você, meio que preguiçosamente, aceitava essa ajudinha. Até mesmo o Microsoft Word, que não foi criado para isso, gerava páginas HTML sem que você precisasse mexer no código-fonte.

Se você tem tempo de estrada, já está reclamando que o código gerado por essas soluções era uma abominação que jamais deveria ter visto a luz do dia e não vou tirar sua razão. Entretanto, nos últimos anos, a eficiência das ferramentas capazes de gerar código de forma modular e automática cresceu exponencialmente e as empresas estão de olho nessa possibilidade.

Se pegarmos o mercado de desenvolvimento de sites, por exemplo, a hegemonia absoluta está nas mãos de soluções do tipo, como  WordPressWixSquarespace e WebFlow. De acordo com o Gartner Magic Quadrant de 2019, até 2024, 65% do desenvolvimento de aplicativos acontecerá através do uso de ferramentas em que o usuário abstrai do código através de uma interface gráfica. Faltam apenas dois anos.

Seu código bonito demora demais para ficar pronto

Alguém vai ter que te dizer um dia, então é melhor que seja eu, com toda delicadeza possível: você é lento para os padrões da indústria. Não importa o seu nível de conhecimento, a agilidade dos seus dedos ou a quantidade de cafeína consumida ao longo de suas doze horas de trabalho no escritório. Você. É. Lento. O problema não está em você, está nos tais padrões da indústria, que determinam que quanto mais produtividade melhor. E nada irá superar soluções low-code/no-code.

Um comparativo realizado pela consultoria Capgemini, em 2017, colocou lado a lado o chamado desenvolvimento tradicional com Java (usando o Eclipse IDE) e uma solução baseada em modelos de low-code. Os dois métodos foram utilizados para desenvolver diferentes aplicações cotidianas de uma empresa do setor financeiro. O resultado foi que o desenvolvimento foi 5.5 vezes mais rápido usando a ferramenta low-code. Se fosse possível excluir as etapas de análise e design dos projetos, a solução low-code teria atingido uma performance 6.2 vezes mais rápida que o tradicional. Analisando somente a etapa de integração, o caminho low-code foi 28 vezes mais eficiente que o caminho de desenvolvimento usual. O estudo completo ainda está disponível online (PDF).

Em 2020, um levantamento batizado de No Code Census concluiu que soluções low-code/no-code são 4.6 vezes mais rápida, 4.8 vezes mais fáceis e 4.6 vezes mais econômicas. Esse estudo também está disponível online.

Quando esses números são colocados na mesa, é inevitável que os tomadores de decisão escolham soluções low-code/no-code sobre a programação refinada que você realiza. A realidade do mercado é essa nesse momento. Em situações extremas, como a pandemia de Covid-19, a agilidade desse tipo de ferramenta se tornou crucial para o desenvolvimento de respostas rápidas que foram sendo ajustadas na medida em que mais informações e demandas entravam no sistema.

Os outros também querem brincar

Do lado oposto dessa equação, temos uma parcela significativa da população que não tem a expertise técnica necessária para utilizar um aplicativo, quem dirá desenvolver um. Por mais que haja constantes iniciativas governamentais ou não-governamentais para reduzir o abismo digital e ampliar a capacitação, muitas vezes chegando a introduzir programação no currículo escolar, esse é um quadro que ainda pode levar gerações para ser revertido. Parabéns, você ainda faz parte de uma minoria disputada a preço de ouro pelo mercado e vai permanecer assim por muito tempo.

Porém, tem mais gente que precisa entrar nesse parquinho. E isso pode ser permitido com soluções low-code/no-code. Esse casamento entre quem deseja participar do processo de criação de aplicativos e ferramentas que facilitam essa entrada recebeu o nome de “desenvolvimento cidadão“. Na teoria, isso liberta o processo criativo do setor de TI e entrega diretamente nas mãos dos usuários, que muitas vezes sabem exatamente o que desejam e conseguirão ultrapassar os riscos de comunicar os requisitos de seus projetos de forma errada.

A ideia por trás do “desenvolvimento cidadão” é que a indústria entregue ferramentas capazes de fazer com que qualquer um consiga criar alguma coisa útil. O resultado disso seria uma enxurrada de sistemas e aplicativos de nicho, focados nas necessidades individuais de seus criadores ou de sua comunidade. Vendedores, dentistas, advogados, donas de casa, até mesmo políticos (meu deus, em que mundo estamos?) poderiam desenvolver software. Será como coração de mãe, sempre com espaço para mais um.

Evidentemente nem todo mundo tem a disposição(ou o tempo) para sentar e desenvolver algo por melhor que seja a ferramenta e qualquer um com o mínimo de experiência na área sabe que não existe solução à prova de usuário. Em outras palavras, a quantidade de programas que irão brotar do “desenvolvimento cidadão” será menor do que seus defensores imaginam e uma parcela considerável deles será inútil, vulnerável ou ineficiente.

Porém, a proposta segue cativante. E se fosse possível fazer as duas abordagens ao mesmo tempo? Amplificar a educação tecnológica, disseminar os princípios básicos, o raciocínio lógico e as boas práticas por trás de um projeto e, ao mesmo tempo, oferecer ferramentas cada vez mais amigáveis e eficientes que trabalhem com código pré-gerado? Se colocarmos no mesmo processo algoritmos de Inteligência Artificial capazes de fazer ajuste fino e burilar esse diamante bruto, certamente, a mudança de paradigma será impressionante.

Então, não tem pra onde correr?

Muita calma nessa hora. Não há qualquer necessidade de rasgar seu diploma, suas certificações e pensar na possibilidade de comprar um carrinho de pipocas. A menos que você curta muito o cheirinho de pipoca quentinha… aí é com você. Porém, tenha em mente que ainda existem muitos desafios para serem resolvidos para a adoção em larga escala de plataformas low code/no-code. A programação tradicional conta com comunidades bem estabelecidas, um vasto catálogo de boas práticas documentadas e muitos profissionais de extrema competência como você e nada disso será jogado fora da noite para o dia, porque nem mesmo a startup mais impulsiva está disposta a desperdiçar recursos.

Implementar soluções low-code/no-code de uma forma tão disruptiva que exclua os desenvolvedores tradicionais exigiria uma mudança de cultura organizacional custosa que a maioria das empresas não está disposta a tomar. Ao contrário do que pregam os vendedores dessas ferramentas, ainda são necessários tempo e esforço para o pleno domínio de seu potencial para se atingir os patamares de velocidade e produtividade que se espera.

Além do mais, nem todo projeto é adequado para esse tipo de abordagem. Os projetos mais complexos e, consequentemente, mais onerosos não podem ser encaixados com facilidade no que supostamente seria um caminho mais suave. Muitas aplicações legadas também são impossíveis ou economicamente inviáveis de serem migradas para esse tipo de cenário. Se existem até hoje sistemas de peso ainda escritos em COBOL, impossíveis de serem atualizados para opções mais modernas, imagina adotar soluções low code nesses casos!

Ao mesmo tempo, o ecossistema low code está muito longe de apresentar a mesma maturidade do universo tradicional da programação, baseado em linguagens específicas. Cada uma das linguagens apresenta anos e anos de existência, comunidades robustas, tutoriais, livros, farta documentação e especialistas consolidados enquanto o mercado de ferramentas low code ainda é fragmentado, sem padronização, liderança ou garantia de continuidade. A solução low code de hoje pode desaparecer no futuro próximo, enquanto linguagens de programação podem levar décadas para perder sua relevância.

É importante frisar também que programar é muito mais do que sentar no teclado e digitar uma string de conexão de cabeça, colocar alguns parâmetros, algumas condições e correr para a garrafa térmica. Não é apenas conhecimento da sintaxe. É uma expertise que exige lógica, exige planejamento. É necessário realizar design, estudo de caso, pensar na interface, testar caminhos, testar o que foi desenvolvido, otimizar. Nenhum bom desenvolvedor é somente um escritor de códigos.

Low Code não precisa ser seu inimigo

Mais tranquilo agora que sabe que não vai perder seu emprego? Bem, esse é o momento em que eu afirmo que low-code/no-code pode ser seu aliado também. Até mesmo o profissional ninja do primeiro parágrafo desse artigo pode se beneficiar de uma ferramenta aceleradora.

Pense nesse tipo de solução como um guardanapo de papel e uma caneta: você pode gerar protótipos de interfaces ou mesmo processos em muito menos tempo do que levaria da forma tradicional (e, certamente, com um resultado mais bacana e inteligível do que literalmente com guardanapo e caneta). Fica mais fácil visualizar seu destino final com um esboço inicial mais elaborado. Se desejar, você pode jogar todo aquele código gerado no lixo ou ir adaptando e modificando de acordo com o escopo do projeto e suas habilidades.

Outro reforço no seu cotidiano é a porta de entrada para “cidadãos desenvolvedores”, uma nova classe de profissionais que podem ajudar a aliviar a carga pesada que repousa hoje sobre os ombros dos desenvolvedores “de carreira”, por assim dizer. Determinadas tarefas triviais podem e devem ser delegadas para soluções low-code/no-code, libertando o programador senior para desafios mais complexos e sofisticados.

Sem desmerecer a nova geração de “cidadãos desenvolvedores”, uma parte significativa deles pode ter a habilidade lógica inata ou evoluir as competências necessárias para se tornar um desenvolvedor à moda antiga, se aprofundar no código e se tornar um profissional que irá contribuir em pé de igualdade para o crescimento de sua equipe. É preciso desmistificar a carreira de TI, torná-la acessível, aumentando o fluxo de interessados na entrada, para que seja possível obter um maior volume de profissionais gabaritados na saída. Quanto mais talentos diversificados entrarem na área maiores as chances de surgirem inovações que irão pavimentar o futuro do desenvolvimento.

As soluções low code ou mesmo no code não são uma moda que surgiu agora e não são uma buzzword que irá sumir amanhã. Eles fazem parte desse vasto ecossistema do desenvolvimento de software e é importante compreendermos seu papel e nosso papel para combinarmos as forças e promover uma evolução significativa no cenário.