There are two very different stages in the life cycle of any software product. The first one is when you're just getting the product off the ground. The features and UI change regularly and it doesn't bother anyone because no one is used to the software working any one way. As long as you're improving things, you're doing a good job.
As soon as you build up a respectable user base, that all changes. Once your users rely on your software to perform a task, it's important to make sure that you don't disrupt that. Adding new features is great, but it's always better to keep existing customers than to attract new ones (or it should be anyway).
An example of two products where change has been mishandled are Google Chrome (the javascript console in particular) and Firebug (a Firefox extension). Both started out as very simple and basic javascript debugging tools. You don't really need to know what that means, but you should know that both of them got ambitious and added a bunch of new features. Maybe the new features are great (I don't know because they're too complicated for me to figure out) but they are so obtrusive that I can't do the very basic things that I originally used the tools for.
I don't care about new features if you break the old ones. Chrome is on its third iteration of the javascript debugger and each one has been (in my opinion) worse than the last despite all kinds of new functionality. Unless a program is in alpha, you have to respect the fact that you have users for a reason, and that reason is not to test out your experimental new features.
Sign up to receive updates in your inbox