The Ultimate Help System
I made a proposal for the 'Ultimate Help System' on Gnome Devel and
Johnathon <email@example.com>, suggested that I join the gnome-doc list. The
response on the Gnome-Devel and Debian Devel lists have been highly positive
and a couple of people have volunteered to help implement it...
(I've CCed the other documentation lists since I assume implementing such a
system would be best done as a cooperative project, please post follow ups
to gnome-doc-list only...)
Here is the proposal
****Begin Ultimate Help System Proposal*****
I have an interest in substantially improving the help systems that are
provided for Free software. Specifically, I'd like to make them easier to
use, and more useful for both power and new users and reduce the number of
'stupid'/'repetitive' questions that are asked in the IRC channels.
First my critique of current help systems
The reason users use help as a last resort, is that help is generally almost
USELESS to users who are not skilled at picking the search terms that the
help creator used. Instead, they will ask someone who is knowledgeable
about what they want to do, or is good at searching help. Another reason
that users use help as a 'last resort' is that there is a fairly good chance
that what they want to do may not be explained in the Help. The third
reason is that help does not necessarily explain the answer in such a way
that the user can understand.
In order to solve the above problems, I propose the following
1) synonym mapping of search queries
If a trusted developer can map the search terms that a typical user types to
more accurate terms, then a large step towards eliminating the problem of
using different search terms from the help creator can be made. I'd guess
that 50% of the time that naive users don't find the help that they are
looking for is because the term that they are searching on is not the same
as what the help document author used.
To make it even more useful, fuzzy matching can be used for misspelled words
(another common problem with searches by unskilled searchers...) or
alternatively offer other potential spellings (as is done on some of the
popular search engines such as google.)
2) help linked to IRC
If the query doesn't immediately find what the user was looking for, the
question can be submitted to a IRC help channel (one populated with
'trusted' respondents so that they don't get profanity, etc. as a response).
The IRC person then searches help and maps the question to the question
listed in the help (if the answer exists in help). The question then goes
to a database to be added to the help system on the next update.
If the query does not exist, then the following can be done...
a) Request more information - the IRC person creates a yes/no question for
the user to solicit more information
again, submitted to the database for future reference (this would be similar
to the Microsoft guided help...)
b) Create a tutorial on how to solve the problem - this could be a script
description generated from actually doing the action, with comments
Thus for 'how can I make my text bold faced' - I would select text, click on
the bold font character.
Two scripts would be generated, one a text description as above, the other a
visual hint system, that would highlight the next action to be done. Thus a
small box near the text say 'highlight text'. Then after the text is
highlighted, a box above the boldface icon 'click on icon'. This would also
be amendable to text to speech (TTS) software as well. This could also use
the custom mappings of the user, so they can use their keybindings in the
This addresses all of the problems above, and could save tech people and
users many hundreds of hours. Tech support at some companies would likely
voluntarily hang out in the IRC help room (or be required by management..).
3) submit more information
if the help person in the IRC channel does not have sufficient information,
then a button can be used that submits a screenshot of the users program.
Also, a brief listing of current software can be submitted (I.e. - I am
using Debian Potatoe version foo.bar with Gnome version fuz.baz, etc.)
This can avoid the problem of having the user look up the assorted
information themselves, and save the tech and the user time.
4) put my computer in the users state
The above info can be used to put the techs computer in a state similar to
the users computer temporarily. (the degree to which this can be done will
certainly vary, but at least going to the same window manager with the same
programs open might be useful...).
Of course once the user has been helped, the question and the solution can
be added to the help system (if not automagically, then with a small amount
of clean up, or with a review by a 'trusted' developer).
I sincerely believe that this might cut the amount of time spent helping new
users and solving problems on free software operating systems substantially.
This would also give us a significant edge in ease of problem solving over
many of the commercial software systems.
****Begin Ultimate Help System Proposal*****
I'd appreciate your thoughts and comments,