- Ao contrário da ideia comum de que a inteligência artificial transforma desenvolvedores em “gerentes” ou “editores”, o autor propõe a abordagem de “programar como um cirurgião”, enfatizando uma forma de trabalhar focada nas tarefas centrais
- Assim como um cirurgião conta com o apoio de auxiliares para se concentrar apenas na parte principal da cirurgia, o desenvolvedor delegaria tarefas secundárias por meio de ferramentas de IA e se dedicaria à resolução dos problemas essenciais
- As tarefas principais (por exemplo, prototipagem de UI) ainda são realizadas diretamente por pessoas, enquanto trabalhos repetitivos como documentação, correção de bugs e exploração de código são tratados por agentes de IA
- Ao atribuir à IA tarefas simples e repetitivas, é possível delegar o trabalho braçal sem problemas de hierarquia de status e, graças à disponibilidade 24 horas por dia, também dar instruções à noite ou na hora do almoço
- Essa forma de trabalhar se conecta ao conceito de “autonomy slider”, de Andrej Karpathy, sugerindo que a estratégia de uso da IA deve variar conforme o nível de autonomia da tarefa
Programar como um cirurgião: conceito central
- Em oposição à previsão comum de que a IA transformará desenvolvedores em gerentes ou editores, o texto propõe uma forma de trabalhar como um cirurgião (Surgeon)
- O cirurgião opera diretamente, mas, com a ajuda de uma equipe de apoio para a preparação e tarefas secundárias, consegue se concentrar apenas no trabalho central que exige sua especialização única
- Da mesma forma, desenvolvedores podem usar a IA como equipe de apoio para focar nas tarefas criativas essenciais
- O autor, como prototipador de UI, busca usar ferramentas de IA para investir 100% do tempo em trabalho significativo
- Delegando tarefas secundárias que a IA consegue executar, é possível maximizar a produtividade
Tarefas secundárias que podem ser delegadas à IA
- Lista de tarefas auxiliares que a IA consegue executar bem
- Escrever guias sobre a base de código antes de grandes mudanças
- Gerar rascunhos de código de “spike” para tentativas de mudanças grandes
- Corrigir erros de TypeScript ou bugs com especificação clara
- Escrever documentação sobre a funcionalidade em desenvolvimento
- Essas tarefas podem ser executadas de forma assíncrona em segundo plano
- A IA pode trabalhar durante o almoço ou à noite, permitindo revisão imediata no dia seguinte
- Com isso, como “um cirurgião que entra em uma sala de operação já preparada”, o desenvolvedor pode se concentrar na programação central com toda a preparação já concluída
Cuidado com o autonomy slider
- Há uma grande diferença entre tarefas centrais e tarefas auxiliares na forma de usar IA
- Design central e prototipagem ainda são feitos diretamente por pessoas, e loops de feedback rápidos e alta visibilidade continuam sendo importantes
- Já as tarefas secundárias são mais eficientes quando delegadas à IA com autonomia por longos períodos
- Para sessões longas sem supervisão, o autor prefere Claude Code e, mais recentemente, Codex CLI
- Essa distinção é semelhante ao conceito de “autonomy slider”, de Andrej Karpathy
- As ferramentas e a forma de pensar necessárias mudam conforme o nível de autonomia, e confundir isso é perigoso
IA e o conceito de “equipe cirúrgica de software”
- O conceito de “cirurgião de software” é uma ideia antiga proposta por Harlan Mills em 1975 em "The Mythical Man-Month", de Fred Brooks
- A estrutura gira em torno de um “chief programmer”, apoiado por um “copilot” e equipe administrativa
- No passado, esses papéis de apoio eram desempenhados por pessoas, mas a IA os substitui de forma economicamente viável
- O autor destaca que essa mudança significa mais do que simples redução de custos
- Ela ajuda a aliviar problemas de hierarquia de status
- Ao delegar à IA o trabalho repetitivo e tedioso de grunt work, reduz-se o problema da distribuição desigual de tarefas dentro da equipe
- Como a IA está disponível 24 horas por dia, ela também pode executar pesquisas noturnas ou análises de código que seriam inviáveis para um estagiário humano
Notion e a expansão da forma de “trabalhar como um cirurgião”
- O autor explica que essa abordagem já está sendo implementada na Notion, onde trabalha
- A empresa apoia ativamente o uso de ferramentas de programação com IA, e a base de código também é projetada com isso em mente
- O ganho de produtividade é especialmente grande para desenvolvedores que acabaram de entrar em uma base de código extensa
- Do ponto de vista do produto, a Notion quer expandir essa forma de “trabalhar como um cirurgião” para todos os trabalhadores do conhecimento, não só programadores
- O objetivo principal não é delegar o trabalho central, mas identificar e delegar tarefas secundárias repetitivas e menos importantes, ajudando as pessoas a se concentrar no que é mais importante
7 comentários
Parece significar que devemos focar no trabalho do núcleo e deixar as tarefas periféricas para a IA. Concordo bastante com isso, e acho que trabalhos que não pertencem ao domínio central, que em parte podem ser substituídos por alguns SaaS, ou tarefas administrativas, parecem passíveis de substituição por IA.
O ponto que tende a gerar mais debate, porém, deve ser se é possível substituir por IA o trabalho do núcleo. No fim, a tendência vai seguir para o lado que entregar melhores resultados. Vendo a IA resolver problemas de IOI ou de LeetCode, às vezes ela chega a mostrar uma capacidade de programação muito superior à dos humanos. Fazer previsões precipitadas parece ir além da minha capacidade, então acho melhor observarmos como isso evolui.
Essa analogia é uma comparação completamente errada que não consegue captar a essência.
Cirurgia é uma atividade irreversível, enquanto programação é uma atividade reversível (ou seja, em que dá para fazer
save and load).Se a cirurgia também se tornasse reversível, os cirurgiões também mandariam subordinados que sabem operar fazerem a cirurgia e, por trás, seria mais eficiente cuidar do design, da revisão e do gerenciamento. Se desse errado, bastaria reverter.
Concordo. Acho que, de forma parecida, também há muitos casos em que a engenharia de software é confundida com a engenharia da construção civil.
Se você quer mesmo programar como um "cirurgião", então não seria preciso fazer com que só pessoas formadas em Ciência da Computação pudessem programar? Se aumentarem as vagas em Computação, os programadores também deviam se unir e fazer greve...
Por que não existe um auxiliar de codificação!?
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Comentários do Hacker News
Se um cirurgião iniciante começar uma operação acreditando que a enfermeira ou o anestesista vai impedir seus erros, pode matar o paciente muito rápido
O fato de uma equipe cirúrgica ser necessária não significa que o treinamento de um cirurgião sênior seja desnecessário
O problema é um cirurgião inexperiente achar que “não precisa aprender porque a enfermeira vai passar o bisturi”
Se no fim for preciso aprender sacrificando pacientes, que seja, mas se não for, primeiro é melhor ir para a faculdade de medicina
Por isso, o texto inteiro passa uma forte sensação de efeito Dunning-Kruger (o viés cognitivo em que alguém com pouca capacidade superestima muito a própria competência)
Há muito tempo eu digo que engenheiros de software deveriam ler The Mythical Man-Month
Nos últimos 25 anos, a forma de desenvolver mudou radicalmente, como na transição de waterfall para agile
Mas, ao fazer desenvolvimento baseado em LLMs (Codex, Claude Code etc.), às vezes parece que estamos voltando a padrões de desenvolvimento dos anos 70 e 80
Agora dá para pensar a estrutura como se estivéssemos projetando uma catedral, e delegar a implementação dos detalhes
Numa cirurgia, só uma pessoa trabalha por vez, mas em software várias pessoas podem mexer ao mesmo tempo
Na verdade, é mais parecido com um time esportivo, e levamos tempo para atingir qualidade porque faltam treino e coaching
Ficou possível focar mais no design do que na codificação
Na prática, se você fosse construir um prédio alto, teria de se preocupar até com a qualidade do aço e a procedência dos parafusos
Ignorar isso é perigoso
Essa metáfora está errada tanto literal quanto figurativamente
O cirurgião não é apenas um executor, mas o gerente que administra toda a cirurgia, e na prática o anestesista é a pessoa mais importante
Além disso, a própria ideia de “trabalho braçal” (
grunt work) é uma visão equivocadaEnxergar a si mesmo como o cirurgião e os outros como apoio é uma postura egocêntrica
Como no conceito de “Chief Programmer” de Brooks, o programador principal consegue trabalhar graças ao apoio da equipe
O autor não vê juniores como mão de obra inferior, mas como mentorados
Não é uma metáfora perfeita, mas a mensagem sobre ferramentas de programação com IA merece respeito
Foi dado como exemplo o fato histórico de que cirurgias eram possíveis mesmo sem anestesia
Por exemplo, como em explicações de frameworks que comparam programadores a carpinteiros, artesãos de verdade não refinam cada parte à perfeição
Gostei dessa metáfora e pretendo usá-la daqui para frente
Outra comparação possível é o ateliê de um pintor clássico
Rembrandt e Rubens deixavam discípulos prepararem a tela e pintarem partes dela, enquanto o mestre só fazia diretamente as partes essenciais
Já depois do romantismo surgiu o ideal do artista que completa tudo sozinho
Alguns programadores querem criar sozinhos como Turner, mas eu prefiro pensar o quadro geral como Rembrandt e deixar os detalhes para a IA ou para juniores
A qualidade do código precisa ser boa para responder rapidamente ao feedback dos usuários
Não se trata apenas de “codificar rápido e terminar”, e sim de ter uma estrutura que reduza o custo de mudança
Se uma abordagem ao estilo Rembrandt levar a código bom, tudo bem, mas ainda faltam evidências disso
Eu também usei Claude por alguns meses, mas senti que programar diretamente era mais eficiente
Só que, desta vez, ao fazer um upgrade de um banco grande de MySQL 8→9, pedi ao Claude para encontrar queries com potencial de problema, e surpreendentemente ele acertou a maioria
Não foi perfeito, mas reduziu bastante o tempo de depuração
Sinto que LLMs valem muito mais encontrando pontos de risco do que escrevendo o código em si
Em codebases antigas, se você cola um stack trace, o LLM sugere a direção inicial da depuração
Ao corrigir problemas de performance, também dá para pedir que ele verifique se caminhos de código produzem o mesmo resultado
Ainda está no nível de autocompletar para escrever código, mas a eficiência claramente aumentou
Isso me lembrou a apresentação Software Faster, de Dan North
A frase “software é como cirurgia: faça apenas o mínimo necessário para resolver o problema” me marcou
Mas este texto está bem distante dessa filosofia
Então hoje eu me sinto como um cirurgião que faz amputações com frequência
A estrutura de Chief Programmer Team parece estar voltando à moda
Desta vez, no formato em que o time inclui agentes de IA em vez de humanos
A ideia de Fred Brooks voltou a ganhar atenção
Se você der um time competente a um desenvolvedor 10x (10x-er), pode reduzir o tempo desperdiçado com reuniões ou gestão de Jira
Já que se paga salários altos, é preciso usar o tempo dessas pessoas da forma mais valiosa possível
Entender o espectro de autonomia, ou espectro de delegação, é a chave para usar bem ferramentas de programação com IA
Engenheiros não estão acostumados a delegar, mas fundadores tendem a aprender isso mais rápido
Sobre a frase “o cirurgião se concentra no que é importante”, houve o apontamento de que, na prática, todo o trabalho de apoio é igualmente importante
É preciso ter humildade, respeitar o apoio ao redor e dar suporte a essas pessoas da mesma forma