Overview
Send a Slack message in the relevant channel when a change request is submitted, thereby increasing timely visibility of change requests.
Original request from Nick DePatie
Push notification system for users to be notified when they need to review a CR
Stakeholders
Product Stakeholder: @jamescd18
Engineering Stakeholder: @RChandler234
Reference Users: Nick DePatie, Anushka Wani
User Story
As an Engineering Head, I want to know in a timely manner when a change request is submitted for a project on my team so that I can see it, discuss it, and review it all without substantial delay.
Success Metrics
Success will be measured based on timely change request viewership. This feature directly addresses data visibility issues, so we want to see this drive increased interactivity with change requests in FinishLine.
We can measure this by recording the timestamps for specific user behaviors before and after this feature is built, and compare the deltas between specific user behavior timestamps.
- When a change request is submitted
- When someone other than the user that submitted the change request first views the change request
- When the user that ultimately reviews the change request first views the change request
This feature will be successful if the average duration from point 1 to point 2 and point 1 to point 3 can be meaningfully reduced. These two durations being relatively short would represent positive interactivity with FinishLine change requests and the change management system.
Point 1 to Point 2 Current Average: (on based on <# of CRs> from X_DATE to Y_DATE)
Point 1 to Point 3 Current Average: (on based on <# of CRs> from X_DATE to Y_DATE)
A fun bonus user satisfaction proxy metric can be Slack message reactions. Slack message reactions are a fairly good measure of user interactivity with a message. On average, how many users are reacting to the Slack messages? On average, how many unique reactions does each message get?
Rollout Plan
- Deployment to production: immediate, ideally no database impact
- Survey reference users for qualitative feedback
Out of Scope
- Changes to anything with the change request data model
Background / Context
Currently, nothing automated happens when a change request is submitted. Whoever submits a change request must separately and manually write and send a Slack message after submitting the change request to ask people to review them.
Prerequisites
- Teams data model built with Slack channel ID and webhook URL stored
Acceptance Criteria & Mock-ups
When a change request is submitted, send a Slack message in the following format:
@<TEAM_HEAD> <CR_TYPE> Change Request #<CR_ID> was just submitted by @<SUBMITTER>
The text #<CR_ID
should be a link to the change request’s page. An example is shown below:
“@ Nick DePatie STAGE_GATE Change Request #1234 was just submitted by @ Anushka Wani”
The Slack message should be sent in the channel for the team who’s project the change request is the subject of. In other words, find the appropriate channel by tracing change request > wbs element > project > team > channel.
Implementation Notes
We previously built a Slack app for the NER PM Dashboard v0, which can be used for rough testing / exploring by contacting @jamescd18. Messages being sent in channels are done ~via web hooks, and a new web hook must be created for each channel in which the to-be-built FinishLine Slack bot user will be sending messages~.
~Creating the bot’s web hook for a given channel will provide a web hook URL in the following pattern. https://hooks.slack.com/services/<SLACK_TEAM_ID>/<WEBHOOK_PART_A>/<WEBHOOK_PART_B>
Slack team ID should ideally be stored as a tenant / organization setting, but I don’t think that should be a prerequisite for this ticket. The two parts of the web hook unfortunately don’t match the channel ID, so they could either be stored as two separate database variables or put together as one variable with the slash included.~
See https://api.slack.com/messaging/sending
back-end difficult new feature