I often am asked the question "When do you need us to start [or finish] gathering requirements so that the development team can deploy on Date X?"
For years it never occurred to me how underhanded this question turns out to be. Essentially, there is no way to answer this question. It's got circular reference and infinite loop written all over it.
Hiding in the question is the notion that we know how long it will take to build something random. Something as-yet-to-be-defined. That somehow no matter what those requirements contain, as long as they're "delivered" by the date I say we need requirements, then if the development team ends up being late, well that's on them.
The only proper answer to this question is "today", along with a prioritized backlog of features needed on or around Date X. And while you're "gathering requirements", please also gather a list of contingency plans. Then we'll talk.