Skip to main content

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.

Comments

davidfung 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.

Popular posts from this blog

Elevating Project Specifications with Three Insightful ChatGPT Prompts

For developers and testers, ChatGPT, the freely accessible tool from OpenAI, is game-changing. If you want to learn a new programming language, ask for samples or have it convert your existing code. This can be done in Visual Studio Code (using GitHub CoPilot) or directly in the ChatGPT app or web site.  If you’re a tester, ChatGPT can write a test spec or actual test code (if you use Jest or Cypress) based on existing code, copied and pasted into the input area. But ChatGPT can be of huge value for analysts (whether system or business) who need to validate their needs. There’s often a disconnect between developers and analysts. Analysts complain that developers don’t build what they asked for or ask too many questions. Developers complain that analysts haven’t thought of obvious things. In these situations, ChatGPT can be a great intermediary. At its worst, it forces you to think about and then discount obvious issues. At best, it clarifies the needs into documented requirements. ...

Blogs and RSS come to Microsoft.com

MS has just introduced their portal and it's pretty comprehensive. Nothing quite like learning that some people use AIM instead of MSN messenger, or that there really may be a need for supporting 4 monitors ( Cyrus Complains ) However, it's really a great sign that MS is serious about supporting the blogging community which seems to have um, exploded in size in the past year. Blogs and RSS come to Microsoft.com

I’m Supposed to Know

https://programmingzen.com/im-supposed-to-know/ Great post for developers who are struggling with unrealistic expectations of what they should know and what they shouldn't. Thirty-forty years ago, it was possible to know a lot about a certain environment - that environment was MS-DOS (for non Mac/UNIX systems). . There was pretty much only a handful of ways to get things going. Enter networking. That added a new wrinkle to how systems worked. Networks back then were finicky. One of my first jobs was working on a 3COM + LAN and it then migrated to LAN Manager. Enter Windows or the graphical user interface. The best depiction of the complexity Windows (OS/2, Windows NT, etc) introduced that I recall was by Charles Petzold (if memory serves) at a local user group meeting. He invited a bunch of people on the stage and then acted as the Windows "Colonel", a nice play on kernel. Each person had a role but to complete their job they always had to pass things back to h...