Handling collaboration when offline (driver & passenger)

Let’s say you’re using a web-based collaborative design tool with your colleague who is far, far away. Imagine that you have created the design file, or page, or whatever the shareable unit of data is defined as, and you’ve invited them to work with you. Things are going well for the two of you, but every now and then that connectivity is lost.

In this scenario, which is super frustrating, we could manage the relationship each user has to the data by simply thinking about the owner of the shareable unit as the “driver”, and the one invited to collaborate within it as the “passenger”. When connectivity is lost, the passenger loses editing power and the driver may continue. When connectivity is regained, the passenger’s view is synced up to driver’s and they may again edit in real time together.

In some scenarios, the driver being simply the person to have created the file may not be correct. The person invited may actually be the one who is ultimately responsible for the work being done within. There are a couple of ways I think this can be handled:

  • in software where there is functionality that designates a lead on a task, it makes sense that the designated driver (ha) would be inherited from the assignee of the task.
  • we can build a separate ownership passing mechanism (more costly)
  • we can infer the current driver from the volume of data being changed over a set interval of time (which would result in passing the role here and there in order to provide that user with write power while offline)
  • we can simply make it clear in a system connectivity warning that only they (the driver) have the power to make changes, while the passenger receives note that they cannot do such a thing while offline (as they do not own the file)

To name a few, I think this concept could work in design software, writing applications, project management tools, team communication, and gaming experiences. I’d like to see some examples of this method that exist, if they do. I imagine it could lead to a generally less obtrusive offline collaborative experience for at least one participant. If I find some examples, I’ll share in a follow-up chronicle of them.

- Steven Trevathan