Changing an "In Progress" Course

One of the most powerful and flexible aspects of Courses is your ability to change and build them while your clients are currently participating them.

This makes possible several things, including:
  • Making it up as you go, i.e. not needing to have the entire thing built before being able to start clients in on it.
  • Tweak future segments based on how earlier segments have gone.
  • Revise earlier segments to make them better for future participants without disrupting the experience of current ones.
To do this with confidence (and not accidentally mess things up!), the key is to understand the rules that govern how changes you make in the Course Builder will affect in-progress participations.

So let's explore those rules!

Course Participants as Train Cars on a Track

Here's an extended metaphor that will give you an intuition for reasoning about participants who are moving through a course:

A participant in your course is like a single train car riding along a track, always at some particular mile marker, seeing the scenery along each portion of that track, taking pictures of that scenery which they carry forward as they go, and eventually will be parked back at the train station when the ride is over.

The Course as designed in the Course Builder is the entire track.

The steps or days in your Course are segments of track (for the rest of this article I'll only refer to days, as in Day-based Courses, but this is interchangeable with steps as in Step-based Courses).

A given day in your course, like Day 1 or Day 17, is a particular mile marker of the track.

The items in your course are the scenery along the track.

The items that are actually dispatched by the Course are the pictures they take and carry forward.

A participant moving through your course is a train car rolling along the track.  Happily, they are like (non-spooky) ghosts in that they'll never collide or otherwise interact with other cars on the track: they are each free to move independently, and the track never gets too crowded no matter how many train cars are cruising it.

When the course is over and the participation is "complete", that's the train car parked back in the station.

You building your Course using the Course Builder is you laying down or modifying both the track and the scenery, like a god.

So what will happen to any of those train cars that are out on the track while you're messing with it?  Let's go through the scenarios, guided by this train idea.  I'm gonna intermix the train metaphor with the course concepts, try to keep up! :)

Say there's a train at mile marker 7 (i.e. a participant currently on Day 7):
  • What happens if you add some items to Day 6?  That scenery won't be seen by the train on Day 7, and so will have no effect.  But future train cars that pass by that mile marker WILL see that change of scenery, and take pictures of it, i.e. get those items as part of the experience.
  • What happens if you add some items to Day 8?  That train car currently on Day 7 will see that updated scenery when it passes by that way tomorrow, so those changes will be experienced by that participant.
  • What happens if you add some items to Day 7?  Dunno, what time is it right now?  If it's still in the future for that train car, it'll see it when it gets there.  But if the train has already passed, there'll be no effect and you might be left wondering why they didn't get the picture of that lovely Worksheet you just put there.  Couple this with the fact that courses can be set to dispatch in the participant's time zone, thus their "2pm" may or may not match your own, you can hopefully see that, like in real life, messing with the track right around where trains are passing nearby can be recipe for disaster, and thus best avoided (you can do it, but if you do management is not responsible for any lost items, unintended consequences, or general confusion :).
  • What happens if you add 3 segments of track wedged in between Day 2 and 3?  The mile markers will adjust accordingly for all subsequent segments, i.e. what was Day 3 becomes Day 6, what was Day 4 becomes Day 7, and so on.  As for our train car currently on Day 7?  They'll now show as being on Day 10, but the scenery around them hasn't changed, so they'll not have any changes to the flow of items they'll get as part of their participation: things will continue on as usual.
  • What happens if you delete 3 segments of tracks, those numbered 2, 3, and 4?  First, the scenery for those 3 segments are gone, but any pictures of that scenery as taken by our train car on Day 7 will remain.  Next, no holes allowed on these tracks, so everything beyond those deleted segments magically slides down 3 slots to keep everything whole.  Our train on Day 7 is now showing on Day 4, but again, the scenery has moved with it so nothing changes in the regularly scheduled flow of what will be seen.
  • What happens if you delete the segment of track that is mile marker 7?  In the physical world, that would be bad and probably newsworthy.  Fortunately in our virtual world, that will cause no derailments.  Instead, our train car on Day 7 will be lifted majestically into the air, and what was segment 8 of the track will be slid down the line to connect with end of segment 6 (again, no holes allowed on these tracks), it will be renumbered as the new segment 7, and our train car will be set down on what was Day 8, now Day 7, along with whatever scenery the was-Day 8 brings along, thus teeing up our train car to see that stuff one day sooner, provided that stuff is still later in the day, i.e. not already passed by the train car.
  • What happens if you delete the segment of track that is mile marker 7, PLUS all segments that follow it?  In this case, our train car at Day 7 will effectively be out of track to traverse, thus the ride is now over and we'll park that train back in the station, thereby labeling the course complete for that participant.
  • What if right after deleting all that track, I add some NEW segments of track to take their place?  Sorry, that train car is already parked in the station and no longer out to ride on that new track and take pictures of whatever new scenery.  But if you back it on out of the station (i.e. rewind the participation), it again can ride on and enjoy whatever new stretches of track you've created. :)

While we're at it with this whole metaphor teed up in mind, let's use it a little more to explore and better understand a few more mechanics:

Relative Timing of Multiple Participants:  You can save a lot of confusion to recognize that Days and dates are very separate and independent concepts.  On the track we can speak of mile markers, and for a Day-based Course, train cars move at exactly one mile per day.  Though that implies a tight relationship between them, it wouldn't make sense to put a date on a mile marker as though every train were supposed to pass by that stretch of track on the same day.  Train cars can start their journey at any given day.  For a participant starting today, Day 15 for them will be two weeks from now, yet Day 15 for some other participant could have happened over a month ago.  So even though the Course Builder shows a given Day as having a specific date on the calendar, those are merely for reference AS IF a course participant started on a particular day, and you can change that "AS IF" date to whatever you like, whenever you like.

Group Courses:  When it comes to a group participating in a Course, that's a single train car rolling down the tracks AND you get to choose which group members are actually sitting in that train car, i.e. which among them are taking pictures and thus being included in those Group Worksheets or whatever else.  Usually this will be all group members, but not necessarily!  Especially when someone new joins the group: it'll be up to you to actually put them in the train car, so that they too will see the scenery and take a picture of it as the train continues along going forward.  Speaking of latecomers to a group, even if you put them on the group course participation train, a newcomer will NOT have any pictures of scenery that was already passed by by the train, but you can manually give those as is fitting (e.g. by modifying an already-started Group Metric to include the newcomer).

Step-based Courses:  Unlike Day-based Courses, which truly have a concept of rolling through a given mile marker over the span of 24 hours, being at a given step in a Step-based Courses means taking in the full scenery of that step all at once (and then moving on to the next step only once they've completed everything in the current one).  So if you make changes to the scenery at a given step in a Step-based Course, all participants who are on that step will experience it immediately... sort of!  Here's how it plays out:
  • Modify an item on that step?  They've already taken a picture of it, and so will ignore the change.
  • Delete an item from that step?  They've already taken a picture of it, so they'll keep it, BUT if suddenly there's nothing else to complete at that Step based on that deletion, then they'll immediately pull ahead to the next Step.
  • Add an item to that Step?  Ooh, that's something new and interesting!  They'll immediately take a picture of it (i.e. that item will be dispatched to them).
Following Items:  Anywhere in a course, you can make some item follow the completion of a preceding item, provided that item is itself "completable" (i.e. an Action, Worksheet, or File).  I confess, these don't fully fit into our train metaphor, but they do well enough: following items are also part of the scenery.  Add them to the future of what the train car will see, and the train car will get there.  Remove them yet the train has already taken a picture of it?  They'll keep the picture, yet future trains won't see it.

And there you have it!

Modifying courses that people are currently participation in can be fraught.  By understanding the concepts around doing so, you can do so with awareness of how it will (and will not!) affect those current participants.  Power and flexibility to sculpt these courses and more quickly iterate to make improvements is your reward.