Help in many of the applications I use are pretty clunky and have not changed much in years.
Jack Moffett posted 3 articles of what he learned from how complex games provide help.

  1. No one reads help – integrate your tutorial – make it so the user can learn the product as they are working on their own tasks.
  2. Keep things moving along – provide information as the user waits – provide basic information during load times about a feature or functionality that may be of interest to them given what they are doing
  3. Provide something the first time – provide the help just when they need it – explain the feature the first time they encounter it, do not show the information the next time they use the feature

This requires thinking about the UI architecture ahead of time. The application needs to be designed to keep track of what the user is doing, the number of times they have encountered a feature, and the context of his work.

Many times help and training are separate from each other as well as from the design process. Doing these things make documentation and training integral to the user interface design and the overall experience.