Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature NDDB] - Notification of Diverging From Default Branch #4646

Closed
9 tasks done
nerdneha opened this issue May 9, 2018 · 9 comments
Closed
9 tasks done

[Feature NDDB] - Notification of Diverging From Default Branch #4646

nerdneha opened this issue May 9, 2018 · 9 comments
Assignees
Labels
meta Issues used to co-ordinate tasks, or discuss a feature before the required work is captured
Milestone

Comments

@nerdneha
Copy link
Contributor

nerdneha commented May 9, 2018

Goal

As a user, when I am working on my own branch, I want to know when a relevant branch (ex: master) has new commits so that I can merge those changes in as soon as possible to avoid conflicts over time and so that I don't have to break my workflow to check if there are updates.

Background
Built upon the Compare Branch feature that's about to land in 1.2.

Solution

This issue tracks all the work needed to be done around this feature. See the task list for a breakdown of what needs to be done.

The following is a high-level overview of the solution. Implementation-specific details will be placed in the appropriate sub-issue and/or pull request.

History Tab

  • Desktop will try to infer what base branch should be used to compare with the current branch, so the user won't have to perform any setup to use the feature
  • If the number of commits behind is different from the last time Desktop checked, a blue notification dot will be placed on the History tab.
  • To provide additional context for the notification, a banner will be rendered between the History tab and the compare branch selector; The banner will include the info on the number of commits the current branch is behind and two call-to-action buttons: Merge and Compare
  • If the Merge button is clicked, the Merge dialog will appear with the base branch preselected
  • If the Compare button is clicked, users will be taken to the compare view
  • The notification dot will be cleared if the user clicks on the History tab; the banner will be persisted until dismissed through one of the actions or being dismissed

Changes Tab

  • To avoid confusion, the notification dot will be replaced with a badge that contains the number of changes to be committed (pulled from scope, see Related Issues section below)

Alternatives Considered

  • @donokuda and I spoke about potentially adding a bit of context to the notification dot such as the number of commits the current branch is behind the base branch. We agreed we can iterate to that point if we decide to move in that direction.

Risks

Risk Mitigation
We scrap the current design for the Compare Branch feature Focus on making implementation UI/UX agnostic

Mockups

image

A breakdown of the UI for some of the newer elements:

image

Testing

User Testing Strategy

We need to actors to test this feature:

  • Desktop team member
  • Mona (the user)

Setup

  1. Create repository, test, on GitHub
  2. Clone test using Desktop
  3. Push a file, file.md to master
  4. Ask Mona to clone test and create a new branch, dev, using master as the base branch

Testing

The testing of this feature requires us to get the timing right as we are trying to simulate multiple actors working on a branch concurrently.

Since there are 2 call-to-action buttons on the notification banner, I’ve split the testing strategy. The steps that are common to each flow will be listed under the section, Shared flow. Steps in bold only need to be performed once.

Shared flow

  1. Have Mona make some changes to file.md
  2. Push another commit to master(performed in the background)
  3. We expect Mona to see the blue dot on the History tab after auto-fetching completes (have Mona perform a manual fetch if necessary)
  4. Wait to see if Mona notices the notification
  5. Have Mona click on the notification
  6. We expect Mona to notice the notification is no longer visible
  7. We expect Mona to notice a banner with some details about why she received a notification
  8. Ask Mona what she thinks the banner means (we're looking to see if the banner provides enough context)
  9. Ask Mona what she expects dismissing the banner to do
  10. Have Mona to dismiss the notification
  11. We expect Mona to use the x located in the top-right corner of the banner
  12. Have Mona make some changes to file.md
  13. Push another commit to master (performed in the background)
  14. Have Mona click on the notification

Compare flow

  1. Ask Mona what she expects clicking the Compare button to do
  2. Have Mona to click the Compare button
  3. We expect Mona to see that the notification banner has disappeared
  4. We expect Mona to recognize that the app is in the branch comparison view with the base branch preselected as the compare branch;
  5. We expect Mona to see 2 commits in the Behind tab
  6. Ask Mona what she expects clicking the Merge button will do
  7. Have Mona click the Merge button in the compare branch view (RBB)
  8. We expect Mona to notice the message saying she’s up-to-date with the base branch (RBB)

Merge flow

  1. Ask Mona what she expects clicking the Merge button to do
  2. Have Mona click the Merge button inside the banner
  3. We expect Mona to notice the Merge dialog appears with the base branch preselected
  4. Have Mona perform the merge

Tasks

Related Issues

@nerdneha nerdneha added this to the 1.3.0+ milestone May 9, 2018
@iAmWillShepherd iAmWillShepherd self-assigned this May 16, 2018
@donokuda donokuda self-assigned this May 16, 2018
@iAmWillShepherd
Copy link
Contributor

I'm thinking we could capture whether a merge is executed after the notification dot is placed, but I'm unsure how valuable that would be without also capturing the amount of time that passes from the notification appearing and the merge action taking place.

@desktop/analytics Do you think capturing this metric is valuable? Are there any other metrics we want out of this?

@iAmWillShepherd iAmWillShepherd added meta Issues used to co-ordinate tasks, or discuss a feature before the required work is captured and removed enhancement labels May 20, 2018
@telliott27
Copy link

@iAmWillShepherd sorry I'm late on responding here. I think counting the number of merges that happen within X minutes (say 15? 30?) of the notification dot being placed would be useful. Unfortunately, since we are collecting aggregate stats for an entire day, calculating the amount of time that passes between the notification dot and a merge doesn't really fit into that schema.

@iAmWillShepherd iAmWillShepherd changed the title Notify when there are Compared Branch updates Notification of Diverging From Default Branch (NDDB) May 23, 2018
@nerdneha nerdneha added this to To do in Compare Branch (RBB) via automation May 23, 2018
@nerdneha nerdneha removed this from To do in Compare Branch (RBB) May 23, 2018
@nerdneha
Copy link
Contributor Author

what do we think about making the user testing strategy collapsible so that the info exists but the issue doesn't feel too large? i saw @meaghanlewis do this and i kind of love it...and will use this forever (i saw her do it here: #4734)

@iAmWillShepherd iAmWillShepherd changed the title Notification of Diverging From Default Branch (NDDB) [Feature] - Notification of Diverging From Default Branch (NDDB) Jun 1, 2018
@iAmWillShepherd iAmWillShepherd changed the title [Feature] - Notification of Diverging From Default Branch (NDDB) [Feature NDDB] - Notification of Diverging From Default Branch Jun 1, 2018
@iAmWillShepherd
Copy link
Contributor

iAmWillShepherd commented Jun 5, 2018

@donokuda and I did some user interviews last week and I wanted to document some of my observations as well as offer potential solutions:

  1. The notification dot is not very noticeable
    • Only one of our users noticed it, but they were unsure if it was there to begin with. Another user clicked the tab that contained the notification, but admitted to not realizing it was there because of committing a change. I think scrapping a dot and just changing the color of the tab would make it more obvious that something has changed.
  2. The banner is good, but there is room for improvement
    • Everyone was able to intuit that the banner implied there was additional work to be done.
    • The proximity of the banner to the Branch Compare Selector and History View did cause a bit of confusion. One person said that it wasn't super clear that the number of commits mentioned in the banner were different from the commits shown in the History View. I think changing the background color of the banner and only showing either the banner or the Compare Branch Selector would help differentiate it from the Compare Sidebar.
    • One of our interviewees had the awesome suggestion that we show the branch and the remote.
  3. General observations not 100% related to this feature
    • One person expected the Compare button to show a diff of the changes

My suggestions are in bold

@donokuda
Copy link
Contributor

donokuda commented Jun 6, 2018

Based on observations from a couple of usability tests and feedback from @iAmWillShepherd and @niik, here's where I landed with the notification banner (I'll be using @iAmWillShepherd's feedback as a jumping point for discussion):

screen shot 2018-06-06 at 11 13 32 am

  • The proximity of the banner to the Branch Compare Selector and History View did cause a bit of confusion. One person said that it wasn't super clear that the number of commits mentioned in the banner were different from the commits shown in the History View. I think changing the background color of the banner and only showing either the banner or the Compare Branch Selector would help differentiate it from the Compare Sidebar.

In order to prevent people from associating the notification banner and the list of commits below, I updated the background color as well as added some padding/margin to visually differentiate the two elements further.

I added an octicon (via @niik's suggestion) to help communicate that the banner is more informational.

  • One of our interviewees had the awesome suggestion that we show the branch and the remote.

I'm onboard with this. master and origin/master generally mean the same thing in Desktop; if we update the branch text to origin/master, then we should make sure that is the actual branch being compared against.

  • One person expected the Compare button to show a diff of the changes

I updated the "Compare" button to say "View commits" to better describe the action that's supposed to happen after someone clicks that button.

Only one of our users noticed it, but they were unsure if it was there to begin with. Another user clicked the tab that contained the notification, but admitted to not realizing it was there because of committing a change. I think scrapping a dot and just changing the color of the tab would make it more obvious that something has changed.

I'm a little hesitant in trying to make this feature more noticeable, since it might take attention away from more important features and workflows. If we determine that people cannot find the feature, then we should continue with usability tests to see where they naturally search around in the app.

@nerdneha
Copy link
Contributor Author

nerdneha commented Jun 7, 2018

@donokuda these look like great edits! thanks so much for taking some time to get some initial feelers @iAmWillShepherd and @donokuda 🌟!!

@shiftkey
Copy link
Member

@nerdneha @iAmWillShepherd anything left on this tracking issue, or can we close it out?

@iAmWillShepherd
Copy link
Contributor

iAmWillShepherd commented Jul 19, 2018

...anything left on this tracking issue...

@shiftkey yes, the PRs related to metrics have not been merged yet so there is still one open issue. We can close this once we ship.

@shiftkey
Copy link
Member

I'm 👎 on having lots of duplicated noise about the leftover work for 1.3.0, so I've moved the pending site update work to my release checklist https://github.com/github/releases/issues/191#issuecomment-407440469

@lock lock bot locked as resolved and limited conversation to collaborators Sep 23, 2018
@desktop desktop unlocked this conversation Sep 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta Issues used to co-ordinate tasks, or discuss a feature before the required work is captured
Projects
No open projects
Development

No branches or pull requests

5 participants