This article by Jeff Patton explains two easy ways to successfully develop software. So simple you can't fail.
Two secrets to success in software development are:
1. Start sooner
2. Build less software
This is sadly simple advice.
Agile development does try to short-circuit elongated research and design phases in favor of beginning sooner and continuing active research and design throughout the development cycle.
12 Best Practices for UX in an Agile Environment - Part 2.
Unfortunately reality doesn't usually allow for this well maybe point number two.