Design iteration is the best way to reduce the risk of a failed project. I know I can't come up with the perfect design in just one round of design and I would be stunned to meet the person that could. So, we iterate designs. And between each iteration there's a round of design assessments with our users. That way, each iteration is informed by user behavior and opinion.
I also like to make multiple concepts and narrow down from 3 concepts, to 2, to one. And the point of each concept is not that one will be a winner, but to find the parts and pieces of each concept that work best and merge them into a cohesive experience.