- Let engineering drive.
- Use marketing/product management to gather requirements, feedback, etc.
- Have an all-knowing dictator.
The information gathering approach is probably the most widely espoused (if not necessarily used). Theoretically, this leads to building what customers want, but the results tend to be very conservative. Customers don’t necessarily know what they want, and modest proposals achieve consensus much more easily than radical new ideas. Some companies start out being very innovative, and then settle into this how-can-we-help-you model. I suspect Google, the king of Web analytics, fits this category.
The all-knowing dictator model, at least as exemplified by Apple, is obviously very successful … if you have such a person. Pretty tough to pull off otherwise.
There’s actually another model: copy other successful companies. Microsoft has managed this, occasionally adding a bit of innovation, throughout its history. Windows came from Xerox (via Apple). C# was Java. Windows Phone was Windows Mobile was … whatever else they’ve called it … back to the original smart phones they copied from. XBOX was Nintendo or Sony or whoever’s gaming system.
Maybe there's yet another model to consider: crowd-sourcing. Just give everybody the tools to make their own cool things, and see what emerges. The mobile app industry may ... just may ... be going in that direction.