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."
- 20:49 "I have them write it from a human's point of view:
- Example of QA Procedure Agent from transcript:
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.