Why is Software so Complicated? Part 1 – Featuritis

Featuritis: (Noun); excessive or unusual number of bells and whistles, often just for the fun of it.

How many readers enjoy gadgets? You’re not alone – designers are among the most rabid fans of new things and features. As a programmer, I know the allure of adding ‘just one more thing’, and the effort it takes to resist. Looking at the software out there, it’s obvious that most give in.

But adding extra features often backfires. For instance, I own a Swiss army style knife on a key chain. It’s always available in my pocket, and does a wide range of things – cuts, saws, screws, gut fish, and so forth. And instead of using it for everything, I usually forget I have it when I need to do something besides cutting (like change a screw, for instance). Sometimes when a tool does a lot of things somewhat well, it’s easy to forget everything it does.

A very good, specialized tool is quite often more useful than an ‘all in one’ product. And while there are geniuses out that know every feature of Microsoft Word, most of us have never explored a fraction of its features, yet we still get useful work done with the little we know.

Excessive features are also a problem because they can rarely be integrated well. As more and more features, modes, settings, options and configurations are added, each new item steps on the toes of previous ones. This interference means we now have to be aware of old and new features at the same time, resulting in much more information to take in.

A very simple example of this is in many program’s menus – as new features are added, the menu order changes, and finding old favorites becomes a chore in the next program version.

Does this means features are bad? Not necessarily – sometimes a robust product like Microsoft Word benefits by trying to be all things to everyone – certainly their market share seems to indicate that. However, for the most part, fewer options in programs needn’t be bad. Reducing features often equates to quicker learning, less frustration, and of course less complexity – all great benefits for users of software.

Comments are closed.