Over the past few years, “collaboration” has become a buzzword, not just in the software industry but the business world at large. This is in part due to the highly networked and connected world we find ourselves in. We are more strongly connected to each other by technology than ever before. Likewise, “realtime” has crept into the marketing feature list of many software applications. This is in part due to ever-increasing internet speeds as well as greater choice in related software libraries. Unfortunately, the prevalence of these two separate terms in describing software applications somewhat obfuscates the meaning of the combined term Realtime Collaboration. In this post we discuss our take on what this means in terms of an enhanced experience for application users. We’ll look at each term separately and then take them as a whole.
The tl;dr definition of Realtime Collaboration:
People working together at the same time in a fluid and dynamic style while in the act of shared creation.
Realtime (or Real time, Real-time etc.), as related to users’ experiences within a software application, typically refers to the speed at which updates from one user are propagated through the system to other users. For example, if I log in to Twitter and watch my feed, I can see tweets from other users in more or less “real” time. In this context, people expect to see these updates within a minute after the author clicks the “tweet” button. It’s not instantaneous; but it’s not expected to be.
The threshold between realtime and non-realtime depends on the use case and the event you are attempting to observe. This could range from sub-second latency in a first-person-shooter game, or much longer with “real-time” updates on a tennis match that are pushed to your mobile device every five minutes. For us, a realtime application propagates information between users quickly enough such that each user feels as though they have continually up-to-date information with which to coordinate their actions with others.
To define collaboration, let’s first address three related terms:
- Communication: The exchange of ideas and information
- Cooperation: Loose and informal behavior alignment such that all involved parties are able to achieve their respective goals
- Coordination: Participants involved in a plan or activity working together in an organized way
All of these terms are related to, but different from, collaboration: The process of shared creation or active participation in achieving shared goals. The highest form of collaboration is synergy: multiple people with complimentary skills coming together to create something that none of them individually could have created on their own. This goes well beyond the simple exchange of information via communication. Unlike cooperation, in collaboration all parties share a common goal rather than supporting individual goals. Unlike coordination, collaboration thrives on differences and spontaneity to achieve creation that is organic, not orchestrated.
What Realtime Collaboration Is
Realtime collaboration is:
- Concurrent: Users can work on the same thing at the same time.
- Organic: Users are encouraged (via great UX design) to work with the information they have in the way they need to. Collaboration arises freely and organically when users have common goals.
- Fast: Information propagates to all users quickly, in most cases under a few seconds.
- Granular: Users can see each others actions in real-time in great detail (e.g each character you type in a text editor, or each brush stroke in a drawing).
- Transparent: It is consistently clear not just who is working on the same thing, but what they are doing.
A great example of a realtime collaborative application is Google Docs. Users can create a document and share it with others. When multiple users edit the document at that same time (concurrent), they can see (transparent) every character the other users are typing (granular) within a one- or two-second delay (fast). Users can be editing the same document or different documents, and within a single document they can be working in the same section or different sections. How closely they are collaborating at any given moment is fluid and driven by their currently shared goals (organic). They can be simultaneously adding text to different pages of the document, or discussing the same section of text via comments.
What Real Time Collaboration is Not
Many of today’s software applications are cloud-enabled or in some way utilize the internet to allow users to exchange information and work together. However, most of them do not yet provide a rich realtime collaborative experience. Services like WebEx, GoToMeeting, and Google Hangouts allow users to video conference and screen share. However, users are locked into a rigid turn taking system where there are defined roles of “presenter”, “host”, and “participant”, and there is only limited ability to create things together. These are good tools for communication and coordination, but not collaboration. Services like Dropbox and GitHub allow users to share and access common files and source code, but users cannot work on these files with each other at the same time because of the potential for conflicts and destructive merges.
The majority of software today provides few mechanisms for multiple users to edit the same content at the same time. They don’t highly encourage or enable the act of shared creation. Many applications provide basic sharing capabilities, but don’t facilitate collaboration in realtime.
This style of application is growing ever more popular. Google Docs, Apple iWork, the Cloud9 IDE and scores of other applications are embracing realtime collaboration and its highly effective mode of interaction for shared creation. Innovative solutions such as Figma are disrupting the old model of siloed creation. For many years, developing these types of applications was very difficult. Recently, though, developer tools have matured to make providing a rich collaborative experience much easier.
Unlike the previous generation, millennials expect a superior user experience in their software. In the same vein, as realtime collaboration becomes more and more prevalent, it will be expected. Those applications with an untapped need for collaboration will slowly be abandoned, with the market share flowing to more future-thinking software providers. We’ve built Convergence to lower the barrier to entry of Realtime Collaboration, making development of collaborative applications easier, faster, and more cost effective than ever before. As tools like Convergence and others in this space continue to evolve, the adoption of Realtime Collaboration will accelerate.
For the first time, realtime collaboration functionality is technically and financially feasible. The time is now. Start thinking about realtime collaboration in your app. Don’t get left in the dust.
Also published on Medium.