Adventures in eLearning

For the past couple months I have been heads down working on bpmnPRO, a new gamified eLearning app. I described the rationale for it in a previous post. Basically it's a way to prepare for the BPMessentials BPMN Method and Style certification exam. But I expect there will be some demand from others who haven't gone through the training, and it's designed to stand on its own like Duolingo, the iPad app for learning foreign languages that it is loosely patterned after.

bpmnPRO is nearing public release, and so far the comments from beta users - students in my July class - have been really positive. In this post I want to talk about my experience building it. I had two basic requirements when I began: It had to support gamification, and it had to work on iPad in addition to PC. And I guess also a third one: It couldn't require programming to add the interactivity. I wound up using Articulate Storyline, which meets all three requirements. The tool is pretty amazing, although far from perfect.

Storyline starts with Powerpoint-like slides, and augments them heavily with event-triggered interaction. Objects on a slide - buttons, images, cartoon characters - have states, differences in appearance that are triggered by various events and conditions. Storyline provides a number of built-in states, and you can define your own as well. You can edit the appearance - color, text, character expression, or whatever - for each state. A slide also has layers. Each slide starts by showing the base layer, and other layers are shown or hidden based on events and conditions. Layers also have timelines that determine when certain objects, such as audio clips, are played. And a slide contains user-defined triggers that define the actions taken when some event occurs, either a mouse event, the start or end of a timeline, changes in a state or variable, or a quiz is passed or failed. The event can be subject to some condition as well, such as only when the state is X, or when a variable value is greater than some number. The actions range from jumping to another slide to showing or hiding a layer, changing a state or variable value, or executing a script. Unlike states, which are bound to objects on a particular slide, variables are global and can be referenced across slides. The combination of states, layers, variables, and triggered actions allows an amazing variety of interactivity with no programming at all, just simple point-click wizards to configure each one.

Another strength of Storyline is the ability to do quizzing in an engaging way - not just multiple choice but drag-and-drop, for example, to create the puzzles like the one below. The puzzles are fun to play but each one takes over an hour to put together, and there are dozens of them in bpmnPRO.

When you click Publish, Storyline generates both Flash and HTML5 output. What gets played depends on the user's environment, PC or mobile device. The Flash is slightly more functional, but the HTML5 supports mobile devices, either with or without the Articulate Mobile Player for iPad. I have read that without the mobile player, the HTML5 is a bit clunky on iPad, but the mobile player does not support scripting. Right now I don't have scripting implemented, so I can use the mobile player, but that means I cannot pass the custom score back to the LMS.

What's an LMS, you ask. Storyline is just the courseware. The Learning Management System manages the students taking the course, or app, and their completion status. I am using one called ScormCloud from Rustici Software. It hosts the Storyline app and tracks completion status for each student. Not long ago that wasn't possible for courseware played on mobile devices, but now it can be done with something called the Tin Can api, the evolution of an older LMS reporting interface called SCORM. Rustici are the Tin Can gurus, it seems. Also, ScormCloud has a Wordpress plug-in, so I can allow users to self-register from a Members Only section of my website (using s2Member and Paypal - lots of moving parts required to make this happen).

Except for a few navigation slides, every slide is a quiz question or puzzle. In each lesson of 16 questions, you can miss up to 3 but after that you need to redo the lesson. The basic goal of bpmnPRO is to Level Up and get to the end successfully. But to satisfy the competitive types, I would like to have a leaderboard, so it's necessary to reduce the points per question on retries. You can do that with a variable, but for some reason Storyline cannot pass a number variable to LMS. (It can pass a text variable. So you have to choose between reporting a score to LMS or supporting mobile player. Kind of dumb.)

While Storyline claims to support gamification, it does not easily scale to the level used in bpmnPRO. Think 400 slides, each with at least 3 layers - all quiz slides have a base layer, quiz Success layer, and quiz Fail layer - and multiple triggers on each layer of every slide. Yeah, that's a lot of pointing and clicking. You can copy and paste a slide one at a time, and that replicates all the layers, objects, and triggers in the slide copy. What that means in practice is that you really need to finalize the game mechanics before adding the content, or else you have to modify triggers one at a time on every slide. That is a steep penalty.

You can provide a bit of maintainability by using slide masters, like in Powerpoint. A slide master can have layers and triggers, but objects on layers other than the base don't appear in the normal slide view, and they appear only intermittently in the playback preview. Storyline "support" (I use the term loosely) claims there is no difference between Preview and Published output, but I choose to believe my own eyes. In my next Storyline app, I will try to use multilayer masters more heavily to try to encapsulate as much of the game mechanics there as opposed to each individual slide. A little documentation on that would help a lot.

And this brings up the first serious problem with Storyline. It has no real documentation at all. The site has these cute little tutorials, but with all the interactive elements available, those barely scratch the surface. There is nothing on behavior of layers in a master, for instance, or race conditions between triggers on different layers. The whole scripting object model and api is undocumented. This isn't a free Wordpress plug-in, it's $1400 software. And first line support is really the forum manned by the Storyline community, which means more often than not the answer is irrelevant or incorrect. If you hunt long enough, there is a way to submit a support ticket, and they do try to help in that case. When I suggested that they might want to provide some documentation for the software, the support guy said, "Great idea. Why don't you submit that through the forum as a requested feature?" I hope he was kidding, but I don't think so. When you purchase the software, they do offer one year of "platinum" support for over 40% of the software price, double the normal rate. I figured that was support for the undocumented script api, which I didn't need at the time. Maybe a mistake.

The second serious problem is even worse. On a simple File/Save, Storyline lost all the image data! Just gone. Well over 1000 diagrams and little puzzle pieces, poof. No error message on the save, just disappeared. Actually it happened twice, the last time two days before go-live. That was not fun. It took me over 50 hours to recreate the images I couldn't retrieve from backups. The image data is not corrupted, it's actually gone. The file size was 95MB before the problem and 65MB after. It just forgot to save the data. I have a suspicion that there is a serious File/Save problem in Storyline, but I am still trying to track it down with Articulate. Now I make sure I have a file copy of every image. That doubles the development time, but I can't afford another disaster like that.

bpmnPRO is in beta. Students at my BPMN Method and Style training next week get it for free. Click here to register, if you're interested in that. When it goes live in a week or two it will be available for non-students as well.