Uncle Bob sobre os fundamentos de software na era da IA
Neste vídeo, o apresentador Matt Pocock entrevista Robert C. Martin (também conhecido como Uncle Bob), uma figura central no desenvolvimento de software, para discutir a importância dos fundamentos da engenharia de software na era da Inteligência Artificial.
Principais tópicos discutidos:
O uso de Agentes de IA: Uncle Bob explica como passou a utilizar agentes de IA para escrever código e por que, inicialmente, eles geravam um trabalho de má qualidade ("dog doo"). Para resolver isso, ele implementou uma abordagem baseada em ferramentas determinísticas (4:42-9:55).
Qualidade e Automação: Em vez de apenas dar instruções verbais ("steering") aos agentes, Uncle Bob defende o uso de ferramentas automatizadas de verificação, como testes de mutação e pontuação de crap (medida de complexidade ciclomática e cobertura de testes), para garantir a qualidade do código sem depender da revisão humana constante (5:43-8:52).
Estrutura de Múltiplos Agentes: Ele descreve um sistema de "gauntlet" onde vários agentes especializados (especificador, programador, limpador, endurecedor e QA) trabalham em sequência, permitindo que cada um mantenha um contexto claro e limitado, o que aumenta a produtividade e a robustez do software (20:24-23:10).
Programação Estratégica vs. Tática: Os participantes discutem o conceito de programação tática (ser o sargento no campo) versus estratégica (ser o general). Uncle Bob enfatiza que, embora a IA domine a parte tática, os desenvolvedores humanos devem aprender a ser estratégicos (45:22-48:12).
A relevância dos fundamentos: Ambos concordam que, apesar das novas abstrações trazidas pela IA, os fundamentos da computação continuam essenciais. A complexidade do software exige que ele seja organizado de forma concebível, tanto para humanos quanto para modelos de IA (53:01-54:46).
Como aprender programação estratégica, segundo Uncle Bob
Aprender programação estratégica exige uma base técnica sólida seguida de uma transição para uma mentalidade de gestão e visão sistêmica. Uncle Bob sugere um caminho educacional estruturado:
Domine o básico: É fundamental escrever código manualmente por um período (ex: um ano) para entender as dores e os desafios que a IA enfrentará. Ele compara isso a aprender Assembly no passado: se você só escreve código de alto nível, vive em um "mundo de fantasia" e perde a noção do que realmente está acontecendo (48:19 - 48:54).
Experimente ser um "agente": Um desenvolvedor júnior deveria passar alguns meses sendo tratado como um agente, executando tarefas sob supervisão e sendo submetido a ferramentas determinísticas de qualidade. Essa fase, embora pareça "horrivelmente improdutiva", é onde se aprende na prática a rigorosidade e a disciplina necessárias (47:31 - 48:09).
Estude os clássicos: Uncle Bob recomenda a leitura de livros de autores clássicos da engenharia de software dos anos 70 e 80 (como Tom DeMarco e Ed Yourdon), pois essas obras contêm lições valiosas sobre como gerenciar a complexidade do software, algo que é a essência da visão estratégica (51:35 - 52:13).
Sinta a "luta": O aprendizado estratégico vem de reconhecer quando algo está errado. Você aprende a identificar um código ruim ao passar pela frustração de ver um agente (ou a si mesmo) se perder em um emaranhado de bugs e refatorações circulares (50:59 - 51:24).