If you have been in the eLearning industry for a while,then you’ve seen the rise-and-fall of some great course development tools. Remember Authorware? *sigh*… The promise of ZebraZaps? Did you know SumTotal still makes ToolBook?
The death of Flash and rise of mobile has changed the landscape of our tools. In the old days, we designed what we wanted and then waited months while a room full of geeky Flash developers built it (at quite a cost too). Now, we can jump right in and build those awesome interactions ourselves! But this has complicated the UI as we have moved beyond simple PowerPoint-ish development. With all these new features we get longer menus, more panels, and options nested within options.
Another change in today’s eLearning landscape,versus 5 years ago, is that the technical knowledge and skill level of the average developer is much higher than ever before! Sure there were always great programmers in our industry. But generally speaking there was a divide between the designer and the programmer. Now that course development has moved away from “programming”, we have become much more educated on how to create our courses ourselves. We work day-to-day in our tools and have become experts applying them. And the newer people entering the field have been using tools like these all their lives.
Additionally, the technology of the web has changed a lot and will keep improving. Our development tools produce very complex web apps and are starting to overlap more and more with web app development. The most popular JavaScript library is jQuery which just happens to be the backbone of most of our courses. Facebook is built on a web technology called React.js as is all your Storyline and Rise courses. Incorporating these (and more) web technologies into our tools enables us to get under the hood and tinker. Most web apps use APIs to fetch and send data to remote services, then dynamically update the app with the data. As we move towards the same technologies, we have the same opportunities.
We need a tool in our new eLearning landscape that respects the state of our industry and the skills of our developers. We need a tool that takes advantage of new web technologies. A tool that is powerful and gives us the room to play without being too complex if we don’t want it to.
What follows is a list of features/solutions that I would like to see in the “Perfect Dev Tool.”Some already exist in a tool but are not implemented very well.Some are in one tool but not another. Others are new ideas that I would be build into my Perfect Tool. In no way is this a complete list (I am relying on you to grow this list in the comments). I may not have a suggested solution for all of them… but you can help with that in the comments too.
Currently, most course development tools are installed locally on our machines. Most have some cloud functionality, but it’s usually just to make sure we are still paying the bill. Some will let us get assets from the cloud. There are a few tools that are completely cloud-based, but these tend to be less powerful.
Vs.
The Perfect Development Tool:
I want a tool that has a foot solidly in both worlds. The power of a desktop app with the flexibility of a cloud app. I want to be able to save my course, template, interaction, color scheme, etc. to the cloud. I want to be able to easily find it later and reuse it. And wouldn’t it be great if I could share it with my team?
This feature has been around for a while in a few tools and recently rolled out in others. When you drop media into a slide it’s stored in your course’s library. Then when you reuse it on other slides it pulls it from the library. The beauty of this is that later when you want to replace all the dog images with cats you can just swap them out in the library and it updates everywhere in your course.
The problem is that often this feature is not implemented very well. When I swap the image I lose all the settings I had on the slide for the old image. All that time I took to carefully resize my dog? Gone when I replace it with the cat. I have to do it all again. In some tools I also have to redo any animations or filters I put on the image.
Vs.
The Perfect Development Tool:
I want a tool with a library that lets me swap items without all that re-work. It could be a choice: Replace All and Keep Formatting, or Replace All and Reset.
And remember that Cloud we are using? Let’s put the library on the cloud and while we are at it… I want to share my library with my teammates.
As I mentioned above, we are all web developers now. Let’s embrace it! APIs allow web developers to interact with tools/systems that they do not control. We actually already use APIs in our business. Both SCORM and xAPI are APIs. The course can send/get data from the LMS without really knowing how that LMS is storing it within the database.
Some course development tools already have pretty good APIs. These interfaces enable us to write JavaScript that can get/set variables in the course, play/pause the course, jump to any slide, and more. This is pretty awesome because we can do things like write JavaScript to reach out to our company server to get more information about our learner. With that information we could set the course welcoming slide to a photo of their local office, insert their name, and jump directly to a section of the course that applies to their specific role in the company.
Some tools also broadcast events that our custom JavaScript can listen for: the slide has changed, the learner skipped a question, etc. With this information we can create custom analytics that show us what truly engages our learners and helps them be successful.
Unfortunately not all the current tools allow this kind of access. Most will only let you set/get a course variable.
Vs.
The Perfect Development Tool:
I want a tool that allows me to get/set everything: what slide is the learner on? How many slides are marked complete? What did the learner score on the third quiz? I want to use JavaScript to update the course and force the learner to complete the third quiz, or allow them to skip it!
And I want the API to be well documented.
SDKs are Software Development Kits that allow you customize the course player. This used to be a thing. Not anymore, and I miss it. Wouldn’t it be great if you could change the Next arrow to any image you wanted? Even better if you could do it dynamically? Don’t like the navigation on the bottom of the screen? Use the SDK to move it to the top. Brand your course player with your company’s icons. And more.
xAPI adoption is growing (if you like it or not). Currently most tools only send very basic statements: “James viewed slide 1”. And you cannot customize them. So when you look in your LRS you will see things like “James correctly answered ‘Question Scene2_Slide11_FreeFormPickOne_0_0’ with response ‘t’”. Not very useful. And if you wanted to pull that information back into another course or system it’s going to be hard because the statement’s activity ID was randomly generated and you can not change it.
And what if you want to create your own xAPI statement to track something more complicated: James visited three tabs before responding to the question” type of thing? Currently we are writing custom xAPI wrappers and using JavaScript triggers to make this happen.
Vs.
The Perfect Development Tool:
I want a tool that lets me edit the xAPI statements it sends. I want a tool that lets me add my own custom xAPI statements along with the logic that send them.
If you are not familiar with web development Cascading Style Sheets contain all the information about how a web page should look: rounded corners, blue buttons, comic-sans font, etc. Our courses use these as well. So in theory if we wanted to change the look of our published course we could simply edit it’s CSS file. But they are mostly gibberish to us with names that don’t make any sense. And in many cases certain values are contained elsewhere in the JavaScript or HTML code.
Vs.
The Perfect Development Tool:
I want a tool that lets me crack open a published course’s css file and easily change the shape and color of all my buttons. Wouldn’t it be great if we could reuse the same published course for a different client and easily apply their web branding guidelines? What if our client needs to update 100 courses to match their company’s new colors? We could just replace the CSS files in them!
I actually think most of the major tools are doing a pretty good job with this. If I need help or want to see an example of how to build something I know I can look in several forums to get it. I mention it here because I feel it’s also important for me to use the Perfect Tool.
This is another area where most of the current tools have made progress. In most tools now I can easily insert an image, sound, even an interaction from the cloud. But I feel a lot more could be done. Some of the assets are… well… not that good. And most of the interactions require a great deal of tinkering to get them to fit our content.
Vs.
The Perfect Development Tool:
I want a tool with TONS of great assets that are very customizable. And I think the tool should be smart enough to help me integrate them with my course. If I have set up my course’s theme colors then any graphics or interactions I insert should respect those colors and automatically update to fit in. If I insert a four tabbed interaction I should not need to spend three hours trying to figure out how to add two more tabs to it.
This one is going to be hard… in the web development world “Responsive” has been pretty well defined: “A site designed with Responsive Web Design adapts the layout to the viewing environment by using fluid, proportion-based grids with flexible images and fonts.” Essentially web developers use a system that will rearrange (or hide) content based on the viewers screen size and device.
But in our industry that is not always a great idea. Drag-and-drops and Matching interactions can get pretty weird if they are dramatically rearranged. And how do you decide what content to hide? If it’s not important enough for mobile learners to see it then why is it in your course?
Different tools have taken different approaches to solving this and I am not sure any of us are completely happy with the results. But I am not sure I have a better idea how to solve it (yet). If you do; please add it to the comments below.
Vs.
The Perfect Development Tool:
I want a tool that looks great (and the same) on mobile and desktop.
It seems to be just a law of nature: The more powerful a tool is, the complex it is to use.
If you have been using one of these tools a long time you might not have even noticed this. But as more and more features are added the interface is getting more and more cluttered. This is very apparent if you are new to the industry or tool. If you are not new ask someone who is. Better yet; ask a teenager (who we all know is the expert at using apps) to perform some mundane task in your favorite course development tool. “Hey Sally, please add an image that fades in, waits 3 seconds, then moves to the top corner of the slide.” Just watch how frustrated they get.
Vs.
The Perfect Development Tool:
I want a tool that does not make me click more than three times to get to any feature.
I want it to group features in a way that makes sense. And this is not always obvious.
It would be awesome if it knew what I was likely to do next; If I double click a shape I want to enter text so show me the font options, not the shape options.
If a feature is more complex put some context aware help into the tool. When I click the help icon it should jump right to the section that deals with what I am currently trying to do.