Where plan and SDD fit
plan and SDD fit when:
- you know what needs to be done
- or you trust what the AI is going to do
In akr’s words, this kind of AI use, where the situation and the process are decided up front, works best when the situation is known and very mature. But if the problem is unknown, or you’re mid-project and all sorts of things are coming up, I don’t know what to do and the AI can’t sort it out either. Not to mention that once the project gets big, the process may stop being predictable. I did think about doing it with a team of agents, but that still runs into context pollution and interruption, so putting an AI in as the project manager to keep watch is probably not a good approach. From that angle, test-oriented development with clearly defined boundaries is the better answer, though for now it’s a provisional one. The key here is clearly defined boundaries and formal verification. A test program is a formal system, so its inputs and outputs are completely explicit, and that is where the boundary gets set. akr is right that the feedback loop matters. What matters is where that feedback comes from, and tests are one source. But test-oriented isn’t perfect either. The AI can end up shooting the arrow first and painting the target around it. It writes the tests around the program, and the tests come out tailor-made, which is obviously not the good test case we wanted. How to write tests probably needs a human to lay down a principle. It got me thinking about Anthropic’s constitutional AI. A human still has to give some boundary, without making it completely rigid. Like a judge interpreting the law, the AI can interpret flexibly by its own understanding, but the range of the boundary is explicit.
SDD: Specification-Driven Development.
Translation note. I wrote this in Chinese. This English version is an LLM translation, so the wording is not mine even though the thinking is. Original: plan 和 sdd 的场景.