November 11th, 2007
Features that sink
PC World has a great article highlighting several applications that were better before the manufacture added more features.
The ideas laid out in this article are something I often consider. How many features are too many features? Perhaps more importantly, if you reach the mysterious boiling point what should you do?
The first concept has no definitive solution as is often the case in the development world. Each and every product will have its own point where the application should stop growing. One sure way to elevate this point is to ensure that you have a strong usability and interaction design team working with you. This will hopefully allow you to maximize the experience for a broader range of users.
The second concept is a tricky one. Often an organization has scores of developers working on an application and if there is no more features to add there maybe no more use for the developers. The easiest solution is to roll the developers onto new projects. Interestingly this maybe a great solution to the first question. If the marketplace has room for the features you wish to build then perhaps you application should be divided into two. One for the novice to intermediate user and one for the expert power user.
This is where web-based applications have a great advantage. Because web applications store information about users it becomes easier to have two separate but seamless application views. Advanced uses will see one set of features and interactions while the novice user will see a different set. Either way the data they are working with can remain the same. The application will determine at which point the user starts seeing the advanced view. Generally a decent starting point is to allow the user to choose a more advanced option or base it off of the amount of data the user is working with.
Given enough time every application will experience feature bloat. How the application handles it can make the difference between a great application or just another bloated piece of software that is difficult to use.