- Há dois principais padrões de uso de AI por desenvolvedores
- Bootstrappers:
- Usam ferramentas como Bolt, v0 e AIs de screenshot-to-code para gerar rapidamente protótipos iniciais.
- Usam a AI a partir de um design ou conceito como ponto de partida para gerar a base inicial de código e desenvolver um protótipo funcional em algumas horas ou dias
- Iterators:
- Usam ferramentas como Cursor, Cline, Copilot e WindSurf no desenvolvimento diário para completar código, fazer refatorações complexas e gerar testes e documentação
Diferença no uso de AI entre desenvolvedores experientes e iniciantes
- Desenvolvedores experientes: refatoram continuamente o código sugerido pela AI, tratam edge cases, fortalecem as definições de tipos e revisam decisões de arquitetura
- Desenvolvedores iniciantes: tendem a aceitar a saída da AI como está, correndo o risco de produzir um código tipo “castelo de cartas”, que pode quebrar em ambiente real
O paradoxo das ferramentas de AI: o paradoxo do conhecimento
- Desenvolvedores experientes: usam a AI para acelerar tarefas que já conhecem
- Desenvolvedores iniciantes: tentam usar a AI para aprender o que devem fazer
- Resultado: a eficácia do uso de AI varia muito de acordo com o nível de experiência
O problema dos 70% quando não especialistas usam ferramentas de programação com AI
- Progresso inicial: com ferramentas de AI, é possível implementar rapidamente 70% da funcionalidade desejada
- Os 30% restantes: ao tentar corrigir pequenos bugs, surgem novos problemas, e ao tentar resolvê-los pode começar um ciclo vicioso em que ainda mais problemas aparecem
Estratégias para usar ferramentas de AI de forma eficaz
- Padrão de rascunho com AI: gerar uma implementação básica com AI e depois revisar e refatorar manualmente
- Usar a AI como ferramenta de aprendizado: compreender o código gerado pela AI por meio de conversas contínuas, aprender junto conceitos básicos de programação e acumular conhecimento de forma gradual
- Reconhecer os limites da AI: ferramentas de AI são úteis para desenvolvimento de protótipos, apoio ao aprendizado e validação de ideias, mas ainda é necessário conhecimento real de engenharia para desenvolver software sustentável e pronto para produção
A ascensão da engenharia de software agentic
- Sistemas agentic: estão evoluindo para além de simplesmente responder a comandos, tornando-se sistemas capazes de planejar, executar e iterar
- Perspectiva futura: a AI não está substituindo desenvolvedores; ela está avançando para se tornar uma colaboradora cada vez mais proativa, que respeita a orientação e a expertise humanas enquanto ajuda a resolver problemas com iniciativa
- A AI já é útil para implementar padrões que você já conhece, prototipar ideias rapidamente e explorar diferentes abordagens
- Ela automatiza tarefas repetitivas e rotineiras de programação, permitindo focar em problemas mais interessantes
Cuidados ao usar ferramentas de AI
- Importância da experiência do usuário: com AI, é possível criar demos rapidamente, mas se não forem tratados com cuidado mensagens de erro, edge cases e estados de UI que podem surgir no uso real, isso pode gerar frustração para o usuário
- O renascimento do capricho artesanal:
- A AI acelerou o desenvolvimento de software, mas existe o risco de perder a arte de criar experiências com verdadeira qualidade para o consumidor.
- Ferramentas de AI podem assumir tarefas rotineiras de programação e ajudar desenvolvedores a se concentrarem nos detalhes realmente importantes.
Conclusão
- O papel da AI:
- A AI não serve apenas para escrever mais código mais rápido, mas para ajudar a construir software melhor
- A AI não melhora dramaticamente a qualidade do software.
- As partes difíceis do desenvolvimento de software ainda exigem julgamento humano.
- A AI permite explorar rapidamente soluções melhores, mas não pode substituir boas práticas de software.
- Responsabilidade humana: ainda cabe aos humanos usar a AI com sabedoria, manter princípios de engenharia e melhorar a qualidade do software
12 comentários
Usar tecnologia é bom, mas tem gente demais terceirizando até o pensamento; isso aparece ainda mais, especialmente em contextos de educação, e me preocupa. Sinceramente, eu não gostaria de trabalhar com pessoas assim.
Talvez seja parecido com a discussão de que a IDE estraga os desenvolvedores..
Estou cansado de corrigir código de IA gerado pelo cliente
Quando a IA começa a fazer julgamentos, parece não haver saída
Quando você dá feedback para a IA, parece que ela vai melhorando... até que, em algum momento, tudo desanda. É preciso ter o jeito de perceber esse momento. E, quando ele chegar, você precisa escolher entre abandonar a IA ou recomeçar.
Como vocês acham que
production-ready(pronto para produção, no contexto do texto) ficaria mais natural em tradução?em nível de prontidão para serviço real
em nível de produto
Pronto para o lançamento!
Eu costumo traduzir como pronto para lançamento ou preparado para lançamento.
"Pronto para lançamento" parece bom!
“pronto para implantação (em uso real ou para clientes)” algo assim, talvez?
E o que dizer do que foi validado na prática?
Na prática, parece que a expressão mais usada é battle tested.
Opiniões do Hacker News
A IA, assim como várias ferramentas do passado, tentou substituir partes da programação. Mas o trabalho essencial ainda exige o cérebro humano
A IA é como um desenvolvedor júnior entusiasmado da equipe
Foi possível desenvolver novas ferramentas rapidamente usando ferramentas de IA
Para desenvolvedores júnior, a IA é uma faca de dois gumes
O padrão de "confiar, mas verificar" é importante
csscolorparserdo Rust para PythonA IA consegue escrever código rapidamente, mas isso não acelera o processo de aprendizado
O Copilot falha em tarefas complexas
A GenAI pode entregar resultados profundos em soluções com requisitos bem conhecidos
É importante validar o trabalho da IA
É difícil encontrar, na prática, pessoas que realmente tenham tido um grande ganho de produtividade com IA