Scripted Action Sequence

Examples: Context:  The user needs to perform the same sequence of actions over and over and over again, with little or no variability.  This often happens in artifacts which present a very wide spectrum of actions to the user, such as WYSIWYG Editor (in the visual realm) and Composed Command (in the linguistic realm).

Problem:  How can the artifact make repetitive tasks easier for the user?


Solution:  Provide a way for the user to "record" a sequence of actions of their choice, and a way to easily "play them back" at any time.  The playback should be as easy as giving a single command, or pressing a single button, or dropping the action object onto a control of some kind.  The user should be able to give the sequence a name of their choice.  Let the user review the sequence somehow, so that they can check their work or revisit a forgotten sequence to see what it did (as in Interaction History).

The action sequence itself could be played back literally, to keep things simple; or, if it acts upon an object which can change from one invocation to another (see Localized Object Actions), allow the sequence to be parameterized (e.g. use a placeholder or variable instead of a literal object).  Also let them act on many things at once (Actions for Multiple Objects).  Finally, make it possible for one action sequence to refer to another, so that they can build on each other.

Resulting Context:  How the names of the scripts (or the controls that launch them) are presented, in the context of the running artifact, will likely depend heavily upon the nature of the application, but consider putting them in with the Convenient Environment Actions or the Localized Object Actions rather than making them second-class citizens.  If possible, allow the user to save these actions, for later use, perhaps as part of the User Preferences.

The ability to save these sequences, plus the facility for sequences to build upon each other, create the potential for an entirely new linguistic or visual grammar to be invented by the user -- a grammar which is finely tuned to their own environment and work habits.  This is a very powerful capability.  In reality, it's programming; but if your users don't think of themselves as being programmers, don't call it that or you'll scare them off!  ("I don't know how to program anything; I must not be able to do this.")
Notes:  GUIs make this difficult to do well, for a variety of reasons.  Composed Command interfaces generally make it easy.

This pattern was inspired by an email conversation with Mike Anderson.

Comments to:
Last modified May 17, 1999

Copyright (c) 1999 by Jenifer Tidwell.  All rights reserved.