2016: A Retrospective…or Videos, Imports, and APIs (Oh, My!)

by Colin Gause (Director, Product Management)

2016 was a year of growth in many ways for Intrepid (cue the “2 million user experiences in 2016” happy dance). As our client base continues to mature, the need to continue evolving the learning experience while also fitting nicely into varied learning and technology ecospheres modern corporations are employing has stimulated a lot of conversation and ideas.

We kept the learner as our north-star (a Minnesotan can’t resist), and we also invested energy towards additional stakeholder groups including administrators, managers of technology ecospheres, and our dev operations.

So, what did we accomplish in 2016? Let’s take a high-level look in this first of a new regular series of technology updates…

The Learning Experience: Try the Learner-Uploaded Videos, They Taste Like Videos

We love working with innovators, and we continue to see our clients explore the flexibility of the Intrepid platform to create variations on the experience. That innovative spirit finds its way back to us in the form of many helpful ideas on how and where to evolve our capabilities. There are usually a few head-scratchers mixed in…and we love those thought provokers, too!

Our work on the learner experience in 2016 largely focused on areas of recurring feedback around particular types of content (missions, projects, discussions, context, and notes). A couple of trends here:

  • Features enabling even more learner engagement
  • Features that support wrapping an experience and content in context

Learners contribute their own video content to the experience

Our Mission and Project features enable some of the most differentiated experiences that we see in the market. Learners not only have the opportunity to apply concepts through real-world scenarios but to share (and can even peer review) those with others, creating a rich social learning experience with robust practical application. This year, we added the ability for learners to contribute video content as part of a Mission or Project. Class designers can have learners practice a concept from the experience, such as a sales pitch or coaching a team member, or use for learners to share insights from their own practical experience in a format that is both “real” and connective.

video-step

Learner view of video upload

Embedded links, video, tables…a new WYSIWYG editor equals a more engaging experience

We listened to the feedback that our previous WYSIWYG editor’s features could be extended and the places where it can be used broadened. It turns out there are a lot of trade-offs to consider when shopping for WYSIWYG editors (those darn security considerations, for example). Our new editor provides some additional tools we see popping up in numerous learning experiences. One of the most popular has been embedding short video (hosted on Vimeo or YouTube) directly in the flow of content within a context tile. Adding the WYSIWYG editor into note tiles has also enabled scenarios where learners link out to external sites quickly, right from the page, without any additional clicks.

example-note-tile

Learner view inside a “note tile” showing various formatting options

 

example-context-tile

Learner view inside a “context tile” showing various formatting options.

Discussions…continuing to evolve the features and feel with user feedback

Another area of user driven iteration. Yes, ok, we’re ready to admit it…we were probably pushing too hard originally to encourage dialogue within existing discussion posts versus creating new ones. We updated the interface to have more balance between the actions of creating a new thread and searching existing threads. We also removed some cool (our opinion) iconography that ended up being more confusing than helpful (the client is always right). Perhaps most interestingly, we’ve started down the path of providing more sorting/filtering options by adding a toggle to switch between newest replies and most replies.

moderated-discussion

Learner view of moderated discussion with updated UI and new sorting options.

Accessibility…2016 was captions, 2017 the moon

Providing an accessible product, across all types of needs, is a priority to Intrepid. It’s also been an opportunity for great learning, as we’ve found that having a product that is very dynamic, flexible and modern in look and feel presents challenges (oh modal content player, you complete us…and yet, sometimes, just ugh). In 2016, we released the ability to attach VTT caption files to videos. This effectively enables inclusion of subtitles in an easier way than having to directly embed in the video itself. A key use of caption files is for a hard of hearing audience, but they can also be used for cases such as English as a second language. In the coming year, we will be releasing additional improvements targeted at the experience for blind users and, ultimately, addressing some key requirements to meet WCAG 2.0 and 508 compliance standards.

closed-captioning

Learner view of closed captioning bar with example subtitle language options

 

The Administration Experience…We’re Not Just the Owners of this Hair Club, We’re Also Customers

We dedicated regular development capacity last year towards enhancing the ease of use of our administrative interface and the tools available. Many of these enhancements were individually small in nature. In aggregate, however, we have observed a significant change in the ease of enablement of client administrators. In addition to the feedback that comes from our client administrators, we owe a great debt to our LED consulting colleagues for their leadership in identifying and reviewing improvements to the admin experience.

It’s pretty darn awesome to have a consulting team that are true learning domain experts, and also experts in our technology and its day-to-day use and administration.

Import bulk changes to user profiles and enrollment

There are a variety of actions related to users that administrators sometimes want to perform “en masse” including creating new users, enabling/disabling users, enrolling in specific classes, and setting class attributes like cohort. We added new features within the Manage User administrative tools to both import these types of changes, as well as to export existing related data. Essentially, the process flow often involves exporting the current state of affairs first, identifying and editing any desired changes directly in that file, and then simply saving and importing that file back into the system. Since editing data usually isn’t the most glamorous task any of us do, it helps if it’s at least simple to accomplish. (There should be a comic book character with amazing data skills though, right? Or is that just us? Forget we mentioned it.)

user-mgmt

Administrator view of User Management option

More easily sort and edit content with dynamic content metadata columns and a new content report

So, you’ve built an awesome learning experience with lots of great content and activities, you’re about to go live, and you get that feeling you should double-check that everything is set just the way you want. Are the points set right? Do you have the final version of the feedback form associated correctly? Perfect, how about you just open every content item individually and confirm…yuck. In the flow of creating or editing the content for a specific learning experience, it’s common to want to do some double-checking. We released a couple of enhancements to streamline this process. First, within the content list section of the admin panel, we revealed additional columns of metadata for quick scanning, and made which columns are visible and their ordering controllable by each admin. Secondly, we created a new report called the “content metadata” report which, surprise, includes just that. Quickly filter, sort, or search in spreadsheet format to validate the various metadata that has been associated with each content item in the experience.

content-mgmt

Administrator view of Content Management options

Another option to enable self-enrollment into specific classes

Across our client base, there are now several varieties of implementations in terms of managing user access and enrollment. All are balancing trade-offs for their specific audiences and environment in terms of the learner experience, integration within a broader ecosphere of systems, desired level of administrator control, and administrative effort. Sound familiar?

When we implemented our “multi-site” capability, it introduced new considerations for administrators that went from managing access to a few, individual class sites to dozens or even hundreds of classes. Ultimately, we released a feature called “auto-enrollment” for administrators that want to distribute a class url directly to a wide audience (via email, LMS, corporate website, etc.) without having to specify which exact learners should be able to access the class (enrolled). When learners launch an auto-enrollment url, they are automatically enrolled into the class by the system and sent to the class homepage. If SSO is enabled, it will even create their profile in the Intrepid platform simultaneously as well.

One click and three things happen for a learner that they didn’t even know existed a moment before: their profile account is created, they are enrolled in the correct class, and they are passed directly into the homepage for that class.

auto-enrollment

Administrator view of auto-enrollment feature

Because, “courage” (or is this the opposite of that?…we’re still a little confused on the “courage” thing)

You know how the practical needs of eLearning administrators have a long history of running into conflict with the learner experience? Well, sometimes the shoe is on the other foot. We created two optional features (that, yes, can be turned on/off by our support team) to help solve real-world problems for administrators, appreciating that different clients would come down on different sides of the fence in terms of their value vs. their vulnerabilities.

For scenarios where a client’s Intrepid instance is connected to their enterprise SSO, they sometimes also want to provide access to users that do not have an SSO account (such as an external class leader/instructor). We added a feature called “local accounts”, where an administrator can manually create a profile with standard (non-SSO) username and password for an instance that has SSO enabled. Another optional feature we added, called “user impersonation,” can enable an administrator to look into a class experience from the pov of a specific learner. Obviously, this is intended for the constructive purpose of helping provide support.

 

The Integration Experience…Expressed in T-shirts, We Added White XLs (Create Your Own Tie-Dye!)

From years of industry conversations, convention forums, and client implementations involving learning data, we’ve noticed a few trends. Learning teams commonly: a) have an appetite for more data and better approaches for using/integrating data, (b) have varied use cases and preferences that create an aggregate need for flexible data capabilities, and (c) have less advanced data skill-sets than very flexible data capabilities may require (need to get BI or IT involved).

As we’ve matured and broadened our product development focus beyond the learning experience, this context has influenced our thinking regarding data capabilities. At a high-level, we have been working towards a spectrum of tools:

  1. Flexible tools that span use cases and require advanced skills (API based access – 2016 focus)
  2. Intermediate tools balancing flexibility and consumer ease of use (e.g. BI skills vs. IT skills)
  3. Consumer-grade tools that may have certain use case specificity (e.g. graphical visuals)

 

Directly connect to the Intrepid platform with open APIs

Carving out new space in the learning technology ecosphere has, naturally, generated lots of discussion about how our platform interacts with other technologies in that ecosphere. Can enrollment be managed from another system (such as an LMS) into an Intrepid class? Can we show data from Intrepid on a custom portal we’ve built? And so on. This year we opened our first set of APIs for clients to integrate against, with these scenarios in mind:

  • A learner or administrator takes an action in another system (e.g. an LMS or eCommerce engine) to register them for an experience on the Intrepid platform and passes user account and enrollment information to Intrepid.
  • A learner can log into one of your internal websites and see information from the Intrepid platform (ex, points and badges earned) in addition to data from your other internal business systems.
  • A web designer or administrator can create your own unique version of our multi-site landing page to manage learner enrollment and access to various experiences on the Intrepid platform.

Can’t you just give me all the “Raw” Data…oh, I see, there’s some complexity here

As we’ve seen client use of our platform grow to include cases where many different classes/sites are being managed across a wide range of audiences within a company, the need for enterprise BI analytics (across classes) has grown in prominence. In 2016, we started enabling client integration against a full set of their “raw” data (across classes) using open APIs. This approach has helped meet certain needs, but also proven challenging in that it is based on an API approach vs. more traditional BI database connectors. This introduces a step of code writing for which the capability is nascent within BI analytics and typically still held within IT. It is also more flexible, but less templatized, for establishing the data schema in the client database.

Long story short, we have upcoming work planned to enable BI integrations against a data warehouse using more traditional BI database connectors (an intermediate tool).

For Our Fellow “Wonks”, Here’s a Few Key Things that Happened Behind the Scenes

As part of being stewards of our technology, we regularly allocate capacity towards maintaining and evolving our platform infrastructure and code base. While this work is often unseen, it significantly contributes towards performant user experiences with minimal service interruption (including reducing the need for planned upgrade interruptions). Here’s a few examples of our work in this area:

  • The Intrepid platform leverages several services within our infrastructure including a search and data engine. In 2016, we clustered this component for a few reasons including: ability to perform no-downtime rolling upgrades to the platform, increased performance throughput, and additional redundancy.
  • Some upgrades to the platform require a migration activity for the existing client instances of the platform. Last year we updated our migrations capabilities to streamline the process across a variety of scenarios and to enhance testing and troubleshooting. For example, we can now make significant changes to areas of the platform affecting styling, such as color palettes, and dynamically regenerate the stylesheets for existing instances (without requiring manual intervention after deploy).
  • A lot of code and features were created, often concurrently, in our first couple years of development. Through those experiences, we’ve developed a POV regarding best practice code implementation based on the specific needs of our product and use cases. In 2016, we saw several opportunities to refactor code implementation across features to make it easier to maintain, enhance or develop new features going forward.

We’re Looking Forward to an Exciting 2017…More Updates to Come in Q1

In our next post, we’ll take a look at the context behind new features enabling Admins (and a new role concept called “Instructors”) to directly award points and badges to learners (based on observations of learner contributions inside or outside of the platform).

And here’s where we’ll share a moment of developer humor, so you can get the feel of the “trenches.”

youcanbranchifyouwantto

image source

Have a great start to the year, and speak with you again soon!

— Colin

ColinGrause

Colin Gause, Director of Product Management

 

p.s. Check for more technology updates here.