A lot of software nowadays ask this question. They collect anonymous crash reports and send it to the developer.
There are two other ways I can think user experience can be enhanced.
One I discussed in previous post titled “One Way Help“. If automatic crash logger sends Severity 1 issues, such an “Inverse Help” may send in Severity 2, 3 and 4 bugs.
The other idea is about the GUI layout. Outlook is the worst example of organizing menus. Just try to “Search” for the “Search”!
I don’t know what experts of GUI design say. I can see menu organization as a learning exercise. When I say “learning”, I mean “machine learning”.
A Hidden Markov Model or an Artificial Neural Network that learns the sequence of GUI controls pressed can get a gist of how the software is “controlled”.
Such learning can periodically and with explicit permission of the user, be sent to the software developer for realignment of frequently used GUI controls.
Based on various conventions (like “the top 10 controls should become buttons”) next version of the software can become very user friendly.
What do you say?