Clear and effective communication is required from customers (to communicate their needs), developers (to describe what is possible), and managers (to help set expectations) to make an effective project.
A product should only be as complex as is actually required for the problem at hand. Overly complex products have many subtle and unnecessary problems.
Proper feedback stops problems as early as possible in the development process.
The team must have the courage to take risks and try new ideas and approaches. Timely feedback will highlight problems as early as possible.