Os riscos e recompensas da IA generativa no desenvolvimento de software

Como indivíduo com duas décadas de experiência em codificação e atuando como CEO de uma empresa que atende desenvolvedores de software, minha resposta inicial às antecipações de que a inteligência artificial generativa acabaria por tornar irrelevantes a maioria das habilidades técnicas associadas ao desenvolvimento de software foi de ceticismo.
Embora inicialmente eu tivesse algumas reservas, meu encontro prático com a inteligência artificial durante meus esforços regulares de programação me levou a reconsiderar suas capacidades potenciais. É evidente que a IA terá um impacto significativo no domínio do desenvolvimento de software, tanto favorável como desfavoravelmente. Para começar, reconheçamos as vantagens que apresenta.
O fim do trabalho pesado
Na verdade, os programadores muitas vezes dedicam esforços consideráveis para garantir sintaxe e pontuação adequadas em seu código. No entanto, com os avanços tecnológicos, como os grandes modelos de linguagem, essas tarefas tediosas podem se tornar automatizadas, permitindo que os desenvolvedores se concentrem mais na definição do resultado pretendido de seu software, em vez de ficarem enredados nas minúcias das convenções de programação. Além disso, os LLMs demonstraram a capacidade de examinar minuciosamente o código existente em busca de erros, como vírgulas mal colocadas, palavras-chave mal colocadas em maiúsculas e várias outras discrepâncias incômodas que frequentemente incomodam os desenvolvedores durante o processo de desenvolvimento.
Reinventando estruturas
A implementação de Inteligência Artificial em estruturas de software como Spring, Express.js e Django aumentou significativamente a eficiência do desenvolvedor através da abstração de processos de desenvolvimento tediosos, estabelecimento de protocolos padronizados e fornecimento de código pré-escrito para funcionalidades recorrentes. Juntamente com os avanços na IA generativa, essas estruturas estão preparadas para se tornarem ainda mais valiosas, gerando código padrão, simplificando tarefas demoradas e propondo sugestões de otimização. Além disso, a capacidade da IA de adaptar elementos de estrutura para se adequarem a projetos individuais sublinha o seu potencial para revolucionar a forma como os programadores abordam o desenvolvimento de software dentro destas estruturas populares.
A ascensão do generalista
No domínio do desenvolvimento de software, os especialistas muitas vezes se orgulham de sua proficiência em linguagens de programação específicas. Porém, com o advento da inteligência artificial capaz de gerar código em diversas linguagens, esse conjunto de habilidades pode se tornar menos valioso. Além disso, tarefas como teste e otimização de código estão cada vez mais sendo assumidas pela automação. Como resultado, as habilidades mais procuradas provavelmente envolverão áreas onde a criatividade e a engenhosidade humanas permanecem indispensáveis, como a criação de interfaces de usuário cativantes, a conversão de conceitos abstratos em especificações acionáveis e a elaboração de estratégias inovadoras de suporte ao cliente. Por outras palavras, aqueles que possuem a capacidade de imaginar conquistas tecnológicas grandiosas através do código, coloquialmente referidos como “poetas do software”, assumirão o centro do palco na indústria.
Uma revolução nos testes
Gen AI foi feito para testes de software. O desenvolvedor escreve o código e o bot cria quantos scripts de teste você desejar. Uma pesquisa recente da IDC descobriu que os dois principais benefícios mais esperados da geração AI, por uma ampla margem, são a garantia de qualidade de software e os testes de segurança. Isso interromperá a prática DevOps de integração/implantação contínua e fará com que muitos especialistas em testes procurem novas linhas de trabalho.
Desenvolvimento cidadão com esteróides
O conjunto contemporâneo de recursos de programação de baixo código/sem código exibe um alto grau de proficiência, com potencial para a inteligência artificial elevar ainda mais suas capacidades. Apesar de seu refinamento automático, essas ferramentas exigem que os indivíduos organizem visualmente uma sequência de processo em um quadro branco antes de traduzi-la em código executável. Num futuro não muito distante, os usuários terão a capacidade de fornecer ao sistema uma representação pictórica do fluxo de trabalho preferido e receber o código necessário em poucos segundos.
IA não é uma panacéia, no entanto
Embora a Gen AI tenha um grande potencial, não deve ser vista como uma solução omnipotente. É importante considerar as possíveis desvantagens associadas ao seu uso.
Risco de testes excessivos
Várias ferramentas de teste que utilizam inteligência artificial surgiram nos últimos anos, com algumas até sugerindo quais testes devem ser removidos com base em suas previsões sobre o que irá falhar. Esse processo, conhecido como “curadoria de testes”, tem o potencial de agilizar significativamente o processo de desenvolvimento, eliminando testes redundantes ou obsoletos e, ao mesmo tempo, mantendo um nível adequado de cobertura. No entanto, existem preocupações sobre confiar apenas na automação para gerir esta tarefa, tais como a possibilidade de ignorar problemas críticos que apenas os testadores humanos poderiam detectar. Portanto, pode ser necessário encontrar um equilíbrio entre abordagens manuais e automatizadas para garantir a garantia de qualidade ideal no desenvolvimento de software.
Degradação de habilidades
A noção de que “uma pessoa preguiçosa é mais adequada para tarefas difíceis, pois descobrirá uma solução simples” foi erroneamente associada a Bill Gates. No entanto, esta ideia tem mérito. Indivíduos com tendência à letargia geralmente identificam métodos eficientes para contornar o trabalho árduo. O advento da Inteligência Artificial Geral (Gen AI) apresenta uma proposta tentadora para programadores preguiçosos. No entanto, esse fascínio tecnológico pode resultar na geração de códigos excessivamente grandes, dispendiosos e de baixo desempenho. Além disso, tal indulgência na Gen AI poderia sufocar a criatividade que distingue os programadores excepcionais, diminuindo assim o seu valor global. Deve-se notar que as habilidades de programação da Gen AI são derivadas de padrões e fontes de informação estabelecidos.
Déficit de confiança
A Inteligência Artificial Genética (IA) depende muito das informações utilizadas para seu ensino. Fontes de dados de qualidade inadequada, métodos de treinamento insuficientes e interfaces de usuário mal projetadas podem resultar em códigos de computador produzidos por IA que não atendem aos critérios exigidos, incluem erros ou não conseguem atingir o resultado desejado. Tais ocorrências podem minar a confiança na capacidade de uma empresa gerar GA de alta qualidade.
Agora a questão do dinheiro: a IA tornará os desenvolvedores de software obsoletos?
Embora alguns comentadores proeminentes possam propor tal noção, não existe nenhum fundamento histórico estabelecido para esta afirmação. Com o tempo, as inovações tecnológicas – desde linguagens de programação avançadas até paradigmas orientados a objetos e estruturas de software – melhoraram consistentemente a eficiência do desenvolvedor; no entanto, a demanda geral continua a aumentar. Embora a Geração AI possa potencialmente diminuir o mercado de competências fundamentais de codificação, a sua influência mais significativa será elevar todo o campo, facilitando atividades com as quais os atuais Modelos de Linguagem AI (LLMs) lutam atualmente. É importante reconhecer que os sistemas Gen AI se baseiam principalmente no conhecimento existente e não em possibilidades especulativas. Consequentemente, continua a ser altamente improvável que estas máquinas concebam independentemente interfaces inovadoras ou concebam novos conceitos como plataformas de partilha de viagens num futuro próximo.
À luz do cenário tecnológico em rápida evolução, é altamente improvável que os promotores testemunhem outra mudança transformadora durante o seu mandato profissional. Em vez de resistir à mudança, como era a minha inclinação inicial, caberia a eles abraçar e adaptar-se a essas mudanças. A ideia de reduzir significativamente o trabalho penoso associado ao desenvolvimento de software deveria suscitar entusiasmo entre todas as partes envolvidas. Além disso, a potencial perda de certas funções profissionais deverá servir de motivação para medidas proactivas. Desenvolvedores qualificados que possuem a capacidade de criar software excepcional e eficiente que atenda a necessidades comerciais complexas continuarão sendo muito procurados. É imperativo que os indivíduos se esforcem para elevar seus conhecimentos além do nível atual, expandindo seu conjunto de habilidades e subindo na hierarquia.
Keith Pitt é fundador e CEO da Buildkite.
*️⃣ Link da fonte:
[Pesquisa da IDC](https://d15sllkswkct0.cloudfront.net/wp-content/blogs.dir/1/files/2023/10/IDC-Generative-AI-Offers-Greatest-Expected-Developer-Benefits-to-Software-Teste de qualidade e teste seguido por teste de segurança de aplicativo-2023-1º de junho-800x451.jpg) , Buildkite ,