Why I never code first
PREDEV/POSTDEV, numbered lots, post-delivery audit. The method I apply on every project, from idle games to Play Store.
The temptation to code first
Every project starts with the same pressure: move fast, therefore code now. The problem is that code also validates decisions you may not have consciously made yet.
Projects that hold over time are rarely the ones that coded fastest on day one. They are the ones that structured their choices before the first line.
What PREDEV actually contains
PREDEV contains the product promise in one sentence, prioritized user stories, the chosen technical architecture, the lot breakdown with validation criteria, and the key decisions with their rationale.
If an important decision is not documented, it will be forgotten or reopened at the worst moment: mid-development, under pressure, with dependencies already locked in.
A lot is not a feature
That distinction matters most: a lot is a shippable, testable, auditable block. A feature can stay vague or half-finished for weeks.
On Grimoire, lot 8 was not 'do auth'. It was a defined scope with a unified screen, Google OAuth, guest mode, email verification and validation criteria before code.
POSTDEV is not a formality
POSTDEV happens after each lot: code review with distance, identification of emerging debt, corrections before the next lot begins.
At MVP scale, it also becomes the moment for a global audit and a post-MVP roadmap. That is what stops the project from accumulating hidden fragility.
When this method should step back
PREDEV does not replace understanding the problem. If the scope is still too blurry, the first move should be a 2-3 day exploratory prototype.
The real rule is not 'write a document before everything'. It is 'do not let the code choose in your place what you have not actually decided yet'.