No engineering work is done ahead of time, and the only design work that’s done ahead of time is contemplation plus a day or so rough sketching so we can present the concept to the team that’ll be taking on the work. This work is generally done by one or two people who work in strategy. They’re the ones who prep and choose the final projects for the next cycle.
We do consult a programmer ahead of time to figure out what’s realistic given the time and scope. We’re not looking for what’s ultimately possible, because in software anything is possible. We’re looking for what’s realistic given that we have six weeks max to do the work. The answer typically includes multiple approaches. It’s up to the team to decide which one to take given the constraints.