While making an LMS web app, I was looking for a way to provide a nice UX while communicating the user that a resource they were trying to edit was already being worked on by another user. For example, two teachers could've ended up trying to edit the same lesson simultaneously. The way I decided to handle it was the following: when a user tries to edit a resource that's already being edited by someone else, an overlay covers the editor and shows "[user] is editing this resource". The user who arrived second can see the changes being made live and, as soon as the first user leaves, the overlay disappears.
(the screenshot here reads: "An edit to this exam is being made by Samuele Bonini. The editor will be unlocked as soon as the editing is done")
In order to see what similar applications were doing, in order to do some kind of pre-validation of this technique, I took a look at Google Classroom.
I was pretty surprised by what I found:
- no checks are made of concurrent modifications to resources
- while a teacher is editing a lesson, another teacher (or 20 other teachers) can access the same editor and make changes undisturbed; none of them are aware others are also editing the resources
- if a teacher submits a change to some material and another teacher does the same, the second edit will overwrite the first one
- if a teacher deletes a resource while another one has is editing it, when the second teacher saves their changes, the resource will automatically be un-deleted and will contain those changes.
It appears Google Classroom completely ignores the issue. Are there any arguments UX-wise for this? It sure is simpler to implement, but given the amount of resources Google has, I'm expecting some other argument for those choices.