A GenAI resolverá problemas de qualidade de código?

02 jul 2024

Com todo o hype recente em torno das ferramentas de codificação GenAI e o potencial e os riscos pretendidos que elas podem trazer para a produtividade do desenvolvimento de software, a Codurance organizou um evento de painel recente com o cofundador da Codurance, Sandro Mancuso, além de palestrantes de nossos parceiros CodeScene, AWS e Trainline para discutir a realidade do uso de ferramentas GenAI, como o Amazon Q Developer e o que o futuro reserva.

Abaixo, resumimos a discussão e como esses líderes tecnológicos veem a evolução da qualidade do código e das práticas de engenharia de software na era da IA.

A essência da qualidade do código

O que define a qualidade do código? Na sua essência, o código de qualidade é fácil de entender e, portanto, fácil de mudar. É um código que é “suficientemente bom” para o objetivo que serve, e foi concebido para evoluir ao longo do tempo. A qualidade do código não é um ideal abstrato, mas uma medida prática alinhada com requisitos específicos, incluindo necessidades comerciais.

O desafio da IA na refacção

A pesquisa de Adam Tornhill destaca uma limitação crucial: A IA tem dificuldades com a refacção válida. Embora a IA possa modificar o código, garantir que as alterações não quebrem a funcionalidade existente é outra história. O teste decisivo aqui é se os testes ainda passam após a refatoração. Esse desafio ressalta a necessidade de supervisão humana e testes rigorosos ao integrar a IA no processo de desenvolvimento.

Competências para o engenheiro da era da IA

À medida que as ferramentas de IA se tornam mais prevalecentes, as competências exigidas aos engenheiros também estão a evoluir. A precisão e o pensamento metódico são fundamentais. Os engenheiros têm de se tornar proficientes em engenharia rápida - uma competência que provavelmente acabará por ser eliminada e ultrapassada pela automatização. A revolução da IA ainda está a dar os primeiros passos, e aqueles que se dedicarem às principais competências de engenharia, procedendo com cautela, irão prosperar.

Os futuros programadores terão de se tornar híbridos, compreendendo tanto o código tradicional como o código gerado pela IA. Os programadores seniores, em particular, beneficiam significativamente da IA, uma vez que possuem o conhecimento profundo necessário para tirar partido destas ferramentas de forma eficaz.

IA e verificação de factos

A combinação da IA com a verificação de factos pode conduzir a um desempenho mais rápido e mais preciso. Por exemplo, a integração de grandes modelos linguísticos (LLM) para verificar os dados pode simplificar muitos processos. No entanto, o principal desafio continua a ser determinar a exatidão dos resultados gerados pela IA.

O papel da IA nas indústrias regulamentadas

Em sectores altamente regulamentados, a validação dos resultados da IA é fundamental. Por exemplo, embora a IA possa alcançar uma maior precisão nos diagnósticos médicos em comparação com os médicos humanos, os processos de confiança e verificação devem ser robustos. É essencial ultrapassar a barreira psicológica em que se espera que a IA seja infalivelmente exacta. Eventualmente, as taxas de precisão comprovadas da IA - tais como 98% de diagnósticos correctos em comparação com os 70% de um médico de família humano - criarão confiança.

Preparação da organização para a IA

As organizações devem preparar-se para integrar a IA, criando estruturas que aprovem os pedidos das equipas para resolver problemas utilizando a IA. Ferramentas como o Trainline podem ajudar a analisar os dados através de LLMs para verificação, garantindo que a IA contribui efetivamente para os objectivos do negócio.

IA em áreas em desenvolvimento e pouco povoadas

O potencial da IA é especialmente transformador em regiões em desenvolvimento ou escassamente povoadas. Quando os profissionais de saúde são escassos, a IA pode prestar serviços valiosos, oferecendo melhorias significativas na prestação de cuidados de saúde e impulsionando a adoção - quando a opção é que as pessoas vejam e sejam diagnosticadas por um médico de clínica geral alimentado por IA ou não tenham médico de clínica geral (e os riscos de não haver tratamento), a IA será claramente considerada num contexto diferente em comparação com os países desenvolvidos.

Para concluir, a IA no desenvolvimento de software não se destina a substituir os engenheiros humanos, mas a aumentar as suas capacidades. Embora subsistam desafios, particularmente em áreas como a refacção e validação de código em indústrias regulamentadas, os benefícios são claros. Ao adotar a IA, aperfeiçoar as principais competências de engenharia e desenvolver estruturas robustas para a integração da IA, podemos esperar um futuro em que as empresas alcancem mais e os engenheiros encontrem maior satisfação no seu trabalho.

Outros recursos

Read Codurance’s AI ebook
Find out how Codurance is supporting customers on their data and AI/ML journeys
Try Amazon Q Developer 
Try CodeScene’s BETA ACE AI refactoring tool 
Read CodeScene’s Whitepaper on Refactoring V Refuctoring