Ainda ninguém sabe como construir com IA
(worksonmymachine.substack.com)- No momento, a metodologia de desenvolvimento com IA ainda não está estabelecida, então todo mundo está experimentando
- Na era da IA, o conceito de especialista tradicional perde sentido, e todos são iniciantes permanentes
- O processo real de desenvolvimento acontece por meio de acúmulo improvisado de documentação e tentativa e erro iterativa
- Ao colaborar com IA, mesmo com pouco tempo de foco e entrada mínima, é possível gerar resultados enormes
- Até mesmo seu próprio sistema de documentação é temporário, e todos seguem em uma sequência de experimentos de uso único
The Great Experiment Nobody's Running the Same Way
- No desenvolvimento com IA, ninguém sabe qual é o método certo
- É um ambiente em que a expertise acumulada, como na teoria das 10.000 horas de Malcolm Gladwell, perde força
- A evolução das ferramentas de IA é rápida demais para acumular proficiência
- Até a programação em par com IA tem menos de dois anos de experiência acumulada, então todos continuam sendo iniciantes
My Current Experiment (Subject to Change)
- Antes de começar a trabalhar, há 4 documentos principais que servem como referência
pair_programming.mdproject_plan_{some extension}.mdtechnical_considerations.mdmcp-browser-architecture.md
- Esse sistema de documentos também não foi planejado desde o início; ele é um resultado acumulado de improviso
- No começo, tudo partiu de um único documento relacionado à arquitetura e, com problemas recorrentes e falhas de comunicação de informação, os documentos foram aumentando gradualmente até chegar a quatro
- Os quatro documentos não foram definidos como resultado otimizado, mas porque pareceu que não era mais necessário adicionar outros
- Às vezes dá a sensação de estar fazendo uma encenação para si mesmo, como se dissesse: “este documento é a arquitetura”, “este processo é o Official”
- O software real funciona, e o ponto central é que até esse tipo de sistema temporário produz resultados
- O papel de cada documento é o seguinte
- Architecture Overview: parte do README e registra “o que este software parece fazer”
- Technical Considerations: documenta frustrações ou problemas recorrentes; sempre que o Claude se confunde, mais detalhes são adicionados
- Workflow Process: documenta procedimentos repetidos; na prática, não são regras oficiais nem um documento sagrado, mas uma coleção de métodos que por acaso funcionaram desta vez
- Story Breakdown: blocos de tarefas divididos em unidades de 15 a 30 minutos. Como o Claude esquece rápido, isso serve para atualizar com frequência o histórico da conversa
Time Dilation in the Age of AI - Dilatação do tempo na era da IA
- Ao desenvolver o Protocollie recentemente, colaborar com IA foi uma experiência que abalou completamente a percepção de tempo do desenvolvimento de software tradicional
- O projeto avançava dando instruções ao Claude para trabalhar em certas funcionalidades e, enquanto isso, aproveitando a vida pessoal, com checagens periódicas e feedback simples
- O tempo de foco realmente dedicado ao “trabalho” foi de cerca de 90 minutos por dia, mas, nesse intervalo, a IA produzia rapidamente milhares de linhas de código
- Em comparação com a entrada fornecida, a quantidade e a velocidade dos resultados derrubam a lógica tradicional de insumo-produção, esforço-resultado e tempo-progresso
- Às vezes esse desenvolvimento tão rápido chega até a gerar culpa; por não se encaixar no paradigma tradicional de desenvolvimento, surge confusão e até uma sensação de estar trapaceando
Fase do “experimento espaguete”
O ambiente atual de desenvolvimento com IA é descrito como a fase do “experimento espaguete”
- Ou seja, o próprio ato de jogar espaguete na parede como experimento já tem valor; não importa tanto o que gruda ou permanece. Jogar é o experimento
- Todo tipo de tentativa desajeitada, falha experimental e procedimento que funcionou por acaso serve como ponto de dados em um experimento coletivo
- O sistema de 4 documentos usado pelo autor também pode perder sentido a qualquer momento, e o importante é manter o espírito experimental
Redefinindo o que é um programa - What Even Is Programming Anymore?
Ao olhar para a história da programação, surge o reconhecimento de que, com o avanço das abstrações, entramos numa era em que “descrever o que eu quero” leva à implementação
- Usar IA está se tornando algo mais do que uma simples nova camada de abstração; está virando uma entidade completamente diferente
- A programação de agora exige novas capacidades, não tanto conhecimento de sintaxe, compreensão de algoritmos ou habilidade de design de sistemas, mas sim 'imaginação concreta' e 'expressão precisa da intenção'
- “A capacidade de explicar com clareza e consistência o que se quer” se torna mais importante do que qualquer outra coisa
O significado filosófico do sistema de quatro documentos - The Four-Document System as Accidental Philosophy
- Esse sistema de 4 documentos é, no fim, um registro de memória e esquecimento, de “experiências que não se quer repetir”
- Architecture Overview: “o que eu gostaria de saber se tivesse amnésia”
- Technical Considerations: “problemas que eu não quero repetir”
- Workflow Process: “padrões que eu não quero perder”
- Story Breakdown: “como avançar numa situação em que tudo parece começar de novo toda vez”
- Todos os documentos acabam funcionando como mensagens para o eu do futuro
- No fim, têm o caráter de instruções deixadas para si mesmo em preparação para a perda de informação
O platô desconfortável e o iniciante permanente - The Uncomfortable Plateau
Agora é como se todos tivessem virado desenvolvedores júnior, presos para sempre em um estado instável de iniciante
- Diferentemente do júnior tradicional, nem sequer há tempo para se tornar experiente, por causa da velocidade com que a tecnologia muda
- Em meio a “leis da física” em constante transformação, adaptação e espírito experimental se tornam mais importantes do que proficiência estável
- Essa incerteza pode ser assustadora para quem é obcecado por controle, mas, se aceita, também traz uma grande sensação de libertação
Where This All Goes
Não há como saber o que será construído depois, qual processo será usado ou se os quatro documentos criados desta vez continuarão sendo usados
- Todo desenvolvedor é, ao mesmo tempo, especialista na própria rotina e iniciante completo em novas situações
- Quando quatro dias de trabalho podem equivaler a vários meses do passado, a capacidade de explicar o que se quer emerge como a habilidade decisiva
- Esses quatro documentos também não passam de uma recomendação ou template; são apenas um vestígio de um experimento coletivo
- Documentos, processos e métodos são todos produtos temporários, e o jeito de outra pessoa pode não ser a sua resposta
No fim, todos estamos construindo castelos de areia (software) na maré baixa, conscientes de que a onda do progresso logo vai varrê-los de novo
Em breve, alguém vai tentar um sistema de 3 documentos, um sistema de 5 documentos ou uma abordagem completamente diferente, e isso também pode funcionar
Conclusão
- Desenvolver com IA é um experimento coletivo e uma sequência contínua de tentativa e erro criativa
- Até o processo de uma única semana já pode virar uma relíquia do passado de tão rápido que tudo muda
- Os rastros deixados por outras pessoas podem ajudar, mas o que realmente importa é cada um criar o seu próprio caminho
Por fim, os quatro documentos usados pelo autor estão atualmente públicos no GitHub
- Isso não é uma resposta absoluta nem um template, mas um exemplo de experimento em um momento específico
- Destaca-se que vale observar os rastros de outras pessoas, mas não é necessário segui-los exatamente
- Desenvolver os próprios experimentos e metodologias é o que forma o novo ecossistema de desenvolvimento da era da IA
4 comentários
Eu ia traduzir e postar no fim de semana, mas o GN+ acabou tomando esse trabalho de mim 🥲
Na parte "o sistema de documentação também não foi projetado desde o início, mas é o resultado de um acúmulo improvisado", senti uma identificação fortíssima e até soltei uma risadinha. rsrs
Que comentário estranho de algum charlatão dizendo que fulano é professor.
Comentários no Hacker News
Me identifiquei muito com este texto. Acabei encontrando por acaso a Lei de Kidlin, isto é, a ideia de que “se você consegue escrever um problema de forma clara, então ele já está meio resolvido”. É um princípio muito forte na era atual da IA. Como a linguagem natural se tornou o principal meio de comunicação com a tecnologia, conseguir definir claramente o problema também permite maximizar o potencial da IA. A abordagem de programação assíncrona também é realmente interessante. Pessoalmente, uso o Repl.it com muita frequência, e isso tem sido uma mudança incrível porque me permite focar na resolução do problema. Quando uso ferramentas de programação, sinto como se tivesse pego uma estrela ou um cogumelo no Mario Kart. É empolgante demais, mas às vezes a IA vai para uma direção completamente estranha, então é preciso intervir nas decisões em tempo real. Já era difícil gerenciar uma única stack, e agora parece que estou lidando com stacks infinitas
Isso também me faz lembrar com frequência que, no meu próprio processo de crescimento como engenheiro de software, passei muito tempo aprendendo a própria terminologia do mundo do software para conseguir explicar o que eu queria fazer
Com o Repl.it, algo que quando funciona muito bem pode ser resolvido em poucos minutos às vezes acaba levando a tarde inteira. Mas, às vezes, é muito frustrante quando até mesmo tentar as sugestões logo abaixo da caixa de prompt não funciona direito
Na verdade, sempre foi difícil enunciar claramente um problema, e continua sendo. É muito legal que agora existam ferramentas que transformam linguagem natural clara em código, mas mesmo que surja AGI, o trabalho de produzir especificações claras em si não vai mudar. As ferramentas podem reduzir o tempo gasto brigando com a codificação em si, mas no fim das contas escrever uma especificação realmente clara continua sendo a parte mais difícil
Estou gostando demais desse novo jeito de programar. Não sei para onde isso vai, mas por enquanto estou satisfeito. Ainda hoje estou criando código em horários que normalmente seriam de descanso, e isso parece descanso. É especialmente bom para desenvolvedores sêniores com muitos anos de carreira. Hoje em dia, boa parte do trabalho de edição é entediante. Quando olho para um código e percebo padrões errados, preciso mudar muita coisa para experimentar uma ideia nova, e tarefas que antes exigiam pesquisar no Stack Overflow e pensar bastante agora são resolvidas com uma dica do Copilot, ou simplesmente pelo Claude. Por exemplo, fiz uma bolsa de valores simulada, algo que antes eu costumava adiar porque conectar a uma bolsa real era trabalhoso. Agora o Claude faz tudo enquanto eu leio o HN. Se eu quiser implementar estratégias em cima disso, até o trabalho repetitivo que era basicamente só tédio é resolvido na hora. Antes, coisas como erros de digitação e adicionar dependências consumiam muito tempo, mas agora isso nem é mais necessário. Dá para se preocupar se o código vai virar uma bagunça, mas eu sempre converso com o Claude e reviso criticamente as mudanças. A experiência ajuda, claro, mas também dá para perceber rapidamente quando a IA está indo na direção errada. Então acabei encontrando essas ferramentas exatamente no momento certo da minha carreira. O problema continua sendo os desenvolvedores júniores. É como subir de uma vez ao topo de uma montanha sem escada, então fico me perguntando como eles vão conseguir evoluir
Concordo com a preocupação sobre o futuro dos desenvolvedores júniores. Tenho quase 50 anos e programo em várias áreas há mais de 30 anos, então consigo lidar bem com agentes e sei como construir uma arquitetura sólida com base na minha experiência. Se, sem experiência, tudo vier pronto da IA, realmente fico curioso para saber como os mais novos vão crescer. Só o tempo vai dizer
Eu também uso modelos de linguagem grandes com prazer, mas ficar só digitando prompts o tempo todo também é entediante e um pouco inquietante. Dá a sensação de não saber exatamente como o programa funciona. Fazer algo com as próprias mãos é muito divertido, e eu deixo para o LLM as tarefas repetitivas que já fiz antes ou trabalhos com os quais não me importo tanto. Até fiz um jogo da cobrinha no terminal com o Claude, e foi realmente impressionante
Fico curioso se você percebeu por si mesmo que não dá mais para voltar àquelas tarefas miúdas de antigamente. Desde a chegada dos LLMs, aumentou em mim a vontade de sair um pouco enquanto trabalho. Até dá inveja que os desenvolvedores iniciantes não precisem mais passar pela experiência de ficar 12 horas olhando para o monitor e desperdiçando tempo sem conseguir conectar duas caixas-pretas
Fico curioso se, na prática, você implementa tudo de uma vez, do começo ao fim. Eu sempre implemento de forma iterativa e incremental, escrevendo e refinando aos poucos. Numa analogia com desenho, primeiro esboço o todo e depois vou refinando cada vez mais os detalhes. A cada etapa, fica um pouco mais claro o que eu quero fazer, e é um jeito de obter o máximo efeito com o mínimo esforço. Na programação, meu estilo é centrado em refatoração: faço primeiro um código minimamente funcional, deixo comentários
TODOe vou melhorando em ciclosEssas ferramentas são realmente empolgantes porque assumem tarefas tediosas que eu já fiz milhares de vezes antes
Para mim, IA é a próxima geração da busca do Google, capaz de conversar em cima de toda a informação existente na internet. Assim como a popularização dos mecanismos de busca eliminou empregos em vários setores, como jornais, listas telefônicas, enciclopédias e agências de viagem, a IA também está trazendo esse tipo de mudança. Mas não acho que isso seja uma crise existencial tão grande quanto muitos imaginam. IA é apenas uma ferramenta. Pessoas inteligentes e criativas vão usar essa ferramenta para fazer muitas coisas incríveis. No fim, tudo depende de quem usa. A busca virou conversa. Antes eu pesquisava diretamente; agora eu converso, e a IA pesquisa por mim e faz até mais do que isso
Não tenho certeza se a interface conversacional de LLM é mesmo a forma ideal. Parece que precisamos de uma abordagem mais inteligente
Diferentemente do auge do Google, agora há mais ruído do que sinal, e a origem dos dados também está mais nebulosa
Já sinto que os resultados de busca do Google mostram primeiro muito lixo produzido por IA antes de exibir informações realmente úteis
Os mecanismos de busca atuais dão apenas a resposta e não mostram o caminho até ela, então o papel de quem busca e registra informações corretamente está desaparecendo. Se essa parte desaparecer, no fim todos vão perder a direção. Como a IA reutiliza informações já existentes, precisamos de uma forma de devolver receita aos criadores, especialmente aos bons jornalistas. Caso contrário, há um grande risco de corroer as bases da democracia. A indústria de notícias já está em crise há anos, e como resultado temos visto desconfiança, polarização, desinformação e manipulação externa. A IA pode acabar dando o golpe final no setor. Não é apenas uma questão de substituição de empregos; o caminho que estamos seguindo agora é realmente sombrio
Fora da busca, ela também é claramente útil em várias outras áreas
Quero rodar o Claude Code no celular, conectado a uma VM em nuvem, para continuar trabalhando e dando feedback enquanto caminho ou ando de bicicleta
https://vibetunnel.sh
A proporção entre entrada e saída é interessante. Normalmente tentamos maximizar a quantidade de output, mas agora é o contrário. Em vez do volume máximo, eu quero que o processo do trabalho seja dividido em etapas concretas e verificáveis. Quando escrevo requisitos junto com o Cursor, no começo funciona bem, mas há o problema de ele gerar por engano grandes quantidades de código que fogem do plano. Também há detalhes pequenos, como não conseguir adicionar uma linha em branco depois de um título Markdown, ou a necessidade de repetir a mesma instrução várias vezes. Sinto que gostaria de ter mais controle sobre o processo iterativo, a qualidade e a consistência. A IA mostra seu verdadeiro valor quando consigo transformar o problema em algo fechado, que pode ser testado. Preciso de uma ferramenta que me ajude a converter problemas abertos em problemas fechados
Como essa experiência de “entrar no escritório, testar o que o Claude fez, e se estiver bom fazer commit e push” continua se repetindo, tenho a sensação de que vou ganhar muito dinheiro no futuro como consultor de cibersegurança
Acho que isso não é vibe coding, é algo totalmente novo. Eu chamo de “flex coding”. Em uma única tarde, fiz um aplicativo inteiro e ainda consegui ser um bom pai. Eu dizia “agora faz a UI de conexão com o servidor”, e o Claude ia codando enquanto eu voltava para a vida normal. Eu fazia o café da manhã, brincava com meu filho, assistia TV, e nesse meio-tempo o Claude continuava programando. A cada uma ou duas horas, eu passava lá, testava e dava feedback
Isso é emocionalmente muito atraente e provavelmente o estilo de vida com que muita gente sonha, mas o código do Claude é realmente confiável nesse nível? Dá para cobrar clientes ou usar isso em produtos que carregam meu nome? Minha resposta é “não”. Usando na prática, vi com frequência erros de referência, copiar e colar tipos existentes trocando só o nome, e até situações sem erro de tipo algum. Quando pedi que escrevesse testes, às vezes ele criava testes estranhos que, se falhassem, não falhavam de verdade — no fim só passavam por uma autoverificação interna. É ótimo passar um tempo precioso com a família, mas eu não recomendaria usar um app que eu fiz desse jeito em algo importante
Isso também me faz pensar por que alguém pagaria salário a uma pessoa que trabalha desse jeito e por que eu pagaria por software se eu mesmo posso fazer
Só um aviso: daqui a pouco o Claude talvez comece a reclamar que você também deveria trabalhar um pouco
Sinto limites nas ferramentas de software baseadas em LLM. Não há nem uma forma de aplicar um único system prompt global em todos os apps baseados em OpenRouter Key, e também é difícil mover uma conversa de um app para outro. Nem mesmo o mesmo acesso a ferramentas MCP é oferecido de forma adequada em todos os apps. A UX do Claude Code parece a melhor no momento, mas eu não quero ficar preso a uma assinatura do Claude e queria poder me conectar ao provedor que eu quisesse usando a minha própria chave
Acho que se deixou passar coisas como segurança, internacionalização, localização, acessibilidade, usabilidade etc. nas partes que foram "prompteadas" com sucesso. O problema é que há gente demais se chamando de “criador de software” sem esses elementos de qualidade. Se esses aspectos ficarem de fora, jamais haverá sucesso em software comercial. Se alguém acha que dá para resolver facilmente essas partes só com prompt, então essa pessoa não tem experiência séria nessas áreas
Para ser justo, mesmo em software comercial real muitas vezes esses pontos também não são devidamente considerados
Eu também sou cético, mas, entre os quatro documentos vinculados, pelo menos os de acessibilidade e usabilidade estão incluídos. Internacionalização e localização não aparecem, mas não acho que sejam essencialmente tão diferentes. Já a questão de segurança realmente me parece um campo à parte
É surpreendente que ainda haja muita gente acreditando que um desenvolvimento do tipo “meu sistema de quatro documentos? No fim é só espaguete que virou padrão e amanhã pode desmoronar tudo. É só jogar mais espaguete de novo” vá escalar
Ultimamente tenho experimentado o desenvolvimento baseado em modelos e me identifiquei profundamente com a parte do texto sobre “o que é programação?”. Uso toda a minha experiência de 25 anos e toda a minha formação em ciência da computação, mas isso já não parece mais programação tradicional de escrever código à mão. Agora parece mais que sou um piloto controlando ferramentas do que alguém construindo algo manualmente. Acho que quem gosta de trabalho manual tem uma boa chance de deixar o setor nos próximos 5 anos. Claro que ainda haverá partes que exigem trabalho manual, mas uma nova metodologia está se abrindo. Hoje ninguém domina totalmente essa metodologia, mas ela também vai passar a fazer parte do setor