In a way design (especially for interactive mediums) is authoritative, or at least guiding.
Humans, users display properties of emergence when using such systems. As users we might come up with new ideas on how to use a tool, and write new interaction paradigms (with other users, and the system itself).
As users, we don’t operate in an if–then programming logic.
This is supposedly a wicked problem, because the permutations of what people might want to do are infinitely larger than what we think they would.
But I do want to offer a different perspective, which might be useful.
To do that I am going to borrow terminology from the world of agent based modeling (ABM).
In ABM we model a system, its agents, and the interaction between each of those. So rather than funneling the entire system to one unified outcome, we articulate and program our opinion about what an agent (a node in our simulated game) might want to do, and we then let the system run.
In other words, we program (or run in our mind) a simulation of what the user wants (and in what context) and negotiate that with the business (/system) needs.
More on agent based modeling: