The following line in a post about the difference between declarative vs. imperative programming caught my attention for the way it echoes product management best practices:
[I]t’s often good not to think of how you want to accomplish a result, but instead what the component should look like in it’s new state.
Of course it does matter how you get to where you’re going, but it’s a whole lot easier if you first focus on aligning everybody on goals and where you’re going.