Many customers wonder what will be required to upgrade to the latest version of SCORM Engine. There isn’t an easy answer to that question as the amount of time, effort, and resources required depend on several factors.
This document describes the upgrade process and the various paths the upgrade may take. This is a good reference for high-level planning in regards to the Engine upgrade, but this is not intended as a technical reference. Our technical documentation can be found here.
At a High Level...
We manage all upgrades projects in Basecamp, which allows us to keep all communication for the project in one place. We’ll first schedule a "kickoff" call with your development team to discuss goals for the upgrade and the specific requirements of your platform. From there, we send you the latest version of Engine and instructions detailing how to run the upgrade tool.
We recommend running the upgrade tool on a representative data set (ideally a copy of your production database) so that you can work out any issues with the upgrade tool configuration and get a handle on how much time will be required for your eventual upgrade plan.
Next, you’ll need to test that your LMS works with the latest version of Engine. This can be done by setting up an Engine instance that uses the upgraded data set and has a test version of your LMS to interact with that version. We will help you resolve any issues that come up during the QA step.
Lastly, you will need to develop a plan to upgrade your production systems and actually execute the upgrade. Along the way, we will help you resolve any issues that come up or answer any questions you might have.
Technical Considerations
The upgrade tool's primary function is to modify Engine's tables so that they match the schema that the latest version of Engine expects. Our tool dynamically determines what kind of changes need to be made and executes them.
Major database schema changes will require the database to be taken offline; it is impossible to read from or add data to a table while it is being modified. Generally speaking, an old version of Engine cannot read data from a newer schema, nor can a new version of Engine read data from an older schema.
This means that the upgrade is going to require that your Engine instance—and whatever portion of your application that utilizes Engine—has a period of scheduled downtime while you execute the upgrade.
The precise amount of downtime necessary depends on many factors (see below). For the vast majority of customers, the upgrade tool will run in 15 minutes or less, but it's always a good idea to schedule more downtime than necessary in case something goes wrong; we generally recommend an hour. Many customers also use this downtime to perform other server maintenance tasks or to upgrade their LMS along with Engine, but doing so would require lengthening the maintenance window.
For customers with large data sets, the upgrade tool may require several hours to run, which (understandably) is in most cases considered an unacceptable amount of downtime. In these cases, we have some sophisticated measures for minimizing the amount of downtime by allowing you to run parts of the upgrade while your servers are running, but this does add significantly more complexity.
How much effort will this take?
We tell customers to plan on the upgrade process taking about 4-6 weeks with a developer resource dedicated to the project. It is a very iterative process with file sharing and dialog managed through Basecamp during the entire upgrade. Our team will match your pace.
Upgrades can be very simple. Broadly speaking, there are three considerations where complexity can be introduced into an upgrade process: the database upgrade, updating of the application and what version of Engine is currently in production. The older the version of Engine you are on, the more complex the upgrade may be.
How much effort does it take to upgrade your database?
For the vast majority of customers, upgrading the database will be a matter of running the tool a few times and one or two back-and-forths with somebody at Rustici Software to resolve any issues or clarify instructions.
This process becomes more complicated if the customer has a very large data set or has particularly stringent downtime requirements and cannot accept an hour's worth of downtime. "Large" is relative; it depends on hardware, the complexity of the content you host, and whether you use xAPI. But generally speaking, I would say that a customer who has 2-10 million registrations stored in Engine's tables may have to consider doing an "online" upgrade and that a customer with 10 million or more registrations will probably have to do an online upgrade. If this describes you, inquire with us for more details; every one of these situations is unique.
However, any upgrade from Engine 2015.1.x or later to the current version should be fairly straightforward and "easy", regardless of how large this data set is.
How much effort does it take to upgrade your application?
For most customers, this is the part of the upgrade that takes the most time. Especially for customers coming from older versions of Engine, there is usually a hiccup or two discovered during the QA process. Even still, this shouldn't take more a few back-and-forths.
That said, many customers also use the occasion of an upgrade to integrate new Engine functionality into their application. Each of these features will require additional effort of varying degree depending on what exactly you are trying to do.
For example, many customers are interested in adding xAPI support. It is easy enough to add support for launching xAPI packages and cmi5 courses. Engine will even make this data "look like" the data you get from SCORM and AICC courses, so you won't have to change your reporting layer for the simple stuff! But if you want to use xAPI to report on detailed learner experiences outside the context of e-learning content taken in the browser, it will require a lot of work, as that typically represents a fundamentally new kind of paradigm for your application to work with.
Conclusions
The length of this document may make the upgrade progress seem more complicated than it actually is. Therefore, I want to re-emphasize: the vast majority of customers can perform the necessary steps to upgrade to the latest version of Engine with a few person-days worth of effort spread out over the course of a few weeks.
Most upgrade projects take more time and effort than that, but that is because most customers are also using the occasion of the upgrade to change their own application, tweak Engine behavior that isn't really related to the upgrade, or start taking advantage of new Engine features. Because these things are driven by your own goals and requirements, we cannot give you an accurate estimate of what is required. But what we can guarantee you is that, whatever it is you are trying to accomplish with Engine, we will be here to help you and we will do whatever it takes to make that happen.
This may seem extremely complicated, but trust that you’ll have a team of resources at Rustici to help work through the process every step of the way. Many of customers can perform the necessary steps to upgrade to the latest version of Engine with a few days worth of effort spread out over the course of a few weeks.
Some upgrade projects take more time and effort than that, but that is usually when a customer chooses to simultaneously change their own application, tweak Engine behavior that isn't really related to the upgrade, or start taking advantage of new Engine features. No matter what, we promise you this: whatever it is you are trying to accomplish with Engine, we will be here to help you and we will do whatever it takes to make that happen.