Pular para o conteúdo
Rômulo Barros Repositório Acadêmico Pessoal do Professor

Blog Uncle Bob sobre os fundamentos de software na era da IA

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).