Unless you want to drag out your product development, always start out with requirement development and invest plenty of time in it.
Let requirements drive your design.
True, before requirement development phase, there is also the project planning phase if you follow a strict waterfall product development cycle.
As I’ve learned from past experience, the waterfall life cycle is as follows:
Project Planning >> Requirements >> Architectural/System Design >> Detailed Design >> Coding >> Verification/Validation Testing >> Maintenance
Designing and coding is sexy. No doubt. But I can’t tell you how much time I’ve personally wasted jumping into designing and coding a piece of software, only to come back to asking myself just what it is this software is supposed to do, who it is for, what the front-end UI needs to be, does it need user management, does it need these settings, etc.