Many applications are centered around a set of features, tasks, actions, operations, business processes, or use cases that share a similar pattern of interaction. For example:
- A paint program has a toolbar or palette with various drawing tools. Clicking on a tool selects it, and then the user operates on the canvas with that tool until a different tool is selected.
- A game might have a number of levels. Each level has a different map, but all of the levels have essentially the same gameplay, scoring, and success criteria for moving on to the next level.
- A workflow-driven human resources management system might have different business processes for business events like scheduling job interviews, hiring an employee, recording employee evaluations, or adjusting employee benefits. Each business process can consist of multiple stages or subtasks that require action and approval by different users. Each business process is started by selecting it from a menu, and a business process will have an “active” status until a terminating condition is reached.
If your application has a set of similar tasks, you first will want to create a list to keep track of them.
You can then design an interaction framework that describes the commonalities of the user interface and behavior for those tasks.
Some of the issues you should consider include:
- the means by which the tasks are started or triggered (e.g., selection from a menu);
- the authorizations for which tasks can be initiated by which groups of users;
- conditions under which the task can be activated, or cases where it may be disabled;
- how the task is ended or deemed to be complete;
- whether the initiation or end of a task changes any statuses or modes;
- whether the end of the task leads to follow-up tasks; and
- the effect that the task has on the data in the system; for example, upon task completion, the data may be saved persistently, whereas if the task is abandoned or cancelled, the data will not be saved. (These types of considerations can form part of the transaction/persistence concept.)
Designing an interaction framework helps ensure that you really understand how your application fundamentally works. It ensures consistency across similar tasks, which helps users perceive patterns and form correct mental models.
By documenting the commonalities amongst the tasks in an interaction framework, it also saves you from having to re-document the same aspects for each individual task. The interaction framework will also be critical for helping the development team design and build the technical “platform” on which the various tasks can be implemented.