“To every man is given the key to the gates of heaven. The same key opens the gates of hell.”
[As told to Richard Feynman by a Buddhist monk]
To the Buddhist monk, these words were a general guide to how to live your life.
To Richard Feynman, the words were about knowledge and science: He was convinced that Science, per se, is neither good nor bad. It is just a tool – a tool that can be used for both.
When I see these words, I think of some of the functionality in QlikView: Functions and features that were introduced to solve problems that would be difficult or impossible to solve otherwise: Triggers, Actions, Dollar expansions, Set analysis, Alternate states, Show conditions, etc.
These features are all keys to heaven. Correctly used, they can enable you to build an application that calculates and compares immensely complex things, while still presenting the data in a way that a user can understand and investigate further.
However, the very same functions are also the key to making user-hostile and unmanageable applications, e.g. through:
- Set analysis that hard-codes a selection – instead of letting the user select interactively.
- Excessive use of Dollar expansions, Variables and Show conditions, which make the application difficult or impossible to manage.
- Alternate states that are poorly labelled, so that the user gets confused about which selection really is applied.
- Triggers with Actions or Macros that perform navigation or selections that really ought to be user-initiated and not automatic.
Enable the user!
The user will learn to interact with data, if you only let him. Most users have very intelligent questions and want to navigate in data, explore and discover things. Let them do this.
But if you instead obscure the QlikView logic by introducing too much additional logic using any of the above mentioned features, the user experience will be a very different one. Instead of an active, smart user, you will produce a passive user that doesn't understand how to use QlikView effectively and instead uses the application as a static report.
Some pieces of advice:
- Navigation and selections should be left to the user. Don’t automate this. Let the user make the selections and interact with data.
- Label fields and charts so that it is clear what they show.
- Avoid hard-coding filters. For example, if you want one graph showing the numbers for 2014 and second graph for 2013, you should not create two separate graphs with the years hard-coded. You should instead use a Trellis chart with year as first dimension.
- Avoid using Triggers and Macros.
- Always ask yourself “How is this going to be managed? Is this a manageable solution?”
Don’t let the QlikView functions get in the way of making a user-friendly and manageable application. Instead, use them wisely.