A tool should be easy to use, meeting the user at his or her point-of-view rather than requiring the user to gain expertise about the tool itself.
A tool should be open-ended, allowing any possible output.