I've got a little user experience puzzle, and was wondering if anyone
knows of some successful examples that have already tackled this.
Short(er) version of question:
What do you label, on screen, query parameters that are variables,
but are selected in a context that is extremely literal, and is
selected by an end user who is constructing queries for a group of
people? Example variables are "me," when me will be evaluated at
query runtime as the person running the query. And these users are
non-technical people, not software engineers.
Long winded version of question, with context, and I'd probably put
footnotes in if the medium supported it better:
I have this "enterprise" application that, amongst other tools,
allows users to create and run a search for information in the
system. These searches can be simple, or not. They can include a
mind-boggling number of criteria, and they can be saved to allow
re-running later. And they can be shared with other users, so that
those users can run the search too.
These searches can include directives to look for information
associated with a specific user in the system. I can browse a list of
my fellow system comrades, and from that list, I can select specific
individuals for specific criteria.
For example: find all documents of status "in progress" that have
been modified by user "Mr. Apricot." If I save that query and share
it, all of my peers can click on it to also see all documents of
status "in progress" that have been modified by "Mr. Apricot."
So far, complicated, but relatively straightforward.
All of this is done in a web interface, btw. So, the query example
above is just a phrasing of the search for discussion. The user never
sees any such nice, tidy expressions. The actual "search" a user sees
is a web page of form fields, and selections, like most any advanced
In addition to specific users, now add the ability to select a value
that represents "the person who is running the search." The person
building the search needs to be able to see this value on-screen,
understand it, and be able to select it. What is a usable interface
that allow this? How does this representative value appear on-screen
succinctly? What is the name of the category of selectable-items this
value is grouped within?
To broaden the concept, other conceptual values may also be available
(if we manage to implement them, depending on engineering resources
and/or something in the ballpark of actual utility):
- "All users with the same role as the person who is running the query"
- "All users in the same user group as the person who is running the query"
Taking the search example above, an equivalent with one of these
values would be:
find all documents of status "in progress" that have been modified by
"me", where me = whomever is running the query.
A first sketch might be to put a checkbox next to the label
[ ] me
and maybe roads lead back to that. But it isn't really myself i am
selecting, since anyone else running this (saved & shared) query will
see their own results. I am selecting the concept of "me," relative
to the person using the thing. So I am casting about to see if there
are better ideas.
In a landscape of all literal values, how does one communicate to the
user that they are selecting a non-literal value, a variable that
will be evaluated at run-time?
Are there any existing exemplary, or even cautionary, solutions? Has
anyone seen any applications (preferably ones accessible to
off-the-street shoppers) with something like this? Likely candidates
may be collaborative systems with concepts of "sharing," maybe
document management applications, or agent-type tools.
And, does anyone have notes on what general folks (not engineers)
might call these "relative variable parameters" that are used in the
queries? Abstract users? Conceptual values? User variables? etc.
Or - is this just really not an issue, and regular enterprise
application users easily understand all this?