A Gen AI poderia acelerar a codificação, mas as empresas ainda devem considerar os riscos

Tempo de leitura: 7 minutos

Códigos binários flutuantes

sankai/Getty Images

Os desenvolvedores agora podem recorrer à inteligência artificial generativa (Gen AI) para codificar de forma mais rápida e eficiente, mas devem fazê-lo com cautela e não menos atenção do que antes.

Embora o uso da IA ​​no desenvolvimento de software possa não ser novo – ela existe pelo menos desde 2019 e a Gen AI traz melhorias significativas na geração de linguagem natural, imagens e – mais recentemente – vídeos e outros ativos, incluindo código , Diego Lo Giudice, vice-presidente da Forrester e analista principal, disse à ZDNET.

As iterações anteriores de IA foram usadas principalmente em testes de código, com aprendizado de máquina aproveitado para otimizar modelos para estratégias de teste, disse Lo Giudice à ZDNET. A Gen AI vai além desses casos de uso, oferecendo acesso a um programador ou especialista especializado (como um testador ou um analista de negócios) que pode ser consultado de forma interativa para encontrar informações rapidamente. A Gen AI também pode sugerir soluções e casos de teste.

“Pela primeira vez, estamos vendo ganhos de produtividade significativos que a IA tradicional e outras tecnologias não nos proporcionaram”, disse ele.

Além disso: a IA e a automação podem gerenciar adequadamente as ameaças crescentes ao cenário da segurança cibernética?

Até 2026, a IDC prevê que 40% das novas aplicações na Ásia-Pacífico serão “aplicações inteligentes”, que integram a Gen AI para melhorar a experiência do utilizador e fornecer novos casos de utilização.

Especificamente, o principal impacto do uso da Gen AI no desenvolvimento e design de software será o aumento da produtividade e da velocidade do desenvolvedor, de acordo com o estudo da IDC, encomendado pela plataforma de desenvolvimento de baixo código, OutSystems.

Esses benefícios potenciais para os negócios levarão 30% das organizações da Ásia-Pacífico a pagar um prêmio entre 11% e 20% pelos recursos da Gen AI no desenvolvimento de aplicativos, segundo os projetos de estudo da IDC.

A empresa de investigação prevê ainda que, até 2025, mais de 60% das empresas em todo o mundo adoptarão tecnologias low-code para facilitar a entrega mais rápida de aplicações e aumentar a eficiência operacional.

Além disso: por que os dados são o calcanhar de Aquiles da IA ​​(e de todos os outros planos de negócios)

Os desenvolvedores podem aproveitar a IA em todo o ciclo de vida de desenvolvimento de software, com um “TuringBot” dedicado em cada estágio para aprimorar as pilhas e plataformas de tecnologia, observou Lo Giudice.

A Forrester cunhou o TuringBots para descrever ferramentas baseadas em IA que ajudam os desenvolvedores a construir, testar e implantar código. A empresa de pesquisa acredita que o TuringBots impulsionará uma nova geração de desenvolvimento de software, auxiliando em todas as fases do ciclo de vida do desenvolvimento, incluindo a consulta de documentação técnica e o preenchimento automático de código.

“Analisar/planejar TuringBots”, por exemplo, pode facilitar a fase de análise e planejamento do desenvolvimento de software, detalhou Lo Giudice, apontando o ChatGPT da OpenAI e o Atlassian Intelligence como exemplos de tais produtos de IA. Outros, como o Gemini Advanced do Google Cloud, podem gerar projetos de microsserviços e APIs com sua implementação de código, enquanto o Microsoft Sketch2Code pode gerar código funcional a partir de uma interface de usuário esboçada à mão, disse ele.

Além disso: os dados sugerem que a geração AI aumenta a produtividade do software – para esses desenvolvedores

Lo Giudice acrescentou que “codificadores TuringBots” são atualmente o caso de uso mais popular para Gen AI no desenvolvimento de software, gerando código a partir de prompts, bem como de contexto de código e comentários por meio de preenchimento automático para ambientes de desenvolvimento integrados (IDEs) populares. Isso inclui linguagens comuns como JavaScript, C++, Python e Rust.

Uma grande vantagem dos modelos generativos é que eles podem escrever código em muitas linguagens, permitindo que os desenvolvedores insiram um prompt para gerar, refatorar ou depurar linhas de código, disse Michael Bachman, chefe de arquitetura e estratégia de IA da Boomi. “Essencialmente, todos os humanos que interagem com a Geração AI são desenvolvedores quase seniores”, disse ele.

O fornecedor de software integra Gen AI em alguns de seus produtos, incluindo Boomi AI, que traduz solicitações de linguagem natural em ações. Os desenvolvedores podem usar o Boomi AI para projetar processos de integração, APIs e modelos de dados para conectar aplicativos, dados e processos, de acordo com Boomi.

A empresa usa Gen AI para apoiar seus próprios desenvolvedores de software, que observam de perto o código que executa sua plataforma.

Além disso: Gen AI como ferramenta de qualidade de software? O ceticismo está desaparecendo à medida que mais organizações o implementam

“E essa é a chave”, disse Bachman. “Se você estiver usando a Gen AI como fonte primária para construir todo o seu aplicativo, provavelmente ficará desapontado. Bons desenvolvedores usam a Gen AI como ponto de partida ou para testar completamente os cenários de falha, antes de colocar o código em produção. Isso é como lidamos com isso internamente.”

Sua equipe também trabalha para criar recursos que atendam aos “objetivos práticos de IA” de seus clientes. Por exemplo, a Boomi está criando um sistema de recuperação porque muitos de seus clientes desejam substituir as pesquisas por palavras-chave pela capacidade de pesquisar conteúdo, como catálogos em seus sites, em linguagem natural.

Os desenvolvedores também podem usar a Gen AI para remediar a segurança, disse Lo Giudice, procurando vulnerabilidades no código gerado pela IA e oferecendo sugestões para ajudar os desenvolvedores a corrigir certas vulnerabilidades.

Além disso: a IA e a automação podem gerenciar adequadamente as ameaças crescentes ao cenário da segurança cibernética?

Em comparação com a codificação tradicional, uma estratégia de desenvolvimento sem ou com pouco código pode oferecer velocidade, qualidade integrada e adaptabilidade, disse o principal analista da Forrester, John Bratincevic.

Ele também fornece um conjunto de ferramentas de ciclo de vida de desenvolvimento de software integrado e acesso a um conjunto expandido de talentos que inclui não programadores e “desenvolvedores cidadãos” fora da comunidade de TI, disse Bratincevic.

No entanto, as organizações podem enfrentar desafios relacionados com a governação da implementação em grande escala, especialmente com a gestão de desenvolvedores cidadãos que podem chegar aos milhares, advertiu. O preço também pode representar uma barreira, pois normalmente é baseado no número de usuários finais, disse ele.

Embora a Gen AI ou os assistentes de software com infusão de IA possam permitir que profissionais juniores preencham lacunas de talentos, inclusive em segurança cibernética, Lo Giudice disse que uma revisão especializada ainda é necessária para todas essas tarefas.

Além disso: a IA acelera o desenvolvimento de software a velocidades vertiginosas, mas medir isso é complicado

Bratincevic concordou, enfatizando a necessidade dos desenvolvedores e outros funcionários no ciclo de vida de desenvolvimento de software revisarem tudo o que a plataforma gera ou configura automaticamente usando IA.

“Ainda não chegamos, e provavelmente nunca chegaremos, ao ponto de confiar cegamente na IA para o desenvolvimento de software”, disse ele.

Por um lado, há requisitos de segurança a serem considerados, de acordo com Scott Shaw, CTO da Ásia-Pacífico da Thoughtworks. A consultoria tecnológica testa regularmente novas ferramentas para melhorar sua eficiência, seja no IDE ou para apoiar o trabalho dos desenvolvedores. A empresa faz isso quando for apropriado para seus clientes e somente com o consentimento deles, disse Shaw à ZDNET, observando que algumas empresas ainda estão nervosas em usar a Gen AI.

“Nossa experiência é que as ferramentas de codificação de software (alimentadas pela geração AI) não são tão conscientes da segurança e (sintonizadas com) as práticas de codificação de segurança”, disse ele. Por exemplo, os desenvolvedores que trabalham para organizações em um ambiente regulamentado ou sensível a dados podem ter que aderir a práticas e controles de segurança adicionais como parte de seus processos de entrega de software.

Além disso: as empresas ainda estão prontas para investir na Gen AI, sendo a gestão de risco uma prioridade máxima

Usar um assistente de codificação pode dobrar a produtividade, mas os desenvolvedores precisam perguntar se podem testar adequadamente o código e cumprir os requisitos de qualidade ao longo do pipeline, observou ele.

É uma faca de dois gumes: as organizações devem analisar como a Gen AI pode aumentar as suas práticas de codificação para que os produtos que desenvolvem sejam mais seguros e, ao mesmo tempo, como a IA traz riscos de segurança adicionais com novos vetores de ataque e vulnerabilidades.

Por oferecer uma escala significativa, a Gen AI amplifica tudo o que uma organização faz, incluindo os riscos associados, observou Shaw. Muito mais código pode ser gerado com ele, o que também significa que o número de riscos potenciais aumenta exponencialmente.

Conheça seus modelos de IA

Embora as plataformas de baixo código possam ser uma boa base para os Turingbots da Geração AI ajudarem no desenvolvimento de software, Bratincevic observou que as organizações devem saber quais grandes modelos de linguagem (LLMs) são usados ​​e garantir que estejam alinhados com suas políticas corporativas.

Ele disse que os jogadores da Gen AI “variam muito” a esse respeito e instou as empresas a verificar a versão e o contrato de licenciamento se usarem LLMs públicos, como o ChatGPT da OpenAI.

Além disso: Como usar ChatGPT para escrever código: o que faz bem e o que não faz

Ele acrescentou que os recursos da geração AI para gerar configurações de código ou componentes a partir de linguagem natural ainda precisam amadurecer. Eles podem ver uma maior adoção entre os desenvolvedores cidadãos, mas é improvável que impressionem os desenvolvedores profissionais.

Bratincevic disse: “No momento, uma plataforma de baixo código comprovada e bem integrada mais Gen AI é uma abordagem mais sensata do que uma plataforma leve ou não comprovada que oferece um bom jogo em IA.”

Embora os LLMs realizem o trabalho pesado de escrever código, os humanos ainda precisam saber o que é necessário e fornecer o contexto, a experiência e a depuração relevantes para garantir que o resultado seja preciso, acrescentou Bachman.

Os desenvolvedores também precisam estar atentos ao compartilhamento de dados proprietários e propriedade intelectual (PI), especialmente com ferramentas de código aberto, afirmou. Devem evitar a utilização de IP privado, como códigos e valores financeiros, para garantir que não estão a treinar os seus modelos Gen AI utilizando o IP de outra organização, ou vice-versa. “E se você optar por usar um LLM de código aberto, certifique-se de que ele seja bem testado antes de colocá-lo em produção”, acrescentou.

Além disso: GitHub lança uma ferramenta alimentada por IA visando uma ‘maneira radicalmente nova de construir software’

“Eu erraria por ser extremamente cauteloso sobre os modelos nos quais as ferramentas da Gen AI são treinadas. Se você deseja que esses modelos sejam valiosos, você deve configurar pipelines adequados. Se você não fizer isso, a Gen AI poderá causar muito mais problemas”, advertiu.

Ainda é cedo e a tecnologia continua a evoluir; o seu impacto sobre a forma como os papéis – incluindo os desenvolvedores de software – irão mudar permanece longe de ser certo.

Por exemplo, assistentes de codificação alimentados por IA podem mudar a forma como as habilidades são valorizadas. Shaw brincou: os desenvolvedores serão considerados melhores porque são mais experientes ou porque conseguem se lembrar de todas as sequências de codificação?

Por enquanto, ele acredita que o maior caso de uso potencial é a capacidade da Gen AI de resumir informações, oferecendo uma boa base de conhecimento para que os desenvolvedores entendam melhor o negócio. Então, eles podem traduzir esse conhecimento em instruções específicas, para que os sistemas possam executar as tarefas e construir os produtos e recursos que os clientes desejam.


Rolar para cima
Pular para o conteúdo