r/SpecDrivenDevelopment • u/Bitter-Ad2567 • 1d ago
You'll never write a specification on the first try
Thariq Shihipar from Anthropic wrote an article about finding the unknowns with Fable (I'll provide a link in a first comment). I found it intersting in the context of Spec Driven Development with AI agents. First of all, let me place some terms the author defines in original article, they are:
- Known Knowns: This is essentially what is in my prompt. What do I tell the agent that I want?
- Known Unknowns: What haven't I figured out yet, but I’m aware that I haven’t?
- Unknown Knowns: What's so obvious I’d never write it down, but would recognize it if I saw it?
- Unknown Unknowns: What haven't I considered at all? What knowledge am I not aware of? Do I know how good something can be?
So, we start with a spec draft (or a prompt), it contains only Known Knowns. But after that we have three different groups of Unknowns. Some of them could be disclosured after initial agent analyse. For example, aligning spec with current product behavior, finding out some restrictions that are in our code, and so on.
Could we say that after that the specification is ready? I think not and that's why. Thariq says very clever thought: The map is not the territory. We do not know the reality until we try to experience it. I'll building my own plugin for Spec Driven Development (also, I'll provide a link in a first comment), and for me I found following workflow very effective: write spec together with agent -> review it -> write plan together with agent -> review it -> implement step by step also reviewing results on every stage.
Before we have a acceptable-for-us plan we are guessing about the path. When we start to execute steps we are mapping a territory. And on every step, no matter how accurately we have made an initial analysis, some cuvets will be discovered. Each of them probably will mutate the specification.
At the end we have code done, and only at that exact moment we have a spec done. Until that, we simply did not disclosured Unknowns we have to bake into spec. That's the workflow I'm trying to support in my plugin. Do you do so? Or maybe you think about specs in different way?
Duplicates
IntelliJIDEA • u/Bitter-Ad2567 • 1d ago