Why is Editing Messages So Complex?

Steve Nguyen
We Are Yammer
Published in
3 min readNov 8, 2016

People make mistakes. We get it. The ability to edit posts has long been a feature that is desired by Yammer users. While it’s taken some time to come to fruition, we’re happy to let everyone know that we are actively working to bring this functionality to light. In fact, it’s the project we have most heavily staffed at the moment.

It’s a project that began several months ago and we look to ship the first phase in the first part of 2017. You might ask yourself, “What’s so hard about shipping the ability to edit posts? Facebook has it. Instagram has it. C’mon Yammer!” On its surface, it’s easy to compare products and assume that because some functionality exists, it’s easy to make that happen elsewhere. In an effort to take you behind the scenes a bit, we wanted to share some of the complexities and considerations we’ve had to make in order to make this feature seamless for the user while also balancing requirements around monitoring and compliance.

Overall Yammer Architecture

I’m not going to bore you with details of our back end infrastructure, except to say that Yammer was originally built on an overall assumption that once messages are posted, they would never change. Removing this assumption means that many of our back end systems now need to be touched to accommodate message changes.

As an example, when a message changes, now we need to re-index search so that users can find the updated version of the message.

UI Complexities

Having Yammer available on multiple clients is a huge benefit to our users. As such, we need to make sure that the editing experience is ubiquitous across all platforms. Aside from the task of editing a post, we are working to make sure that it’s clearly visible to the reader that a message has been edited and that there is an ability to access the version history of a message. We are building all of this functionality for the Yammer web app, our iOS and Android apps, as well as for Yammer Embed.

Addressing the Various Messaging Scenarios

When you start to dig deeper, you begin to realize that there are various types of Yammer messages. For example, there are “regular” Yammer messages, Announcements, Praise, Polls, and private messages. Messages can also contain additional content like pictures, attachments, links, shared threads, @mentions, or hashtags. The editing functionality needs to correctly handle all of these various types of content.

We also must factor in scenarios related to Yammer notifications. When a message gets edited, how should we handle the email and push notifications? We will notify any users who have been added as a mention or CC to an edited message, to make sure they are not missing any important information.

We also are working to address the scenario where someone changes a message and causes subsequent messages to appear out of context. Perhaps someone changes pertinent information like a deadline or a location. This is where making the version history available becomes important for accountability and/or record keeping.

Factoring in Monitoring and Compliance

Many of our customers rely on the ability to store and retrieve historical versions of all messages. This might happen via the data export, keyword monitoring, or via the API. As part of the Edit Post project, we are working to make sure that admins have the ability to retrieve different versions of a message. We also are accounting for deleting versions of messages (soft vs. hard delete) based on network admin settings.

We know that editing messages in Yammer is a long awaited feature and we’re anxious to make it available. We hope that this background provides some appreciation for the work involved to bring it to life.

--

--