I’ve used both approaches and I can’t disagree more. Writing code first might feel faster but it isn’t. It’s great for surface level issues but just muddies the waters for any consequential feature.
Measure(communicate) twice, cut(build) once.
Measure(communicate) twice, cut(build) once.