Adding features is not the mistake; the mistake is adding features 'just because you can'. Moreover, I can think of some wonderful products that have a lot of features, but they went through a design process wherein the creators knew how to add depth, and consequently they're still usable; too many people add features thinking only in terms of horizontal exposure--i.e. every new feature requires a new button, rather than in depth--i.e. new features get attached to the product's existing skeleton, and appear only when they're needed (and promptly disappear when they're not).
To go one step further: I don't think a product can have too many well-implemented features. How many features should a pencil have? A fighter jet? How many features would be too many for the pencil? How many features would be too many for the fighter jet? Raw feature count doesn't bother me a bit; features that get in the way (noise) are what frustrate me.
That's a great example, and illustrates exactly why I disagree with you ;)
If you design things to be simple and expandable, you don't NEED to keep adding features in order to give the functionality people have.
A Pencil has a certain set of features. It can write, it can erase.
It has other things it can do because of its design- It can act as a piece of wood, so it can be used to push things on the table, or used as Lincoln Logs.. But they don't need to ADD anything to support these uses.
You can decide tomorrow to use a pencil for things the developers never thought of- You can use it to trace leads, or use it to build a fort. You can use it to hold two things apart from one another, or use the eraser to hold pins..
These aren't features that needed to be added. No adjustments to the pencil are necessary to support fort-building. They're new and clever ways of using what's already there.
THAT's what you want to encourage. Find ways to create services that can be used in ways you never imagined.
APIs are a great example of that, but there's more that can be done. Make thing simple. Let people add their own uses for things and they'll do amazing things.
How do you explain the fact that the pencils I buy today are a lot more sophisticated, more comfortable, and have more features (refillable lead, advancing the lead via shaking) than the pencils I bought 10 years ago? The cost of a simple pencil is like $0.05. The pencils I buy are almost $10.00 each + lead + erasers. I like the $10.00 pencil guys' business plan a lot more than the $0.05 pencil guys' plan.
I have nothing against adding features that make sense, and are refinements of the workflow.
Adding a comfortable pad to a pencil makes it easier to use, and is certainly worth a bit extra to people. Adding replaceable erasers adds more, and so on.
Those are potentially useful features, and they don't get in the way of people using the pencil.
This is the sort of refining that should always go on. How can we make things easier for our users. How can we streamline their workflow.
Part of the problem in adding feature comes when you start adding features which make the base case harder. When users start to look at the vast sums of things that CAN be done, and you lose the simplicity of the tool.
Another problem is that adding features allows people to hack things, in ways that are more complex than they should be, and cause user-frustration.
Let me give you an example-
There was a small company I knew that kept its data in a series of excel files. They were small, and it was a quick and easy to keep track of what they were doing.
As the company started to grow, they started needing more and more complex reports on the data, and were running into the limitations of what they could easily do.
They started working with heavy scripting in Excel, using VBA scripts to copy data from one sheet to another, and to replicate it to backup excel files.
Eventually they had a mess of files talking to one another, doing CSV exports, then parsing them and creating new files, and the like. It worked.. Kinda.. But it was kludgey, and complex.
The problem was that they kept adding new features to their excel documents, rather than accepting that excel was Great at what it did [1], but it wasn't the right solution for them any more.
Eventually, if I recall, they finally got it all moved over to a series of Access databases, which made things a lot nicer.
Could Microsoft add features to Excel to make it easier for them to keep pushing it? Sure..
Should they? In this case, probably not. The features you adding need to make sense for the tool.
To go one step further: I don't think a product can have too many well-implemented features. How many features should a pencil have? A fighter jet? How many features would be too many for the pencil? How many features would be too many for the fighter jet? Raw feature count doesn't bother me a bit; features that get in the way (noise) are what frustrate me.