There was a time when it was fashionable for software developers to make everything “dynamic” and “smart.” It annoyed the hell out of everyone. You would be typing up your paper in a word processor without looking at the screen. Then when you look up everything is formatted all weird, the sentences don’t make any sense, and your name is spelled wrong. There’s even a whole Internet meme dedicated to this.
I remember some of the new revolutionary features Microsoft added to their products, then removed because people were so annoyed by them. One of the versions Microsoft Word would pop up with an annoying paperclip character while you were typing, saying “It looks like you’re typing a resume. Let me help you…” One version of Microsoft Windows would teleport your mouse cursor to the “OK” button when a dialog popped up so your productivity could increase to new levels. People kept getting disoriented, not being able to find the cursor and inadvertently agreeing with random dialog boxes.
The problem was that the computer would automatically change things even if it weren’t 100% sure that’s what you wanted. Doing that annoys people.
These days, we see a watered-down approach to dynamic and smart software. The Windows Start menu has a “Most used” section that keeps track of which apps you use most frequently. Google Chrome has a most visited links list when you open up a new browser window. I have found these to be useful, but there is still room for improvement.
Here are a couple of ideas.
A. There should be an indication whenever a link is added or removed. That way you know if changes were made to your dynamically generated menu.
B. Once a link is placed on the dynamic menu, it must not change locations as long as it stays on the menu. That means if the number two most frequently used link becomes the number one most frequently used link, the link should not be moved to the first position. When things are “dynamically” moved around, the user gets disoriented (and annoyed).
“Dynamic” and “smart” only works when only changes the user wants are made, and when the user is kept in the loop about any changes.