
Resisting the urge to add more features, just because you can - e1ven
http://inessential.com/?comments=1&postid=3398
======
wensing
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.

~~~
e1ven
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.

~~~
bls
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.

~~~
e1ven
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.

[1] For the sake of discussion, anyway ;)

------
juwo
submitted separately

