Developers sometimes express frustration to me when they get feedback from a user requesting a function that already exists. Why does this happen? Software is typically specified and written by the functions it is supposed to perform. Little thought is usually given to the user’s ability to find the functions–the interface that drives it all.
It’s a waste of development time and money to build a function that will never be used. If it’s hidden in the interface, it might just as well have never been built for all the help it gives the users.
How do we fix the problem?
Perhaps we need to dedicate a bit more effort to the interface and to supporting the user’s tasks (and desires). The functions for the software developers to build would naturally follow.
First employ user task analysis to identify critical tasks. If it’s not critical to the user, should you waste precious development resources on it? Perhaps, but it should be relegated to lower priority than the critical functions.
Once those critical tasks are identifed, it’s important to design and test the interface so that it surfaces the most important functions to the users’ critical tasks. The software functions should follow (not lead) the user’s task flow. The system should anticipate the user’s next move and provide an obvious path to the functions that support it.
Many functions get hidden in menus. Multiple paths to important functions can be employed–it’s okay to put a function in a menu and provide a button, as well as a keystroke shortcut.
But avoid tripping the user up with unnecessary functions
Most software and web sites are so full of functionality, which ends up being clutter that users have to sort through to get to the one that they need. This is another way of hiding functions, but hiding them in plain view. If it’s not necessary for the critical tasks, don’t put it in the way. Also, in general it’s a good idea to put things where people expect to find them.
It’s a delicate balancing act, surfacing the right functions at the right time. As the New York Times reports, our world is full of neat hidden functions we might use all the time if we knew about them. Our hurried lives necessitate that most of the time, though, users need to just focus on the task at hand, and when it comes to hidden functions–perhaps they might be better off never having been built. Think of all the money and time we waste building functions that aren’t used.