Bluesky, Mastodon, Telegram e RSS

IA e desenvolvimento de software

Vocês conhecem algum estudo sério que correlacione a adoção de ferramentas de IA (como copilot) no desenvolvimento de software e um aumento significativo de produtividade? Descobri esses dias que a empresa aumentou as metas por funcionário para o ano e a justificativa é ter adquirido licença de várias ferramentas de IA para desenvolvimento…

10 comentários

10 comentários

  1. Na minha experiência (e portanto não são dados críveis), minha produtividade aumentou bastante. Mas efetivamente, como falaram abaixo, são na maioria das vezes code complete, que outras ferramentas poderiam fazer (mas nunca fizeram tão bem)!
    Eu vejo muito ganho especialmente em (unit) testes, quando tenho que testar se uma função fez a modificação que eu esperava, por exemplo.
    Antes, eu costumava testar alguns campos aleatórios de um objeto, por exemplo, por simples preguiça/achar perda de tempo, testar os outros. 99% das vezes isso é ok. Mas daí pega aquele 1% das vezes em que um campo depende de outro e ele não foi testado.
    Agora eu começo a digitar os asserts, e o copilot sugere outros muitos. Eu só dou um tab e confiro se está tudo ok!

    Por outro lado, algumas vezes eu pego um PR (ou eu mesmo abro), em que o código é totalmente escrito por IA, não é limpo, é duplicado, e algumas vezes inclusive tem erros de lógica. Também acontece de usar bibliotecas externas desnecessárias. Ou ainda, fugir do padrão do projeto. Um caso clássico: O chatGPT prefere usar o unittest do python. No projeto usamos o pytest. Frequentemente tenho que recusar PRs que vem com unittest.

    Mais um ponto. O chatGPT (e similares) serve muito bem como rubber duck. Aquele patinho de borracha para quem você explica o problema e descobre a solução enquanto explica? Pois é. Explicar para essas LLM é uma boa ideia. Se a solução não surgir enquanto explica, as vezes elas dão uma dentro e sugerem algo de útil (mas nem sempre!).

  2. imagino que o cenário ideal seria acompanhar de perto os estagiários/juniores que utilizam, pois eles tendem a aceitar a sugestão sem muito questionamento seguindo o mantra ‘se tá funcionando, tá certo’.

    já os plenos e seniores, em geral, tem o senso crítico de como extrair o máximo da IA, então ele literalmente voa nas demandas.

    percebam que falo em linhas gerais, na minha bolha é assim, sei que tem junior que trampa melhor que pleno e que tem senior que nem sabe o que tá fazendo, mas é parente do dono hahahhahaha

  3. Na coluna da professora Vivian no xadrez verbal ela trouxe que tem uma pesquisa do banco mundial mostrando que inicialmente o ganho não seja monstruoso quanto se esperava mas sim algo mais incremental.

  4. Um estudo não conheço, não. Porém seria um tanto difícil sair um estudo confiável nesse momento, pois a adoção da IA por conta das grandes desenvolvedoras ainda é muito recente. E tem muitos dados duvidosos também, como grandes empresas dizendo que teve tantos porcento de aumento na produtividade graças a IA, outras dizendo que já substituíram trocentos engenheiros por IA e que “já está funcionando”, blá blá blá. Não dá para confiar nesses dados sozinhos, pois tais empresas podem estar interessadas em emitir uma visão favorável ao IA para justificar o enorme investimento que fizeram.

    Dito isso, cara, acho que nem precisa de um grande estudo para estimar o impacto da IA no desenvolvimento. Tirando o hype, que de fato existe, essas ferramentas de fato fazem algo real, solucionam problemas reais (eu tenho usado com frequência). Acho um grande erro quando o pessoal descarta toda essa industria dizendo que é “tudo hype”.

    Sim, a IA às vezes se assemelha muito com aqueles hypes anteriores (NFT e Metaverso) mas em essência, não tem absolutamente nada a ver com eles. IA está entregando resultados reais todos os dias.

  5. Achei esse estudo aqui, feito por pesquisadores da Universidade do Texas em Austin, que talvez você possa usar para argumentar na sua empresa:
    https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4856935
    Basicamente ele diz: “descobrimos que o Copilot aumenta significativamente a produtividade ao nível do projeto em 6,5%. […] As nossas conclusões revelam um aumento de 5,5% na produtividade individual e um aumento de 5,4% na participação. No entanto, isto é acompanhado por um aumento de 41,6% no tempo de integração, potencialmente devido a custos de coordenação mais elevados. Curiosamente, também observamos os efeitos diferenciais entre os desenvolvedores. Verificámos que os programadores principais obtêm maiores ganhos de produtividade ao nível do projeto com a utilização do Copilot, beneficiando mais em termos de produtividade e participação individual em comparação com os programadores periféricos, plausivelmente devido à sua maior familiaridade com projetos de software.”
    Ou seja, os ganhos de produtividade em codificação são menores que 8%, acompanhados de um maior tempo de integração, além do benefício ser maior para os programadores principais de cada projeto (que têm mais familiaridade com o código), em detrimento de quem contribui eventualmente.

  6. Os dados de IA no desenvolvimento de software são relativamente recentes, então os estudos estão começando a sair. Recentemente lembro de ter lido dois:
    https://finance.yahoo.com/news/over-25-google-code-now-151413292.html;
    https://github.blog/news-insights/research/does-github-copilot-improve-code-quality-heres-what-the-data-says/;

    A questão central pra mim é que a maioria das divulgações são feitas justamente pelas empresas que querem te vender a IA, então eu fico sempre com um pé atrás. Por exemplo, 25% do código gerado por IA no Google pode ser simplesmente autocomplete, que 20% já poderia ter sido autocompletado por uma ferramenta integrada ao editor. Mesma coisa para os dados do GitHub que foi detalhado nesse artigo aqui: https://jadarma.github.io/blog/posts/2024/11/does-github-copilot-improve-code-quality-heres-how-we-lie-with-statistics/

    1. Eu fico com os dois pés e o resto do corpo atrás, Caio 😁 “Estudos” conduzidos ou financiados por empresas que vendem IA não têm credibilidade nesse debate. Precisamos de pesquisas independentes.

  7. Caraca, na empresa que acabei de entrar (terceira semana), ja entrei na semana que adotaram obrigatóriamente o uso do Cursor.

    Tive a interpretação de que querem trazer a maior produtividade/agilidade possível com a ferramenta.

    Parece que vai revolucionar as entregas dos times. Rs

  8. isso é muito novo, não deve existir esse tipo de pesquisa … e se existir não deve ser confiável

    programação é uma atividade artesanal, por mais que os empresários queiram transformá-la em linha de montagem

    isso é antigo, até a própria linguagem COBOL supostamente iria facilitar programação e diminuir a necessidade de mão de obra especializada

    IA ajuda na montagem de pequenos (muito pequenos) programinhas de teste, geralmente com erros, mas úteis … no geral, é um substituto do Stackoverflow

    ou então na consulta e explicação de documentação

    não justifica em absoluto esse absurdo de “aumento de produtividade”

    e para a IA substituir os programadores, “só daqui a 20 anos”

  9. O Luciano Ramalho mencionou outro dia a famosa “Lei de Kernighan” diz que depurar é mais difícil do que programar, especialmente código que não foi você que escreveu, para questionar o uso da IA na programação, e ele também estava procurando estudos a respeito (em especial ele estava falando no contexto do ensino de programação). Post no linkedinho: https://www.linkedin.com/posts/lucianoramalho_i-would-like-to-find-serious-studies-on-the-activity-7285719709944025088-uMCB

    Sou particularmente cético em relação ao aumento de produtividade e vi este outro artigo aqui em inglês também:
    https://sdtimes.com/ai/podcast-the-negative-long-term-impacts-of-ai-on-software-development-pipelines/