I invite you to upgrade to a paid subscription. Paid subscribers have told me they have appreciated my thoughts & ideas in the past & would like to see more of them in the future. In addition, paid subscribers form their own community of folks investing in improving software design—theirs, their colleagues, & their profession. Spec-driven or not spec-driven is not the question. The first question is, “What game are we playing?” Here’s the game I’m playing when I develop software, with or without the genie. I call it The Compounding Game: The first thing we finish will earn the resources for the next thing which will earn the resources for the next. Different Game, Different RulesHere’s The Finish Line Game, a different software development game: We want software that does X. Once we’ve reached X we’re done. It happens. I have some data. I need it munged. I write a munging script. Finito. I’ll never use that script again. The hidden assumption behind this style of spec-driven development is that we’re playing The Finish Line Game. Get the spec right. Get the desired software. Done. No need to consider the future because there won’t be one. Failure & Success in the Finish Line GameIf you’re playing The Finish Line Game, you can still fail. Design can be so bad you don’t cross the finish line. Tests can be so bad that you don’t notice that you haven’t crossed the finish line. The “finish line” itself can shift without you noticing. In the Tidy First world, we illustrate by contrasting “futures” & “features”. Futures are what all you can implement next. The genie is no good at managing futures. If you’re playing The Finish Line Game, you’re betting that features will cross the finish line before futures run out. This is “better agent.md file” territory. If we leave the genie autonomous, can we nudge its work to be good enough not to fail? Sometimes yes, sometimes no (in my experience). And the genie keeps getting better. But it’s still the same Finish Line Game. Playing The Compounding GameJust as football tactics won’t work on a baseball field, spec-driven development doesn’t work if you’re playing The Compounding Game. A better spec will never get you from dollar sign N to dollar sign N+1 forever. A better agent file won’t extend the lifespan of the system long enough to get from N to N+1. At some point the complexity will exceed the genie’s capacity & it’s game over with lots of dollar signs left to play for. |