The Development Hierarchy
When creating a product or web application, engineers often start with the technology at their disposal and make something cool. Inventions breed tons of business ideas and product development is very often focused on the technology at the heart of those inventions.
Feature creep is the next step after a basic technology has been put in place. Incremental changes often lead to adding layers of function instead of true improvement. Paradoxically, while additional features will sell more products, if something gets too "feature rich" it starts to lose its usefulness. Witness software products for which only a tiny fraction of the users become "experts": most are, as Alan Cooper calls them, "perpetual intermediates" -- neither a beginner nor an expert.
Products in general should be designed with benefits to the user in mind. In today's product development theory, meeting customer needs is a key starting point. You work backwards to determine what features would satisfy those needs and then choose a technology that is best suited to implement those features.
Each layer of this process is necessary -- but not sufficient -- for a successful product. In fact, each layer depends on the one before it. The ultimate layer (which really should be examined first) is the overall user experience. This is an aesthetic approach to products. In the current marketplace, and increasingly in the future, products and services that bring meaning or beauty to a person's life will succeed over those that don't. They'll still need to deliver benefits through features, implemented on solid and appropriate technologies.
At our company, the hierarchy looks like this, where the user experience is both the foundation and the all-encompassing consideration:



