Activity feed

An agile approach to a smart feature

Client

Atlassian

Overview

I lead design on a new social feature in Confluence, taking a scrappy, iterative approach with my PM to get feedback early and often

My role

End-to-end designer, including research planning, feedback triaging, design execution, and leadership presentations.

Team

10

Timeline

8 months (on and off), 2021

Client

Atlassian

Overview

I lead design on a new social feature in Confluence, taking a scrappy, iterative approach with my PM to get feedback early and often

My role

End-to-end designer, including research planning, feedback triaging, design execution, and leadership presentations.

Team

10

Timeline

8 months (on and off), 2021

Problem space

Confluence is traditionally referred to as a wiki product, as it allows users to write and read documentation for their teams and projects. But inside the company, we were trying to evolve that perception. We felt it could become a more open, collaborative, and even bustling center for work.

In short, we believed Activity Feed could further this mission by helping users discover what was going on around them, helping turn Confluence from a black box into a town square.

Of course, the product already featured some discovery mechanisms, but they were clunky. The "All Updates" section showed a stream of every comment, edit, and creation on the Confluence site. But we found that as companies grew, fewer and fewer people used it.

In Dovetail I segmented user feedback by source and tagged them by problem area

To us, this signaled a missed opportunity. If users at small companies found value here, wouldn't those at larger companies too? Our hypothesis was that the current solutions weren't serving our larger customers.

With my triad (Product Manager and Engineering Lead), we devised a way of visualizing the gap the feed would fill, positioning it in the space between existing features:

With this lens, we began to see feeds as helping users discover content that was relevant to them but which they probably didn't yet know about.

Opportunity: How might we help users discover content and activity relevant to them?

Process

For this project we knew that typical interviews and user testing could only take us so far. Feeds deal in user-generated content, and the relevance of the content shown to users is very personalized – not something we could fake with sample data.

This lead us to focus on building prototypes in code and getting customer feedback as much as possible, even if those customers were internal employees. We knew their feedback would be helpful, even if not representative of all Confluence use cases.

Challenge 1: Relevance & Noise

Context

The number one area where the current "All updates" feed failed was with the sheer amount of noise it generated. From the start, we knew that improving this was essential to our success.
The team discussed at length our options to try to give users relevant feeds. Did we know what updates would be most relevant to users? Should they choose what shows up in feed? What about repetitive actions? Could those be grouped to reduce noise?

Solution

Our most important decision was to allow users to set up feed based on their preferences. This heuristic feed was not only incredibly lean and easy to build, but a logical first step towards future, smarter iterations.
Hypothesis: We believe that a feed based on user-specified spaces and people will help users both stay across important discussions and discover relevant content.​​​​​​​
When a user first enabled feed, they would be introduced to the new "following" concept via a special onboarding card:
In order to provide the user a reasonably relevant feed from the get-go, the team developed logic that would follow 3 people and 3 spaces for each user by default. Below, the dialog I designed where a user could manage their feed.
When it came to the design of the feed itself, we decided to show each page only once. As opposed to an activity log (like All Updates), this would eliminate the noise provided by showing every single action.
You can see how only the triggering action (latest action) would be shown for each page, giving the user context on why this page was being surfaced.

Challenge 2: Card design

Context

Designing the feed cards proved challenging from a few standpoints. First, there was the constant tension between information and scannability (with more info generally making it harder to scan). Then, there was the challenge of organizing that information – once it was chosen – so it was easy to understand and digest.
As we gained more understanding of what users might be looking for, we identified three key categories:
We had a lot of ideas within these categories. So, to address the surfeit of viable information, I lead my team in an exercise using a prioritization framework. This helped us make tradeoffs about what deserved prominence and what didn't. Moreover it helped us avoid the "frankenstein" page card I feared.

Solution

First, a look at the card design, which places emphasis on the title and triggering action. We had to balance the competing needs for easy scanning and up-front information
One subtle way we pushed ourselves to provide extra context was by showing a summary of recent actions on each card (below). This would make it much easier to understand what was gaining or keeping momentum, where people were working, and what was worth digging into.
When it came to the action buttons (like, comment, share), we debated quite a bit between displaying them subtly or prominently. Ultimately we chose the latter, with the commitment to gather engagement data for each and adjust the design if needed.
Another piece of supporting page context is the comment. We decided to show the comment if it was the last action taken on that page. (Comments are displayed in gray boxes to visually distinguish them from the other aspects of the cards.)
In future iterations, we're looking forward to exploring how to show more comments and how to use smarts to surface the most relevant comment up-front.

Challenge 3: Passionate internal users

Context

One unique challenge to this project was in how we'd approach our internal users, Atlassians. Atlassians are heavy users of Confluence, and have a history of creating an uproar when cherished features (which most external customers don't use) are moved or changed.
In fact, in recent memory there was a huge lash back to our Popular feed having been removed. We wouldn't be making quite so drastic changes, but we knew our path would be easier if we could win over Atlassians first.

Solution

In order to mitigate the challenge of internal users, we invited everyone at Atlassian to try out our feature. By gathering early feedback, we gained more confidence about our direction and could be sure we'd avoid any drama.

Impact

As of this writing, we are on the eve of rolling out our experiment to customers and don't have final impact data. However we've put in place mechanisms for qualitative feedback, and added data instrumentation for all the parts we want to measure.On the latter, I worked with our business analyst team, PM, and engineers to ensure we had instrumented the right parts of the UI. We all also worked together diligently to prioritize them so the most important pieces could be put into code first.
I created an index to help us identify what we would and would not instrument on the feed cards
In addition to key metrics like engagement and retention, we are looking to learn more about relevance. We will be closely monitoring the spaces and people followed in order to grow the sophistication of our relevance algorithm.

What's next?

I'm so proud to have been part of the first steps of what will hopefully be a long-living feature in our product. One thing that excites the team and I in particular is the vast potential for optimizing feed for users' benefit. What's more, the data we gather can help drive smart suggestions beyond this feature. We aren't just building a feed, but also a foundation for a better understanding of our users.

Andrew Nelson ©2023

Built with love in Framer