top of page


The rise of graphical user interface-based programming software such as Storyline has simplified the creation of software and web content. No longer purely the domain of geeks, it is now possible to create a web application, for example, with no formal training, and no knowledge of a programming language.

This democratization of technology has led to a flood of creativity, as anyone with an idea and a little patience can turn it into a mobile or web-based application. Unfortunately, the focus on GUI-based WYSIWYG (What You See Is What You Get) editors has led to a loss of focus on the fundamental guiding principles of programming, which is in reality what we’re doing, whether it’s creating a Storyline eLearning program, or writing a Java-based Android app. I’d like to try to connect a few of the guiding principles of software development with some development patterns that you can follow when developing your own eLearning content. Today, we’ll discuss the DRY principle.


DRY is one of the fundamental principles of object-oriented programming. Even if you don’t have any idea what ‘objects’ are or why everyone’s so oriented on them, this is still a useful principle for your development. In a nutshell, DRY says that you should strive to develop so that if you need to change something down the road, you can change it in one spot, even if it is something that appears repeatedly in your program/eLearning module.

In Storyline terms, a good example of this would be using Slide Masters and Feedback Masters as much as possible. This usage can extend far beyond simply setting a background and header (although that’s not a bad start, if you aren’t doing this already). In another blog, I’ll write about how you can add repetitive elements like closed captioning and navigation controls in a Slide Master.

Another way you can reduce repetition in your eLearning module is to make triggers dependent on actual objects, whenever possible, rather than on timeline cues. For example, you want to sync an image’s motion path with the end of an audio clip. You could certainly set a cue point onto the timeline at the end of the audio clip, and then trigger the motion path based on that cue point… But what if you want to move the audio clip? You’ll not only have to adjust the clip, but also any cues that are positioned relative to it.

If you had simply triggered the motion path to begin when the timeline of the audio clip ended (or on ‘media complete’), you could move the audio clip as much as you like without breaking the timing of the motion path. Another way to put it is that your dependencies should be as limited as possible. In the original example, the path to starting your motion path went from Audio Finishes → Cue Point → Motion Path Triggered. When it’s spelled out like this, the cue point is clearly extraneous.

If you keep the DRY principle in mind when developing your eLearning content, you will save yourself all sorts of pain when it comes time to review and modify it. For more tips on developing eLearning content, or to see samples of our work, visit us at

Featured Posts
Recent Posts
Search By Tags
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page