Collaborating Remotely on Data Problems (Part 1)

For many, remote work and collaboration has become an integral part of life. With that, the demand for technology that supports teams to jointly perform tasks remotely and share work has reached unprecedented highs and is projected to continue to grow well beyond the current pandemic.

Modern productivity applications facilitate two types of remote cooperative work. Synchronous (real-time) collaboration, where multiple users cooperatively perform tasks and communicate in real-time, and asynchronous (different time) collaboration, where users leave work results for others to process or review, and post annotations to such as comments and suggestions.

Effective collaborative applications typically support a mix of both. For example, online word processors such as Google Doc and Overleaf allow users to synchronously edit documents, chat, and annotate passages for later review. White-board inspired free-form ideation applications like Miro let users collaboratively structure ideas and multimedia on an interactive canvas and leave notes, and design tools like Figma facilitate simultaneous creation, editing and asynchronous reviewing of creative visual content.

Remote Collaboration for Data Analytics and Decision Making

In Einblick all user interactions are reflected for all connected users in real-time.

Data-driven decision making usually involves contributions from several non-co-located people, ranging from business and data analysts to decision makers. But analytics tools are missing two key aspects to support users in collaborating remotely. On one hand, their user interfaces are designed for single-user use only. There is no notion of sharing and integrating work results, observing each other’s activities, or communicating with other users of the system. On the other hand, unlike other productivity tools for which user actions are relatively light-weight (e.g., editing text, drawing shapes, adding multimedia elements), actions across the analytics stack can lead to computationally expensive operations. Many of them might take minutes or even hours to complete (e.g., joining data sources, applying data transformations or training and testing predictive models). This poses a critical problem for collaboration. As we describe in a number of research papers, having to wait for computations to finish in order to see the results leads to poor user performance and experience (e.g, in a Python Notebook). While working on data problems, users’ workflow gets continuously interrupted as they wait for computations to complete. Multiple users waiting for each other’s work poses an even larger problem. Thus, real-time updates and fast system responses are key to successful and productive remote collaboration.

Remote Collaboration in Einblick

At Einblick we aim to provide users with a real-time experience specifically tailored to data analytics and data-driven decision making.  Users can share workspaces, the place where they perform their analysis, with people within their organization. To raise awareness of collaborators’ activities within a workspace, all user interactions and computation updates are reflected for all connected users in real-time. For instance, users can follow each other’s mouse/touch movements and a mini map provides a compact view to inform about which locations of a workspace are being worked on.

To keep all clients in sync, our React-based frontend sends compact application state updates to a backend, which broadcasts the changes to all collaborators in a workspace. The frontend is optimized for fine granular updates, keeping the application responsive and rendering smooth even when a large number of users interact with a workspace at the same time.

Using our progressive computation engine Einblick makes sure users never have to wait for results longer than a few seconds. This is accomplished by approximating and progressively refining results over time. Whether users are working on data cleaning, visualization, transformation, model building or optimization, all connected collaborators are guaranteed to get near-instantaneous results.

Einblick also supports various asynchronous collaboration features. We’ve built in functionality that lets users annotate work results directly in a workspace, tag other users to inform them about changes, and share interesting insights with peers. Recently, we’ve started laying out the groundwork for “data apps”, an extension of the concept of interactive dashboards that can be used, for instance, to bundle and share predictive models so that other users can easily explore and test them on their own data. We will cover them in more detail in a future blog post.

Einblick’s shared workspaces allows users to track other connected users’ movements and action in real-time, and operators can be freely annotated.

Collaboration is at the heart of Einblick’s design. We are thrilled to see how our clients are starting to transition from single user environments in legacy systems to lively workspaces in Einblick where people work together to achieve common goals.

In the upcoming Part 2 of this series, we’ll reveal technical details on the challenges and implementation of Einblick’s shared workspaces.