Tuesday, May 22, 2007

What features don't you need in your application?

10 days ago, Scoble asked What will Steve Jobs kill next?

Perhaps more importantly, he asked "How about you, which feature are you getting rid of to make your product/service/store/business simpler?"

I think application developers have a real tendency to thrown in "everything but the kitchen sink". It's not because we want to - but more because after years of experience, we want to be ready "just in case" someone asks for a feature.

Yet the end result is overloaded apps with not just too much functionality, but also a need for complicated user manuals and training.

But after users have used the application for years, it's really hard to take away a function or feature because there may still be a group of users who want to use it.

I've been going through this recently and have found myself turning off or hiding features in one of my applications. But I still can't take myself to take away the feature - instead, I've just hidden it (using GENMENUX to ensure it doesn't even appear on the menu). I've added a flag in my application to show the hidden functionality (in case, there's an uproar) - but my goal is to encourage users to use other features that offers similar functionality. (I even have a dialog when they try to use an older function that says "why not use this one instead?")

(why would you have two features that offer similar functionality? Blame it on application bloat - consider FoxPro's LTRIM and TRIM functions.)

I tried doing this with a Search screen recently and the results were interesting. I was inspired by Yag's post on new ways of developing. So I built a screen with a single box and a dropdown and told the customers that they could search for anything they wanted, simply by putting it in the search box.

Their response? "I want to see separate boxes for all of my search options."

Argh! It's tough to be a developer offering new features in an older application when you've got users who are used to older approaches.

Maybe I should just create a new application entirely - but then you have to retrain everyone.

What do you do when you want to introduce new approaches in your applications?  (or maybe more importantly, how do you fix bad habits?)

Powered by ScribeFire.

1 comment:

David said...

Great to read your post. I employ a similar approach when moving end users from one way of doing a task to another. In this case, it is moving users from using a character-based app to perform a task to is windows-based app equivalent.

In the first stage, I just put up a nagged screen asking the users to use the new app for that task and warn them that the old app is soon going to expire, but still allow them to use the old app. This is to manage their expectation. And at the same time, assuming only a small number of users actually use the new app initially, take advantage of that as a small pilot to make sure the new app is bugfree.

In the next stage, I disable the feature in the old app altogether and changed the nagged screen into a "Stop" dialog, telling the users that they have to use the new app to carry out that task.

I also liberately log the usage, so that I know how many users are converting and how many are not, and if appropriate, I can choose to talk to those not willing to convert to find out why. Perhaps they have a valid reason that I haven't thought of.

Also like you, whenever I change the behavior of an existing "mission-critical" feature, I will add an ini flag to turn that change on and off, just in case of uproar as you said, or a showstopping bug showing itself.