Originally posted by Admiral LSD
And just who determines the difference between "utterly useless and redundant junk" and "earth-shatteringly brilliant new feature one couldn't possibly live without"? You? Me?
The end-user.
EDIT; incidentally, feature creep is best defined as the addition of functionality to software beyond that which is initially required as per the specification. Generally this has the consequence of complicating testing, delaying the delivery/development process and adding in additional points of complexity/failure.
When these 'features' are added in response to a
perceived commercial requirement (a perceived desire by the customer, often served by other 3rd party products in the case of Windows in particular), it's indicative of a willingness to compromise overall software quality in return for more profit. When the features are added on the whim of the developer, it indicates poor project specification and control.
It's particularly bad in proprietary software because the specification process is more inclined to be towards a specific core user requirement, and decided between a finite working group. With open source software, there's less of a rigid structure for project management (dispirate group of individuals often geographically isolated, more personal than professional investment) and also more of a realistic perception of end user requirements (in terms of said end-users being directly involved in development).