Thursday, March 26, 2009

Creating Reusable Interactions

What are Interaction Models?

An interaction model is a template which one can easily change (customize) to create interactivity. With interaction models at hand, you don't have to build interactivity from scratch. For example, a crossword puzzle where you can put new words and clues easily, to create an entirely new crossword, is an interaction model. So is a scenario simulation where you can easily change the content, learner actions and their consequences - building multiple scenarios without coding.

Pre-built vs Custom Interaction Models

A pre-built interaction model is already coded for you. When working with pre-built IMs, your focus is on selecting the right IM, customizing it using your content, and finally adding it to your course. The larger the library of pre-built IM's you have access to, the wider your choice, and the more you are likely to find one that exactly fits your need.

Sometimes, however, your needs are unique. You won't find an interaction model that quite works the way you want. Now you are in the province of custom interaction models.

But before you get ready to flex your programming muscles, I recommend three simple checks which will tell you whether you really need custom interaction models.

  1. Can you get more out of the pre-built interaction models? Often, the interactive behavior you need can be accomplished relatively easily with an interaction model you already have. You need to be a bit creative, that's all. This can save you valuable time and programmming resources. For example, a survey could also double as an essay type question. Or, a path animation can easily illustrate a timeline nicely.Please convince yourself that your pre-built library does not cut it before the next step.
  2. Will you ever need to create variations of this interactive behavior you are trying to build? If now is the only time you need this interactivity, you may as well write a program that does what you need, and not bother with a custom interaction model.
  3. How many variations do you foresee? Writing a program has one major downside: each variation of interactivity will need a change in the program, and you will either do it yourself, or have a programmer do it. Then you end up with multiple versions of the program, and that is a nightmare when it comes to bug fixing. It is still okay to go this way if all you have in mind is a couple of variations, and if you are the one who will create them.

Once you have completed these three checks, you are clear that the library doesn't have what you need, you will need to build it yourself, and it must be a customizable interaction model. Now you are ready.

How to build custom interaction models

There are several ways you could build custom interaction models. One method is to use a tool such as myRaptivity, which allows your Flash program to be written in such a way that other users can use Raptivity to create custom variations of your IM's.

You can also develop your own Flash program with due care, so that it provides a way for other users to customize interactions. This will be tedious, but can be done using XML or other data files.

What is the payoff?

If you go the custom interaction model route, there are several benefits. You code only once, and each variation is simply a matter of customization - which a non-programmer can do. This means, you could publish a library of custom interaction models to your users, and they could use your custom IMs to build interactivity. You only maintain one version of the program file, and that is easy to maintain and bug-fix.