Project Proposal

Observing Users

Observed someone in class

A student was observed while in class. This was a rather small lecture with students fervently taking notes attempting not to miss anything said by the professor. Most of the students had something to take notes on, whether it be a notebook, tablet, or laptop. Several times during the lecture the student would check slack which is what warranted further observation. It was noticed that the student would be taking notes and would then receive a notification from slack, would open the dock on his macbook and then look at and click on the slack app. He would sometimes only look at the group the notification was received in and other times would look specifically at the message to respond or just acknowledge. Once this was done he would return back to taking notes.

Observed someone working in Trottier

A student was observed while working in Trottier. The student was studying or doing homework, looking at their computer and had a notebook open, taking notes. It seemed like they were struggling with an assignment, frustratingly scratching there head. Once in awhile they would return to the computer, search on google, or message friends on facebook/slack/imessage, eagerly waiting for some help. Over the course of this they would continually receive notifications from all different mediums, checking every time. Frustration seeming to build as nothing seemed to help, or others seemed to not respond. Eventually the student gave up, packed up his bag and left.

Observed someone in a group project meeting

An individual was observed working on a group project. Before everyone arrived that individual was messaging people on slack, browsing the web, and editing documents. Once it seemed like all the members arrived, the user minimized the tabs and they began the meeting. Early on the user would keep receiving notifications and eventually silenced them to focus on the meeting. The meeting continued for a while, with no new developments until the very end. Once it seemed the meeting had wrapped up and people were leaving, the user decided to check slack. It seemed he had missed an important message and the group then sat back down and spent another 15 minutes resolving an issue.

Identifying the Problem

Slack is a messenger application. Users from the same group can message about specified topics, called channels or users can direct message another member of their group. The groups are separated into two different sections in the GUI of the application.

When the Slack window is minimized, if you receive a notification, a red dot appears on the corner of the icon (on mac in the dock). Unfortunately, the icon does not show from which group the notification originates. A common issue encountered by most users is how to distinguish between all the different channels or people that you are communicating with. As shown by the observed users, there are plenty of situations in which you would only like to be notified by certain people, or certain groups/channels. This can be extended to just having different notifications, so that you can filter your notifications and only check/open slack when a notification arises from someone you want to respond to.

The current system only lets you adjust the settings to play an unique sound indicating the group or allow a preview of the message. We believe a better system can be implemented to improve the notification system. Users should be able to customize notifications to their liking to improve the overall experience. This could involve changing the color of the notification dot based on a multitude of parameters, different sounds for groups or people, only allowing notifications at certain dates and time, and much more. With all of this functionality you would be able to tell whether or not you need to check your messages, leading to less distractions, a better interface, and higher productivity.

Developing Personas

From our observations, we created three types of personas, the Prioritizer, the Distracted and the Logged Off. The following short biographies encapsulate these three personas.

Kyle

Kyle Rubenok

Undergraduate Computer Science Student at McGill, President of CSUS (Computer Science Undergraduate Society)

Kyle has been using slack for the past 2 years. He's an active member of five channels. He gets upwards of 20 notifications a day. Sometimes he's in class when he receives these notifications other times he's in meetings. He'll always check them, even if the message isn't urgent.

For one of his groups, CSUS, there's a big event coming, an interfaculty social. He'll need to prioritize messages about this event over the other messages he receives.

He is a member of the Prioritizer segment of our audience.

Lucia

Lucia Berger

PhD candidate, working student at Siemens

Active on 4 slack groups, but spends most of her time on 2. She often switches between her work group and her lab group. When she is at work, she receives notifications from her lab. She finds herself looking through these channels when instead she should be working. She doesn't want to completely disable notifications from her lab, in case her supervisor messages her and she has to respond in a timely manner.

She's a member of the Distracted segment of our audience.

Abhishek

Abhishek Gupta

Employee at Ericcson

Abhishek is a member of 3 Slack groups. He uses Slack constantly at work for his main mode of communication. He receives notifications pertaining to software development and chat with his co-workers. When he's at home, he likes to mute his Ericcson Slack channel, but sometimes he misses important information.

Abhishek is a member of the Logged Off segment of our audience.

Illustrating a Use Case Scenario

For our use case scenario we will be addressing someone who is in class. This person is trying to pay attention in class and take notes, however keeps getting interrupted during class to check messages on slack, to guarantee he doesn't miss something important. He knows something must change so before his next class he prepares himself using our product. He goes into the notification manager and decides to remove all sound notifications from his groups. He then implements changes in the notification color from the normal red dot to a blue dot for a specific work channel he must check, all the other messages from friends can wait till after class. In addition he makes the messages from his boss pop-up so that he will deal with it immediately. During his next class, he now distinguishes between who is messaging him based solely on the notification style, and doesn't waste time checking every time he gets a notification fearing he might miss something important.

Finding related products

Related products Comparison of the notification settings
Slack Can choose keywords you want to be notified about with the red dot.
HipChat : one-to-one messaging but also building rooms around teams. Different notification options for different rooms. Possibility to keep multiple rooms open while turning the volume up for mission-critical rooms and down for other rooms.
Can filter which channel or which person you want to receive messages from but only for in-app notifications. No change in the push notifications. No settings to filter the push notification of important messages.
While offline, HipChat will let you know what you've missed with an email, SMS, or push notification.
Basecamp : communication tool that centralized all the information for one project. Several groups with the same people on it but for different topics. Possibility to choose which projects to follow and be notified about. However, on the app, the notification system will leave you a small dot or the number of unread items but there will not be any differences for important chats.
Basecamp can send you notifications by emails or by pop-ups to tell you that something happened.
Twist : using channels to do different discussions with the same group of people focused on different topics. Notifications when messages sent on threads including you, when there are comments including you and when you are in a conversation.
Push notifications for new messages on conversations, when added to workspaces and removed from workspaces but nothing done for knowing the importance of a message.
Microsoft Teams : organized in team and can have several channels per teams. Icon flashing when you have a notification, badge increasing. No notification for someone posting something on a channel without replying or mentioning you. No notion of importance in notifications.
Discord : composed on text channels and voice channels. It is optimized for gamers playing together but can also be used when people are working on the same Google doc for example. The voice channels are always-on phone calls where you can talk to anyone in your team whenever you want. Either switch off all notifications or choose per channel if you want all the notifications, only the one mentioning you or nothing. When active on your desktop, there are no push notifications.

What is highlighted by all these related products that all support several channels on a group discussion is that the user cannot recieve notifications on their desktop that indicate the importance of the notification's content. A user defined personalized notification system offers an improvement to the user experience in Slack's as well as other messenger applications.

Comparing products

Of the systems mentioned, none provide an interface for users to customize their notifications. As discussed in personas, the notification system is useful for optimizing time and prioritizing messages based on subject or sender. The different products seen in the Finding related product part do not solve this problem. The products do not allow the user to differentiate notification settings for important messages. While some attempt to prioritize message notifications while the app is open, none provide customization based on importance when the app is minimized.

For HipChat, the user can change the volume of some channels, but the noise notification can create a disturbance especially during group meetings. Moreover, the user only receives notifications when the app is opened.

Basecamp and HipChat can send notifications while offline but both do not allow for differentiation for which messages the user receives.

The icon flashing on Microsoft Team seems like a good idea but the app does not filter important messages so it does not answer the problem.

Our goal is to notify Slack users when they receive important messages on their desktop. The importance of the message is based on the sender and the message’s content which is predefined by the recipient. To the best of our knowledge, after a few hours of searching, this has never been done before.

We propose to implement an improved Slack notification system defined by the user who is at the receiving end of the notification. During our iterative and user centered design process, we will isolate notification schemes (colour, sound, etc.) that aim to prioritize notifications within Slack.

Designing at a High Level

Diagram

Our software sits between the Slack app to create a tailored Desktop Notification based on the user's preferences.

We will build off of current existing software to complete this project. These two repositories pose potential code of which to work off.

https://github.com/jiahaog/nativefier
This project takes web pages and changes them to look and feel like a real desktop notification.

https://github.com/mikaelbr/node-notifier
This project helps developers customize notifications.

This is Slack's Notification Logic, we will enable the user to costumize this logic, and thus their notifications.

Slack Notification Logic

Justifying Feasibility

The software we will be working on is Slack, a messaging app that is widely used. We have all gained familiarity with this product, and as a team, we are using it for our internal communications.

Each of the team members has programming experience and are keen to research and understand the problems. That being said, due to the design nature of this course, we will be focusing on user centered design of the experience using the notification system, not just the technical aspects of the system. There are many github projects that work towards enhancing features of Slack, we plan to reference these projects during development.

We estimate that each team member will spend 25 hours on the implementation portion of the project. We plan to spend 10 hours on agreeing on a few projects that we will be using as the basis for our development. We will spend the next 5 hours creating functional, yet malleable code. The final 10 hours will be spent testing and improvement. The following github repositories are promising starting points.

https://github.com/jiahaog/nativefier
This project takes web pages and changes them to look and feel like a real desktop notification.

https://github.com/mikaelbr/node-notifier
This project helps developers customize notifications.

We will prioritize internal communication to ensure that the project is executed. If one member is confused, the others will help. By building off of pre-existing projects and capitalizing on the group's collective knowledge, we will work to improve Slack's notification system.