Before reaching for a framework, I try to understand what success looks like for the person using the product.
Define the smallest valuable outcome
What can a user do after the first version exists that they cannot do today? That question helps separate essential work from nice-to-have features.
Make the shape visible
I sketch the key screens, data, and states early. It is much cheaper to correct an unclear flow before it becomes code.
Build in useful slices
I prefer small end-to-end slices: one flow that works from interface to data to feedback. It gives the team something real to test and improves confidence with every iteration.