A IA não está apenas facilitando a programação. Isso torna a programação mais divertida.

Homem sorrindo e usando um notebook

Autores

Tim Mucci

IBM Writer

Gather

A IA está melhorando a experiência do desenvolvedor

A IA generativa (IA gen) está mudando a forma como os filmes são feitos, como o marketing é feito e como os jogos estão sendo jogados. Embora grande parte da atenção da mídia esteja voltada para o que a IA generativa pode fazer em termos de transformação digital, criação de conteúdo e ganhos de produtividade, pouca atenção é dada à forma como ela pode tornar a escrita de códigos mais satisfatória, e até mesmo divertida.

A IA generativa servindo como assistente de programação não apenas ajuda os engenheiros de software a fazer seu trabalho com mais rapidez; ela também aumenta a satisfação e o engajamento dos desenvolvedores. Os desenvolvedores estão usando IA generativa para escrever códigos padrão e ajudar a definir a formatação básica, permitindo que eles tenham mais tempo para se concentrar nos aspectos criativos do trabalho, como a resolução de problemas, a criação de nova lógica e o design de sistemas exclusivos. Essas tarefas criativas de alto nível são geralmente as que os programadores adoram realizar.

Um estudo da McKinsey descobriu que os desenvolvedores que usam ferramentas de IA generativa têm duas vezes mais chances de relatar felicidade geral, satisfação e capacidade de atingir um estado de fluxo no trabalho.

Imagine um desenvolvedor que foi designado para criar uma nova aplicação web para uma plataforma de comércio eletrônico. O desenvolvedor pode projetar uma experiência de usuário e implementar funcionalidades, como um mecanismo de recomendação e preços dinâmicos. No entanto, antes mesmo de começar com os elementos interessantes do design, o desenvolvedor tem um monte de trabalho pesado a realizar.

Ele precisam configurar o back-end, o que exige escrever o mesmo código padrão que escreveram dezenas de vezes antes, executar inicializações, definir rotas básicas e configurar o middleware. Nada disso é exclusivo do projeto, mas cada um dos elementos é necessário para a aplicação. Após a conclusão do trabalho de base, é preciso estabelecer uma conexão com o banco de dados e configurá-los juntamente com os esquemas para produtos, clientes e pedidos, além de inúmeras outras tarefas que não são de codificação nem de desenvolvimento.

Embora o desenvolvedor possa estar animado para chegar às principais funcionalidades que tornarão a plataforma única e agradável para os usuários, o trabalho padrão consome grande parte da linha do tempo do projeto. Embora seja necessário estabelecer essa base sólida, a produtividade do desenvolvedor pode desacelerar, pois esse trabalho rotineiro parece uma tarefa árdua em comparação com os aspectos mais criativos da programação.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionados por especialistas e notícias sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Desafios inerentes à codificação

A codificação é demorada e propensa a erros. Requer tempo e recursos significativos para produzir resultados de alta qualidade. Estudos mostram que, no ciclo de desenvolvimento tradicional, os desenvolvedores gastam em média 1 hora por dia na programação em si, enquanto as atividades repetitivas e indiferenciadas consomem a maior parte do tempo. Essas tarefas geralmente envolvem lidar com bases de código legadas, documentar processos, escrever testes, gerenciar versões, depurar erros e identificar vulnerabilidades de segurança. Por exemplo, um dia típico para um programador pode começar com avaliações de código ou revisão de uma solicitação de pull. Isso pode ser seguido pela solução de um bug relatado por uma equipe de controle de qualidade e, em seguida, pela elaboração de um plano de implementação, tudo isso antes que eles possam escrever uma única linha de código novo.

"A IA generativa permite que os desenvolvedores automatizem as tarefas tediosas e comuns que tiram tempo da criação de software, diz a cientista de dados da IBM Anna Gutowska. Um exemplo simples é um bot que executa scripts logo pela manhã e gera um "relatório de verificação de integridade" para seu software. Isso significa menos tempo gasto executando scripts manuais e mais tempo colocando as habilidades em uso."

Os desenvolvedores também enfrentam o desafio de se manterem atualizados com as mudanças nas tecnologias e frameworks, como React, Kubernetes ou Flutter. Isso não é pouca coisa, pois o cenário do desenvolvimento de software evolui rapidamente. Acompanhar esses avanços exige um investimento de tempo significativo em aprendizado e experimentação contínuos, deixando menos tempo para os aspectos criativos e gratificantes do desenvolvimento. A necessidade constante de conciliar essas responsabilidades, combinada com a pressão de fornecer um código robusto e sem erros, pode tornar a programação uma profissão estressante e desgastante.

As ferramentas de IA generativa também desempenham um papel nos fluxos de trabalho de DevOps, auxiliando na automação de implementação, integração contínua e monitoramento. Além da assistência na programação, a IA generativa pode fornecer análise de dados e ajudar os programadores a interpretar conjuntos de dados complexos para avaliar melhor o impacto das decisões de arquitetura e das otimizações do sistema.

A IA adora o tédio

Certo, a IA pode não "amar" tarefas entediantes, mas ela é excelente em encontrar e replicar padrões complexos, o que a torna uma solução perfeita para automatizar os aspectos repetitivos da programação. Tarefas como a geração de código padrão (aquelas estruturas tediosas, mas necessárias) podem ser geradas em segundos por ferramentas de IA generativa. A IA também pode ajudar na integração da interface de programação de aplicativos (API), gerando automaticamente endpoints, lidando com solicitações de autenticação e estruturação e reduzindo o esforço manual de programação. Outro exemplo, conforme descrito na Wired, é uma ferramenta de IA chamada SWE-agent. Essa ferramenta de IA identificou um bug em um repositório do GitHub, localizou o arquivo relevante e alterou o código corretamente, economizando horas de possível tempo de depuração para o desenvolvedor amador.

Essas ferramentas não são apenas assistentes; algumas são semelhantes a mentores de nível especializado. Os sistemas de IA generativa podem fornecer explicações, exemplos e orientações em tempo real, permitindo que os desenvolvedores passem menos tempo solucionando problemas e mais tempo inovando. Essa mudança permite que eles se concentrem em escrever um código de qualidade, como projetar soluções criativas ou melhorar as arquiteturas do sistema, ao mesmo tempo em que reduzem a carga cognitiva associada à resolução repetitiva de problemas. Ao detectar e ajustar automaticamente as alterações no código, a IA ajuda a evitar regressões e garante que as novas implementações estejam alinhadas às melhores práticas.

"O IBM watsonx Code Assistant foi capaz de identificar várias possíveis vulnerabilidades, vazamentos de memória e más práticas de programação... e forneceu recomendações para melhoria." - Feedback do cliente sobre o IBM® watsonx Code Assistant

 

A IA generativa também acelera o aprendizado dos desenvolvedores. Ele os ajuda a entender rapidamente novas linguagens de programação, frameworks e paradigmas, ao mesmo tempo em que oferece insights sobre base de código complexas ou desconhecidas. Para os desenvolvedores júnior, os benefícios são particularmente impressionantes.

"Não tínhamos grandes expectativas, mas ficamos incrivelmente surpresos com a qualidade do produto," diz Asher Scott, desenvolvedor full stack da IBM, referindo-se ao watsonx Code Assistant. "Ele me ajudou a levar minhas habilidades para o próximo nível."

Os desenvolvedores júnior relatam aumentos significativos na produtividade e na aquisição de habilidades, o que os ajuda a desenvolver sua experiência e confiança mais rapidamente do que os métodos tradicionais permitem. Ao remover barreiras de entrada e agilizar o processo de aprendizado, a IA está capacitando desenvolvedores de todos os níveis a enfrentar os desafios com mais entusiasmo.

Satisfação e flexibilidade no trabalho

De acordo com uma pesquisa da KPMG, metade dos programadores entrevistados acredita que a IA e a automação impactaram positivamente suas carreiras, aumentando a produtividade e abrindo novas oportunidades. De forma semelhante, uma pesquisa do ChatGPT da OpenAI revelou que 50% dos desenvolvedores entrevistados relataram produtividade aprimorada com o uso da IA, e 23% tiveram ganhos significativos.

Uma pesquisa do GitHub mostra que esses ganhos de produtividade oferecem uma maior eficiência ao fluxo de trabalho existente de um programador. Os desenvolvedores que usam ferramentas de programação com IA relataram maior satisfação devido à capacidade de automatizar tarefas repetitivas ou tediosas para se concentrar no design da solução, em vez de códigos padrão. Os assistentes de programação ajudam a reduzir a tensão mental e podem evitar o esgotamento. Eles ajudam os desenvolvedores a atender aos padrões de desempenho com mais facilidade, levando a uma melhor qualidade do código, resultados mais rápidos e menos incidentes.

O impacto da IA generativa na satisfação no trabalho decorre em grande parte de sua capacidade de fornecer insights e simplificar fluxos de trabalho de desenvolvimento tediosos. Por exemplo, ferramentas de desenvolvimento impulsionadas por IA, como watsonx Code Assistant (WCA), GitHub Copilot e SWE-Agent, demonstraram o poder da geração, depuração e otimização de código em tempo real. Esse tipo de eficiência não apenas reduz a frustração, mas também libera os desenvolvedores, especialmente os desenvolvedores juniores, para se concentrarem na solução de problemas mais complexos e gratificantes. Ao automatizar as tarefas rotineiras, as ferramentas impulsionadas por IA aprimoram a funcionalidade, permitindo que os desenvolvedores se concentrem na inovação em vez de na programação repetitiva.

De acordo com o GitHub, 57% dos desenvolvedores entrevistados afirmam que o uso de ferramentas de codificação com IA os ajuda a desenvolver suas habilidades na linguagem de programação, que eles consideram o principal benefício do uso dessas aplicações (sendo o segundo benefício uma maior produtividade). Isso sugere que os desenvolvedores veem o uso de ferramentas de programação com IA como uma forma de aprimorar suas habilidades enquanto trabalham, em vez de adicionar outra tarefa ao dia de trabalho para aprendizado e desenvolvimento.

Para os desenvolvedores júnior, a IA generativa acelera o aprimoramento e a requalificação de habilidades, oferecendo exemplos em tempo real e orientação contextual, ajudando-os a adquirir competências rapidamente e a contribuir com suas equipes mais cedo. Com o WCA, as equipes de desenvolvimento que trabalham em ambientes de desenvolvimento empresarial complexos, como modernização de mainframe ou migração Java, podem automatizar transformações de código tediosas enquanto recebem insights orientados por IA sobre as melhores práticas. Isso significa que os desenvolvedores junior podem progredir em suas tarefas sem ter que parar e consultar um desenvolvedor sênior com tanta frequência, permitindo que eles ganhem confiança e autonomia mais rapidamente.

A IA também está transformando a forma como os desenvolvedores abordam a prototipagem e a inovação. Trabalhos que antes exigiam horas de programação manual agora podem ser concluídos em uma fração do tempo. Por exemplo, um desenvolvedor que projeta uma nova funcionalidade pode usar a IA generativa para criar um rascunho de implementação, iterá-lo rapidamente e integrá-lo ao projeto maior. Esse prazo de entrega mais rápido permite mais experimentação e criatividade, que geralmente são os aspectos mais gratificantes do desenvolvimento de software.

Ao automatizar tarefas rotineiras, os desenvolvedores podem se adaptar com mais facilidade a ambientes de trabalho remoto ou assíncrono. As ferramentas de IA também permitem uma melhor colaboração, gerando sugestões de código e explicações que são fáceis de serem avaliadas e compreendidas pelos membros da equipe. Essas melhorias contribuem para uma experiência positiva para os desenvolvedores, tornando o desenvolvimento de software não só mais produtivo, mas também mais adaptável às diversas necessidades das forças de trabalho modernas, contribuindo para uma maior satisfação no trabalho e equilíbrio entre vida pessoal e profissional.

As ferramentas de IA generativa também ajudam os desenvolvedores a refinar suas habilidades, fornecendo métricas para que os desenvolvedores possam monitorar e melhorar sua produtividade. Da mesma forma, forneça aos desenvolvedores e à organização o conhecimento necessário para adotar novas tecnologias de forma eficaz e avaliar o impacto total da integração da IA. Isso, por sua vez, promove uma cultura de aprendizado contínuo e inovação entre os programadores.

Desenvolvimento de aplicações

Venha conosco: desenvolvimento de aplicações para empresas na nuvem

Neste vídeo, o Dr. Peter Haumer explica como é o desenvolvimento atual das aplicações empresariais modernas na nuvem híbrida, demonstrando diferentes componentes e práticas, incluindo o IBM® Z Open Editor, o IBM Wazi e o Zowe. 

O toque humano é insubstituível

A experiência humana continua sendo parte integrante do processo de desenvolvimento de software. Embora a IA possa identificar bugs e sugerir correções, ela não tem a compreensão sutil e a intuição de um desenvolvedor experiente. Os humanos estão mais bem preparados para discernir a intenção por trás do código, avaliar seu alinhamento com os objetivos da empresa e aplicar o contexto organizacional para garantir que ele atenda aos requisitos do projeto. As mentes das máquinas têm dificuldade em interpretar trocas sutis ou navegar em cenários ambíguos, tornando o julgamento humano indispensável.

A adoção da tecnologia de IA generativa não foi isenta de desafios. O impacto da tecnologia é desigual entre os níveis de experiência. Os desenvolvedores junior geralmente são os que mais se beneficiam, já que a IA os ajuda a aprender e contribuir mais rapidamente. Para eles, a IA atua como mentora, preenchendo lacunas de conhecimento e acelerando o crescimento. Por outro lado, de acordo com o MIT Sloan, os desenvolvedores sênior relatam ganhos menores, em torno de 8% a 13%. Se isso se deve à sua experiência ser superior à tecnologia ou à relutância em integrar a IA aos seus fluxos de trabalho, é uma questão que permanece em aberto.

Outra preocupação com a programação assistida por IA é o risco de dívida técnica. A dependência excessiva da IA para correções rápidas pode introduzir atalhos que se acumulam com o tempo, criando uma complexidade de longo prazo que demanda um esforço significativo para ser resolvida. Além disso, alguns temem que as ferramentas de programação orientadas por IA possam levar à erosão de habilidades, fazendo com que os desenvolvedores dependam demais da automação em vez de aprimorar suas próprias habilidades de resolução de problemas e programação. Se o pensamento crítico e as habilidades práticas de programação atrofiarem, os desenvolvedores podem ter dificuldades para enfrentar desafios complexos e de alto risco no futuro.

No entanto, as ferramentas de programação com IA são mais poderosas quando trabalham em colaboração com desenvolvedores humanos, e não no lugar deles. Embora a IA generativa possa acelerar fluxos de trabalho e automatizar tarefas repetitivas, seu valor real está em aumentar a experiência humana, ajudando os desenvolvedores a se concentrarem na resolução criativa de problemas, nas decisões de arquitetura e na inovação.

Um bom exemplo disso é a rKube, uma provedora de soluções de TI do Marrocos, que usou o watsonx Code Assistant da IBM para modernizar as aplicações Java. Ao automatizar a transformação de código, os desenvolvedores conseguiram mudar seu foco da refatoração manual para a resolução de problemas de maior valor, levando a fluxos de trabalho mais eficientes e a uma força de trabalho mais motivada.

Soluções relacionadas
IBM Enterprise Application Service for Java

Um serviço de locatário único, totalmente gerenciado, para desenvolver e entregar aplicações Java.

Explore os aplicativos em Java
Soluções de DevOps

Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicações nativas da nuvem em diversos dispositivos e ambientes.

Explore as soluções de DevOps
Serviços de desenvolvimento de aplicações empresariais

Com o desenvolvimento de aplicações na nuvem você só constrói uma única vez, itera rapidamente e implementa em qualquer lugar.

Serviços de desenvolvimento de aplicações
Dê o próximo passo

Os serviços de consultoria de desenvolvimento de aplicações da IBM® Cloud oferecem orientação de especialistas e soluções inovadoras para simplificar sua estratégia em relação à nuvem. Trabalhe com os especialistas em nuvem e desenvolvimento da IBM para modernizar, escalar e acelerar suas aplicações, trazendo resultados transformadores para os seus negócios.

Explore os serviços de desenvolvimento de aplicações Comece a criar com a IBM® Cloud sem custo