Earlier this year, we completed the roll-out of our HTML player as we continued on our expansion to support tablets and mobile devices for our training application in addition to the Web. In parallel with this, our business expansion also resulted in a higher percentage of our 1000+ customers being the larger Pro and Unlimited accounts, who could be training several thousands of trainees at a time.
We also see that many of our customers allow training to be done using employee-owned devices recognized by their companies.
In addition to these trends, an increasing number of our customers also have the following training needs:
- Customer Training for their products
- Training for heterogeneous workforce in a shared economy model
All this meant a few key things for us:
- More heterogeneity in a globally distributed trainee base
- Wide variations in usage across customers
- Increasing scale of usage
How our Player Works
Our player works by converting multi-media course content (ppt, word, audio, video etc.) into an integrated video that a trainee can then play from their device. This involves a lot of complex processing for the following:
- Conversion of source files into integrated content
- Customizing delivery based on trainees’ device and network
- Integration with a number of libraries and third-party tools
- Data lookups and updates as a trainee goes through various stages of the course
There is a lot of complexity and a wide variety of use cases to be handled to make this a seamless experience across the entire user base.
Our HTML player had widespread adoption across devices and resulted in several successful training programs.
The first few months after this was rolled out also gave us really good insight into the variety of environments and usage patterns across our customer base.
In addition there was a wide variety in tools our customers used to create and manage content, play content, manage their security settings, encrypt content etc.
We had a challenge before us — continue to have a solid and consistent player experience with a much wider variety of device, network, tool and software possibilities including ongoing changes that we had no control over.
It became increasingly clear to us that to ensure a continued solid ease of use within our LMS which we pride ourselves on, we had to put together a mechanism to consistently deliver the best player experience for our customers no matter what their unique needs or variations were. It was also really important to proactively detect and resolve any unexpected issues or changes quickly without needing much information or action from our users, so we continue to keep it easy and simple from their perspective.
To accomplish this, we had to get to a position where we could proactively observe and analyze any errors happening for each access, address true issues quickly and make valid errors simple to understand and directly actionable for users.
At Mindflash, we have always been very closely engaged with the customer, some examples of our approach to engagement:
- Every employee engaging directly in taking on customer tickets including product marketing and engineering
- Daily triage done by engineering and support team members looking at production systems and raw logs together to see how our customer were doing
- Every employee communicating with each other using tools such as Yammer and Sococo to provide as timely a response to any customer questions or issues as possible
While these processes were working quite effectively, we realized that the volume and variety of usage, and therefore the volume and variety of support requests and questions, had increased quite a bit after our HTML player roll-out. We were also starting to hear a bit more “noise” than usual and typically the nature of issues were such that they were non-trivial and time-consuming to debug and often impossible to reproduce locally. We had a real challenge to scale and really step up our approach to support and root cause resolution for our widening customer base.
We then did the following:
Daily reports on any and all errors that users were seeing anywhere in our system
Inclusion of crisp actionable pieces of supporting data in the reports
Automatic follow-up for all cases possible without any customer involvement
Proactive outreach to customers based on data to help with timely resolution
Iterative fine-tuning of reports to ensure solid prioritization
In less than two months after we pursued this overall approach, our trainee and trainer error rates were reduced by 80%, and most of the remaining errors at this stage are less impactful or easy to fix automatically. In addition to reduction of errors, these observations have also led to a number of product enhancements to guide customers to succeed better.
As another very perceivable side-effect, there has been a huge efficiency improvement across the board on how much time customer success managers, account managers and engineers spend on customer issue resolution which is an important win for a lean startup like us.
We are now in a solid position to monitor any new errors proactively and resolve them even before customers contact us in many cases which is an important step in our continued efforts to scale our business and keep our customers happy and focused on what they should be doing — effective training.