Feature Proliferation (3rd August 2008)

An idea I often come across from people who make stuff with computers is that more features let users do more. It’s often motivated out of what the programmer finds easy or interesting to implement rather than what would help end users.

In practice, more features means users have a tougher time finding the one they need. Indeed, often the feature a user needs will be absent or won’t work properly. Often the cause is that the developers didn’t stop to think clearly about what users would actually need.

Sensible defaults can often preclude extra features. If the application works fine out of the box, you won’t need menus and windows and controls which let the user change how the application works. Users won’t need to tweak or babysit an application with sensible defaults.

A proliferation of customisations is as much an anti-pattern as a proliferation of features. Even if they are moved to an Advanced area or a settings file, too many will muddy the waters for expert users.

My thoughts about this have crystalised over the past month or so, while I’ve been using the essential GTA 2 Game Hunter. It’s built by a hobbyist in his spare time, which I think means good use of development time is all the more important.

There are lots of tweaks and refinements which would add up to a large and genuine improvement to the quite good usability it currently has. Yet the difficulty (or sheer tedium) of implementing them turns the developer off making these genuine improvements.