A great way we get feedback on upcoming projects is by putting our specs of upcoming projects on the web and inviting user comments - not forgetting to acknowledge their contribution. Often Surfers will tell you what is needed to make the product great instead of just good, or you may be told that there is already a program out there that does the job. You should also spend two days looking for similar products and speaking to users about the features. Since the specs are full of screen captures, this allows us to think of our end-users and increases the likelihood of creating a great product which our users love.
Who comes first? The Technology or the User? I even wonder about Microsoft, they've built this great .Net technology which works fine in Notepad but now we're waiting for the Visual Studio interface. They are going to shoehorn a user interface and experience onto the framework so the user experience is likely to be a compromise. What great products are designed this way? Do tailors measure their clients after the suit has been sewn together? I'm sure Microsoft spend heaps of time and money discussing the specs amongst themselves, but I believe they should've put the interface/Images on the web so that experienced users could voice their opinion and offer suggestions early in the product cycle. Instead we wait for the beta versions - if you offer a suggestion now, there is no time for it to be implemented as the shipping deadline is too close. The only contribution we can make at this stage is finding bugs!
So balance engineering, business and usability, put your specs on the web, keep them updated with changes, and listen to your users!