Exponencializando o poder DEV com Augmented Coding

Out 28, 2022 | min leitura
By

Felipe Fávero

Para alavancar a performance de suas ações, os developers se valem de diversas práticas, muitas delas visando acelerar as tarefas associadas à construção de produtos digitais sem comprometer a qualidade das execuções. Dentre as abordagens geralmente adotadas corporativamente para a exponencialização do poder dev estão: o uso de tecnologias voltadas à automatização de funções - como o uso de ferramentas de inteligência artificaial, como o GitHub Copilot e o Augmented Coding (da britânica Globant) - e o reaproveitamento de tarefas repetitivas.

As operações baseadas em Data Science, geralmente compostas por poderosas ferramentas de inteligência artificial e machine learning, agilizam os processos de maneira substancial. Ainda que apenas a união de altos desempenhos em todos os níveis de uma organização gere impactos positivos aos business outcomes, é indiscutível a necessidade de entregas rápidas relacionadas a softwares no dia a dia, e, por isso, tão necessário falar sobre eficiência digital.

Segundo o relatório State of DevOps, High performers fazem deployment de código 208 vezes mais rápido do que Low performers, além de realizarem entregas 106 vezes mais rápido. Sem contar, ainda, que o tempo para recuperação de falhas de empresas que estão no caminho para alcançar a eficiência digital é 2.604 vezes mais ágil, e a taxa de implantações com falhas é 7 vezes menor. 
Vale lembrar que o documento mostra as melhores práticas de DevOps aplicadas nas empresas pelo mundo e divide as organizações entre entre Low, Medium e High performers a partir das 4 Key Metrics, sendo a velocidade um elemento-chave dessas métricas. O número de Elite performers vem crescendo constantemente; se, em 2018, representavam 7%, em 2021 responderam por 26% das operações analisadas.

Logo, para que uma organização atinja o posto de Elite e se destaque em meio a uma concorrência cada vez mais acirrada, é preciso otimizar o uso de seus recursos; a eficiência digital é uma necessidade para a manutenção dos negócios, e a implementação do que listo a seguir, quando possível, vem bem a calhar nessa busca.

Boilerplate Code

Boilerplate diz respeito a uma unidade de código que pode ser reutilizada várias vezes sem mudança alguma ou com poucas alterações. Essas unidades são comuns em códigos verbosos, ou seja, aqueles que precisam de mais palavras ou de palavras mais longas para expressar adequadamente suas intenções.

Dado que, no mundo digital, existem alguns padrões universais (ou quase) compartilhados por uma gama de plataformas, os profissionais podem “pular” etapas de uma produção com o que têm em mãos. Em vez de reconstruir códigos do zero continuamente, podem aproveitar coleções, copiando-as e depois modificando de acordo com a necessidade.

A economia de tempo gerada pelas unidades de código reaproveitáveis é crucial para a performance operacional. Big techs geralmente constroem seus próprios boilerplates e os utilizam em diversos projetos com características semelhantes aos quais se dedicam. Além disso, oferecendo uma espécie de scaffolding (esqueleto de código usado para tornar a aplicação funcional), boilerplates, em projetos menores, se concentram na prototipagem rápida, criando os elementos necessários apenas para novos projetos. Requerem menos funcionalidade e não são escaláveis.

Resumindo, boilerplates reduzem o trabalho repetitivo. Também ajudam no onboarding de novas pessoas e reduzem a curva de aprendizado, visto que podem beneficiar profissionais menos experientes.

IAs durante a codificação

Por mais que a utilização tradicional de boilerplates já garanta benefícios visíveis ao tempo de produção e, portanto, às operações em geral, a automatização da ação deixa tudo ainda mais acelerado, exponencializando os ganhos para times de desenvolvimento e as organizações para as quais trabalham. As Inteligências Artificiais, aqui, também entram no jogo.
Um exemplo de IAs para esse caso é o GitHub Copilot, baseado em openAI codex, que sugere códigos e funções inteiras em tempo real diretamente do editor. Treinado a partir de bilhões de linhas de código, ele transforma prompts de linguagem natural em sugestões de codificação em dezenas de idiomas.

Outro exemplo que vale a pena ser mencionado, patenteado pela Globant, é o Augmented Coding. A solução reúne ferramentas baseadas em inteligência artificial (IA) e machine learning criadas a partir das descobertas de data scientists em relação às metodologias mais eficazes de desenvolvimento. Dentre essas ferramentas estão:

semantic code search: encontra códigos em repositórios por meio de orientações em linguagem natural, recebendo perguntas em inglês e transformando-as em códigos;

code autocompletion: completa linhas de código com base nas linhas já existentes; 

automatic code documentation: permite que os desenvolvedores gerem facilmente uma documentação inline, criptografando o código e retornando ao idioma natural (também em inglês).

Graças ao poder tecnológico que apresenta, o Augmented Coding desbloqueia a capacidade dos times de criarem e treinarem códigos e modelos do zero, tornando os produtos gerados úteis para uma grande variedade de casos com low-code ou no-code.

Também é muito comum os desenvolvedores fazerem consultas em sites de conteúdo do área, sendo o stackoverflow.com o mais conhecido, ou mesmo pedem ajuda aos colegas durante o desenvolvimento. As IAs também exercem essa função de trazer esses conteúdos e acelerar o aprendizado dos próprios desenvolvedores.

Soluções como essa geram uma economia substancial de tempo na criação de códigos repetitivos ou que seguem um padrão, como num projeto de migração/modernização de tecnologia, exigindo apenas as descrições relacionadas à lógica desejada para apresentar sugestões de códigos capazes de atender a diversas necessidades das equipes (recomendações geralmente pautadas por contextos e convenções estilísticas).

Low Code & No Code

Frente a uma demanda crescente de simplificação, abordagens como low-code & no-code se mostram poderosas aliadas. Low-code é a tentativa de abstração de partes das ações de codificação passíveis de automatização e a transformação delas em, por exemplo, interfaces. Isso reduz a carga de coding. 

Já a abordagem no-code dá um passo adiante e tenta tornar praticamente tudo visual ou declarativo, ampliando a acessibilidade das operações a públicos além dos compostos por desenvolvedores.
Tanto low-code quanto no-code ajudam muito na experimentação e a desbloquear rapidamente hipóteses de áreas de negócios, revelando para onde devem ser direcionados investimentos em recursos.

A Gartner prevê que, até 2030, o mercado global dessas abordagens deverá produzir US$ 187 bilhões em receita e, até 2024, será responsável por mais de 65% do desenvolvimento de aplicações.

Inner Source

Movimento análogo ao open source, Inner Source é o uso de princípios e práticas do open source dentro de uma empresa. As companhias que adotam o movimento organizam ferramentas, aceleradores, trechos de código e o que mais acharem pertinente em conjuntos sólidos, e torna os recursos versionados e abertos para todos os devs da organização poderem utilizar. 

Sendo assim, o Inner Source possibilita que profissionais contribuam com códigos de outros times a fim de aumentar a velocidade das operações. Nessa jornada podem desde criar funcionalidades até corrigir bugs, tudo com transparência e colaboração. 

Na CI&T, por exemplo, criamos e consolidamos ferramentas utilizadas em vários contextos, elencando-as em um conjunto chamado Aceleradores. Ele contempla soluções documentadas, testadas e prontas para solucionar diversos desafios comuns nos projetos aos quais nos dedicamos, representando uma fonte de aprendizados adquiridos ao longo de 25 anos de atuação em diferentes setores do mercado e com diferentes tecnologias com as quais temos contatos nos diversos contextos globais com que nos conectamos.

Talents war: investir em ferramentas é investir em pessoas

Como diria um grande colega de trabalho: "Por baixo de tudo vai código e por trás de todo código temos pessoas." Na guerra por talentos, o investimento em tecnologias que melhoram a experiência do desenvolvedor é chave para fidelizá-los e diminuir o turn-over.

É uma relação de Ganha-Ganha, eles ganham um ambiente moderno, de constante aprendizado e focado na parte mais desafiadora de ser um desenvolvedor, enquanto a empresa alcança resultados significativos, tangíveis e pragmáticos.

Se o objetivo é deixar a equipe focada em resolver os problemas que de fato vão gerar resultado e retorno para a companhia, considere implementações que vão ao encontro da busca pela eficiência digital. A motivação e engajamento do time, com bons recursos disponíveis, pode gerar resultados em uma maior retenção e atração de talentos desenvolvedores, além de, claro, produtos finalizados com um prazo menor. Seu time - e você - vão agradecer.


Felipe Favero CI&T

Felipe Fávero

Gerente Executivo e Head de Desenvolvimento de Produto, CI&T