Collaboration can be synchronous, asynchronous or multi-synchronous. In multi-synchronous collaboration, participants work in parallel on their own copies and synchronize periodically to build a consistent state. A multi-synchronous collaboration introduces divergence between copies of shared objects. Working in parallel can potentially reduce completion time, however, it introduces blind modifications and the overhead of solving conflicts introduced by concurrent modifications can overwhelm the expected gain. Divergence awareness quantifies divergence and answers the following questions: is there any divergence? With whom? Where? And how much? Existing metrics quantifies divergence from the point of view of a user and not of the group. This paper proposes a group divergence metric that addresses specifically the "how much?" question. This metric makes users aware of the distance of the group to the next potential convergence point. The paper defines a formal model for multi-synchronous systems and the group divergence metric. Next, it proposes an algorithm to compute group divergence metric on logs and validates the algorithm with real data from different development projects. Finally, it proposes an original approach to compute group divergence metric in real-time in a fully decentralized network and validates the approach with simulations.
GroupDiv: Formalizing and Computing Group Divergence Awareness in Multi-Synchronous Distributed Collaborative Systems