What the user wants is important. Understanding how the user works in order to get there is also important. The most efficient path for a person is not necessarily the one with the fewest clicks/shortest mouse travel.
Mouse clicks and distance are two of the most basic metrics. And straight forward. So why wouldn't you optimize there?
But what you're referring to is that which can offset and add to those metrics. "Mouse click" in and of itself means nothing in the context of the program. So it's the "other stuff" that pushes against the goal being accomplished in 1 click.
So the answer is, considering that "other stuff", what is the most efficient, as in, fewest clicks and shortest distance possible?
The gripe that should be had is not even optimizing on this level, and even worse, prioritizing "fancy" animations as if that's a good thing and as if that's your main job.
> The most efficient path for a person is not necessarily the one with the fewest clicks/shortest mouse travel.
The most efficient path for that person is necessarily the one with the fewest clicks/shortest mouse travel (for that person).
And that is the optimization process of 1 use case (user usage case path).
The goal of UI is to optimize efficiency across most use cases (and hence users) as measurably possible.
(all the fancy animations can be added after that, so you can bill for those hours, and add an obvious "animations off" button, and you'll literally make everyone happy).
That's the McNamara fallacy: https://en.wikipedia.org/wiki/McNamara_fallacy Basically: enemy bodycount is easy to measure and thus you should optimize for it. Conversely if you can't measure it, it must not be important. The fallacy is that enemy body count is not wrong per se, but oversimplified.
I don't disagree with focusing on making most use-cases faster, but treating a human like a machine ignores things like error rates, understanding, lasting impressions, and ease of learning, which are important for users who have a choice in software. If you have vendor lock for your software, you don't need to optimize at all so it's kinda moot.
I literally just stated how you should observe "all others". With everything important considered, you should then "count your bodies" and optimize. McNamara would agree with that.
Most UIs don't. Just take any app or program you use daily, and imagine better paths to the goals you repeat on a daily basis. If you're a UI person, you should be focused on optimizing these paths.
You might, but to do so based solely on those metrics is a mistake. That's because those metrics don't fully capture what makes a UI efficient for human use. Other things, like cognitive load, are more important.
Does it matter if it only takes two clicks to do a thing if that usage path isn't one that meshes with the way I think? I think not, because it means that I'll spend additional time thinking about how to accomplish the task rather than just accomplishing it.
> and even worse, prioritizing "fancy" animations as if that's a good thing and as if that's your main job.
I 100% agree with you there! Animations are commonly misused and dramatically overused, and I think that more UIs would be improved by omitting them.
> The goal of UI is to optimize efficiency across most use cases (and hence users) as measurably possible.
If we're talking about "efficiency" in terms of "minimizing the use of the mouse", then I disagree. If we're talking about "efficiency" in terms of what helps a person to accomplish a task in the best way possible, then I agree -- but focusing mostly on those metrics excludes so much other important stuff as to give a distorted picture of the situation.
Not solely.
> "efficiency" in terms of what helps a person to accomplish a task in the best way possible
Correct. THEN optimize the metrics.
I didn't realize there was a myth that some users prefer slower. They don't. If they could be done they'd rather be done. Especially if this involves work. Most users that use software at their job didn't choose that software. The least we can do as engineers is let them go home to their family sooner.