7 pontos por GN⁺ 2025-03-25 | 1 comentários | Compartilhar no WhatsApp
  • Com a rápida proliferação de ferramentas de codificação baseadas em IA, alguns desenvolvedores individuais têm obtido resultados impressionantes com IA, mas em equipes reais de engenharia o impacto muitas vezes é pequeno
  • Há 2 motivos para essa diferença de resultados: "greenfield vs base de código grande", "single-player vs multiplayer"
  • Por isso, faz sentido prever novos fluxos de trabalho de programação para IA e a direção futura da seguinte forma:
    • Muitas empresas estão contratando mais engenheiros — especialmente as boas empresas
    • O maior desafio são bases de código em larga escala — é onde o valor real é criado
    • Robô vs Homem de Ferro — a diferença filosófica entre ferramentas de IA
    • Otimização da felicidade do desenvolvedor — quais tarefas penosas a IA pode assumir?
    • Rastrear código gerado por IA é um antipadrão — não caia na tentação de rastrear

Causas da diferença de resultados

  • Greenfield vs base de código grande
    • A maioria das ferramentas de IA é otimizada para novos projetos (greenfield)
    • Em bases de código antigas, a utilidade cai
  • Single-player vs multiplayer
    • Os fluxos de trabalho atuais com IA são centrados no modo single-player
    • Ao colaborar em equipe, surgem problemas (conflitos de merge, tratamento de contexto complexo etc.)

"Os fluxos de trabalho com IA funcionam razoavelmente bem quando se trabalha sozinho, mas em equipe há muitos conflitos e ineficiências."

Empresas de alto nível estão contratando mais engenheiros

  • A previsão de que o avanço da IA reduziria a demanda por engenheiros está errada
  • Quando a IA aumenta a produtividade, no fim isso leva a mais contratações de engenheiros: o paradoxo de Jevons
  • Reações organizacionais à adoção de IA

    • Times de ponta: adoção de IA aumenta a produtividade → contratação de mais engenheiros
    • Times medianos: sem mudança nas contratações devido à burocracia e aos custos de coordenação
    • Times de baixo desempenho: a tecnologia vira apenas uma ferramenta simples → redução da equipe para cortar custos

O maior problema são as bases de código em larga escala

  • A IA é excelente para resolver problemas algorítmicos, mas o desempenho em trabalhos reais de freelancer é fraco
  • A principal causa é a falta de contexto
  • Formas de fornecer contexto a partir da base de código:
    • Fine-tuning → imprevisível e caro
    • Expansão da context window → difícil garantir precisão
    • RAG (Retrieval-Augmented Generation) → atualmente a abordagem mais promissora

Um bom RAG é a chave para escalar ferramentas de codificação com IA

Robô vs Homem de Ferro: a diferença filosófica entre ferramentas de IA

  • Ferramentas autônomas → operam como agentes independentes
    • Recebem comandos no Slack e enviam PRs automaticamente
    • Ex.: Devin, Lindy
  • Ferramentas de aumento → humanos lideram o trabalho e a ferramenta atua como apoio
    • Usadas como assistentes no IDE, e o PR final é enviado por uma pessoa
    • Ex.: Augment, Cursor
  • Qual estratégia é mais vantajosa?

    • Loop de feedback → ferramentas de aumento conseguem corrigir erros mais rápido
    • Escalabilidade → ferramentas autônomas correm o risco de aumentar a complexidade organizacional
    • Abordagem centrada no humano → ferramentas de aumento evoluem para fortalecer as pessoas

"A IA não deve criar uma guerra dos clones, e sim os Vingadores"

Otimização para a felicidade do desenvolvedor

  • Equipes bem-sucedidas focam não em produtividade, mas em felicidade do desenvolvedor
  • O foco é usar IA para reduzir tarefas simples e penosas
  • Tipos de Toil que a IA pode resolver
    • 1) Automação de testes
      • A IA escreve código de teste → reduz a carga de código boilerplate
      • Aumenta a recompensa por escrever especificações antecipadamente → facilita a adoção de TDD
    • 2) Automação da documentação
      • A IA escreve comentários de código e especificações técnicas → reduz a carga de manter documentação
      • A IA consegue explicar a estrutura e o funcionamento do código → porém a intenção por trás da escrita do código ainda precisa ser explicada por humanos
    • 3) Melhoria da qualidade do código
      • É possível verificar estilo de código e vulnerabilidades de segurança
      • Exemplos de ferramentas de IA: Augment, Packmind, Codacy

Rastrear código gerado por IA é um antipadrão

  • Se a IA trabalha de forma autônoma, torna-se necessário rastrear resultados
  • Mas, quando a IA amplia as capacidades humanas, separar código de IA e código humano não faz sentido
  • É mais eficaz focar em produtividade e satisfação do desenvolvedor

Principais implicações

  1. A adoção de IA aumenta a contratação de engenheiros → com o paradoxo de Jevons, mais produtividade leva à expansão do emprego
  2. É preciso adotar IA no modo multiplayer → é necessário fortalecer a colaboração em equipe
  3. É preciso resolver o problema das bases de código em larga escala → fornecer contexto é essencial
  4. Ferramentas de aumento são mais vantajosas que ferramentas autônomas → humanos lideram e a IA dá suporte
  5. Otimizar a felicidade do desenvolvedor → valorizar mais a felicidade do que a produtividade
  6. O retorno do TDD → a IA reduz o peso de escrever testes
  7. Menor carga de documentação → a IA escreve automaticamente comentários de código e especificações técnicas
  8. Melhoria da qualidade do código → a IA verifica estilo de código e problemas de segurança
  9. Rastrear código de IA não faz sentido → o desempenho deve ser avaliado pela produtividade e satisfação gerais

1 comentários

 
livekth 2025-03-25

É difícil concordar com o ponto 1.

  • As boas empresas tentam contratar apenas engenheiros excelentes. Esses recursos de engenharia são limitados. Por isso, as contratações não aumentam.

Eu sinto muito isso. Porque, apesar de estarmos tentando contratar bons engenheiros em uma empresa pequena, realmente não é nada fácil.