My rant about Acrobat Reader made me think a bit about user interfaces and designing improvements.
I think a big aspect of this is knowing what your customers currently use. If only 3 people out of a million are using your fancy equation editor, does it make sense to spend all that money improving it? (then again, maybe it's because that feature is so difficult to use). If 99% of all users are using the "Find" feature, does it make sense to remove it?
I was thinking it would be great for applications to build this feedback into the application such that the company can build a database of usability information across its entire user base. This concept is an evolutionary step from the now common way that some applications handle fatal errors by asking the user to send an Error Report.
Server logs for web pages are also a primitive form of this (with the "application" being "your website"). With server logs you are able to determine the relative number of people visiting each page/section of your site. Coupled with referral URLs, it can also tell you when your site is found useful by someone doing a global search on the internet. This feedback can be very valuable.
For web applications, this is a piece of cake, you are in control of all the code and the user is required to connect to the web to use the application. You can simply implement server-side sripting to build your database of usability information. For desktop applications, it's a little trickier because of differences in platforms (resulting in differences in actual applications or user interfaces) and because it requires a connection back to the company to periodically dump the usability data. This dump could be as infrequent as once-a-week or once-a-month but it would (or should) require the user's explicit permission. Some people will naturally feel uncomfortable with this idea, so this should be an option which the customer can opt into (she may not want to give you that usability data).
The form of usability might be as simple as the number of times a particular feature (or menu/toolbar command) was used or it might entail more complex algorithms such as tracking a series of commands and how many times they were executed, dumping back preference data, particular macros that users have written to handle tasks, etc.
Anyway, I'm sure bleeding edge companies are already figuring out how to effectively do this (I think the Google toolbar does something similar with your search queries) and these may be some obvious observations, but I had nothing else to write about today... 😉
Good observation. I think the problem is that the developers want to do what you’re talking about, but somebody lets the marketing department find out what they can do with that information and all hell breaks loose. Before you know it your really good idea gets twisted around for spyware. I wonder if the easy availability of information to improve the application will make web-based apps more popular than desktop apps that don’t get that sort of feedback.