Distillation of "LIVE: Uncle Bob on Software Fundamentals in the Age of AI"

This page has my notes about the youtube video that Matt Pocock produced called "LIVE: Uncle Bob on Software Fundamentals in the Age of AI". The video can be found here: https://www.youtube.com/watch?v=zcLPGC-tvgk

Main Takeaways

  • Bob describes how he has agents with specific jobs that handoff to each other in a workflow.
  • Bob uses mutation testing
    • ie. change + to -, === to !=, false to true, etc, and the test suite should fail.
  • A main concept is: Agents fumble with long context, just like humans.
    • We have limited short term memory.
    • When we run out of short term memory, our work gets messy.
    • Agents have longer and perfect short-term memory.
    • Humans don't read all of what agents expect them to, and agents don't read all of what humans expect them to.
    • 19:31 "when you focus the agents down to a single task, you're keeping the context window under control. The lost in the middle problem becomes much less of a problem."
    • 29:34 "if you compartmentalize nicely works pretty well just like a human."
  • Bob uses an agile mindset when working with agents (instead of a waterfall-like approach with very rigid specs and planning beforehand).
    • 36:49 "Wait a minute. All this heavy upfront planning makes a mess of everything cuz what comes out at the end doesn't look anything like the plan and never has."
  • Bob uses TDD when he codes but allows agents to write a function first and the test second.
    • More details at 34:37 - 35:39

Bob's Agents

Specifier Agents: Gherkin Specifier Agent and QA Procedure Specifier Agent

These agents' job is to take a human-written document and turn it into another type of document.

  • Gherkin Specifier Agent: Creates a high level acceptance test using Gherkin
  • QA Procedure Agent: Creates "essentially a system test"
    • Example of QA Procedure Agent from transcript:
      • 20:49 "I have them write it from a human's point of view:
        • You are a human.
        • You are operating this system at the UI.
        • You must prove that the system works."

Coder / Implementer

This agent's job is to

  • write unit tests
  • write the code
  • get the Gherkin working

Cleaner

This agent's job is to

  • Perform general code review (Change Risk Anti-Patterns)
  • then clean up the mess in the code that the coder/implementer inevitably left

Hardener

This agent's job is to

  • Run mutation testing

QA Agent

This agent's job is to

  • Turn "the written QA document into an executable script that manipulates the system and comes up with a deterministic result"

CRAP (Change Risk Anti-Patterns)

CRAP (Change Risk Anti-Patterns) analysis is a metric used to identify code that is highly complex and lacks adequate test coverage, making it risky and difficult to maintain.

  • 43:44 Regarding CRAP, he has his agents write him his own crap tools for each language he writes in (Closure, Java, Go)
  • 43:50 What I tell people is don't download those. I wrote them for me. What you should do is point your agents at them, have the agents look at them, and then build one for you.
Tags