Collaborative mode for Service Studio



Pair programming is nowadays a largely accepted modus operandis to reach a productive state where quality is increased. While Service Studio is a collaborative tool to some extent, it could be improved, hence this idea. This idea also applies to situations where one person wants to interchange ideas with another person that is remote or wants to teach something to someone else. (Bootcamps, workshops, knowledge transfer sessions, etc). 


Scrimba has a collaborative IDE that allows a developer to have live coding sessions that are broadcasted/streamed to subscribers. Those live coding sessions are two way channels, meaning that the "master peer"/"host" can makes changes to the files but the "subscribers" can also submit changes to the code.  See this demo video to see the potential that scrimba can offer to its users.

The idea

Video streaming over webex/skype/slack is very resource consuming (net bandwith, RAM usage, CPU usage, etc) and can break the experience completely. Many times have I suffered on a knowledge transfer session while attempting to share my screen to explain something to some customer within Service Studio and suffered lag, pixelization, audio loss, etc. 

Bringing the concepts showcased on the video aforementioned, Service Studio could broadcast interaction events (user keystrokes, mouse clicks, mouse movement, etc) that happen within its context to another remote instance (or multiple instances) of Service Studio. 

By broadcasting only those events the data transfer size is reduced and by sharing the same application context there's no need to transfer image/video so that others could see what is happening given that those interactions actions are replicated on each subscribed Service Studio instance.

The usages of this idea could be:

  • Easy hands-on support with customers where the support person can do a live session that has immediate impacts on the customer end
  • Easy pair-programming sessions
  • Easy knowledge transfers/ teaching sessions
  • Easy collaborative workshop sessions

Fortunately, nowadays we can leverage real time communications very easily with technologies such as WebSockets, MQTT, etc that scale easily and would allow for an easier development process. (There's no need to bring those UDP connections into the table and relive many of the difficulties that multiplayer games have given that this solution could, to some extent, ignore state sharing and management).


João Gonçalves

Created on 19 Jul 2018
Comments (1)

Changed the category to Collaboration