Merge Request Page - Results
This issue follows on from #14
Researcher Todos
- Watch videos [11/11 completed]
- Share videos in a new issue
- Analyse videos
- Pay participants [11/11 completed]
- Summarise findings in UX team call
Script
Prototypes
A: https://framer.cloud/uapjR/index.html (existing experience)
B: https://framer.cloud/zSLHJ/index.html (proposed, new experience)
Screening criteria for users
GitLab users - using MRs and CI
Non GitLab users - familiar with MRs in another tool/software, such as GH or BB.
Videos
User Number | Job | GitLab User? | Prototype Order | Video |
---|---|---|---|---|
1 | Unrelated - Uses GitLab for personal projects | Yes | AB | http://bit.ly/2uyzHWb (Restrictive access, user does not wish to share the video publicly) |
2 | Software Engineer | Yes | AB | http://bit.ly/2sOOKh9 |
3 | Researcher | Yes | AB | http://bit.ly/2t6ClFu |
4 | Software Engineer | Yes | BA | http://bit.ly/2sYLeN6 |
5 | PhD student | Yes | BA | http://bit.ly/2tnetZI |
6 | Associate Director (Team Lead and participates in software development) | Yes | BA | http://bit.ly/2tUsVds |
7 | Mobile Developer | No, BitBucket & GitHub User | BA | http://bit.ly/2tVMz90 |
8 | Software Developer | No, BitBucket & GitHub User | BA | http://bit.ly/2u0ULEM |
9 | Summer Internship at Software Security Firm | No, BitBucket & GitHub User | AB | http://bit.ly/2t7hRIz |
10 | DevOps Engineer | No, BitBucket & GitHub User | AB | http://bit.ly/2uurnJG (Restrictive access, user does not wish to share the video publicly) |
11 | Senior Front End Web/Mobile Developer (Team Lead) | No, BitBucket & GitHub User | AB | http://bit.ly/2uDZ4cv |
Summary of findings
Users preferred Prototype B, however we also need to take into account what users did, not just what they say. I've added my thoughts below on the changes we're proposing to implement.
Branch name - Prototype B had a higher success rate and satisfaction score. Users were also much faster to locate the branch details on Prototype B. I recommend implementing the branch name as per Prototype B.
Description expansion - There was a split in user opinion and generally, this seemed related to the type of workflow a user had. Users who work at pace, opening and closing MRs within a few days, wanted the description to be truncated. This is because they already had a good idea about what the MR was about and didn't typically re-read the description. Users who reviewed MRs which spanned weeks or even months, wanted the full MR description visible at all times, as they would often refer to it when revisiting the MR. Manually expanding the description is obstructive to their workflow. I wonder whether the description expansion would be better as a setting that users could toggle on/off dependant on their circumstances.
MR status tab moved to first position / open as default. - I advise against moving the MR status tab to the first position / open as default. When users were asked what information they would look for first when reviewing a MR, the top answer was 'diffs' as users want to understand what changes have been made to the MR. I also compared how many users stated items found within the Merge Status tab compared to the Discussion tab, the Discussion tab was more popular since users wanted to know what comments, if any, had been made by their colleagues.
In addition to this, we also saw users who are used to GitLab's existing experience, accidentally visit the Merge Status tab when trying to view Discussions, which caused some frustration. We also witnessed users change to the Discussion tab and then fail to switch back to the Merge Status tab (subsequently failing later tasks in the testing), seemingly forgetting about the new tab's existence as their view now mimicked the existing experience.
The users who did prefer the Merge Status tab as default were typically working solo or in a very small team and therefore didn't utilise the Discussion tab, hence their preference for the Merge Status tab to be default instead.
Merge Status tab - Despite users preferring Prototype B, I think we can come up with a better solution. However, I'm really pleased that we tested the tab, as I feel it's given us a lot of great insight which we wouldn't have got from just testing the existing experience. Here are my thoughts:
-
The iconography used on the Merge Status tab didn't make sense to users. They preferred to click into the Merge Status or Pipelines tab to try and get a better understanding of what was going on. Therefore, do we need these icons?
-
No users looked for the issue number within the widget/Merge Status tab, yet users thought it was important that it was visible at all times. Should the issue number reside outside of the widget?
-
It took users twice as long to find the Merge CTA on Prototype B, both the success and satisfaction rate were slightly lower than Prototype A as well. We saw lots of users looking for the Merge CTA near the comment box within the Discussion tab. Is this a better location for it?
-
The pipeline icons are confusing both in the widget and within the Merge Status tab. We need more research in this area to understand what users want to see here.
-
Whilst users were quicker on Prototype B to spot the status of the Merge Request. They were more likely to provide a more detailed status answer (referencing unresolved discussions, pipeline status, etc) on Prototype A. Is this because the information was immediately available to them? In some cases, users had already changed tabs by this task. Therefore, they would need to make an addition click back into the Merge Status tab to provide a more comprehensive answer.
Analysis
Which prototype did users prefer?
User Number | Prototype Order | Preference |
---|---|---|
1 | AB | B |
3 | AB | B |
4 | BA | A |
5 | BA | A |
6 | BA | B |
7 | BA | NIL |
8 | BA | NIL |
9 | AB | B |
10 | AB | B |
11 | AB | B |
Completion of key tasks
The key tasks which tested content within the new Merge Status tab were:
- What is the name of the branch used for the merge request?
- What is the current state of this merge request?
- What CI stages of the merge request have been passed?
- How would you accept and merge this code?
- What issue number will be closed by accepting this merge request?
These tasks performed as follows:
Task | Success Rate | Success Rate | Satisfaction Score | Satisfaction Score | Time On Task | Time On Task |
---|---|---|---|---|---|---|
- | A | B | A | B | A | B |
Branch | 5/6 | 5/5 | 4/5 | 5/5 | 15s | 6s |
Status | 5/6 | 5/5 | 5/5 | 4/5 | 6s | 2s |
Stages | 5/6 | 2/5 | 3/5 | 4/5 | 18s | 21s |
Merging | 5/6 | 3/5 | 4/5 | 3/5 | 16s | 31s |
Issue Number | 6/6 | 5/5 | 5/5 | 5/5 | 3s | 3s |
It should be noted that no users used the widget/merge status tab to locate the related issue number, users preferred to use the merge request's description.
Usability Issues
Ordered by priority: highest to lowest.
Area Affected | Problem | Number of Affected Users | Recommendations/Further Comments |
---|---|---|---|
Merge CTA | Expected to see the Merge CTA near the comment box within the Discussion tab. | 6 | GitHub's Merge CTA is positioned above a comment box, hence user behaviour to look in a similar location. |
Tabs | Users failed to interact with the tabs during the testing. For some users, the tabs just didn't grab their attention and they scrolled past them multiple times. | 4 (Prototype A: 2/6, Prototype B: 2/5) | |
Iconography on Merge Status tab | Users did not understand what the icons represented. One user commented that it would become even more confusing if there were multiple pipelines on one build. | 3 | |
Iconography within the Pipelines tab | Similar to the above, users felt that the icons used within the Pipelines tab did not provide them with enough information. Even when hovering over the icons, it wasn't clear to them what was happening beyond that something was failing. One user described the 'post-test' icon as a "fancy embellishment". | 3 | |
Timestamps within the Discussion tab | Would prefer absolute timestamps rather than relative. | 2 | |
Repetition within the Discussions tab | Connected with the above. When multiple changes are made in a short timeframe to a diff, they are all given the same relative timestamp. Without togging the discussion, it is impossible to distinguish between them. | 3 | |
Issue Number | No users used the widget or Merge Status tab to identify the MR's related issue number, they found it in the MR description. Users commented that they would like the issue number to be visible at all times, especially if the description is truncated. | 3 | This may not be a problem to users if we chose not to implement the description expansion. |
Emojis | Did not understand the significance of the emojis. One user thought they indicated that the MR had been reviewed by 5 people (as opposed to 5 'thumbs-up'). | 3 | |
Task List | Users were unaware that they could create a task list in an issue description. | 2 | |
Discussion Tab | Users felt that the word 'Discussion' didn't accurately describe the content within the Discussions tab. One user stated that it is a "thread of activity". He also pointed out that we use the word 'Comments' within the Changes tab, subsequently he felt there was some inconsistency in how we've chosen to label similar content. A second user stated that everyone uses "comments" on the web, rather than the word "Discussion". | 2 | Users may have been influenced by how the task question was phrased i.e. "Who last commented..?" |
Merge Status tab as default | Multiple users who are used to GitLab's existing experience, accidentally visited the Merge Status tab when trying to view Discussions. | 3 | This obviously slows down users and causes some frustration. It takes time for users to adapt their mental modes. |
Iconography on Merge Status tab and within widget | One user felt we were overusing the green checkmark (passed) and red cross (fail) icons. He comments that they were originally used to specify the status of a Pipeline build, but they seem to be creeping more into the interface. For example, 'No changes to code quality' has a green tick but it isn't a job. | 1 | |
Pipelines | Within one stage, there could be more than one build. If 2/3 of the builds within a stage fail, the user clicks Retry. However, this redirects them to the 'progress page'. Subsequently the user has to go back, refresh the page, re-click the failed stage icon followed by Retry. The user doesn't want to be redirected. | 1 | I'm not sure if there's a reason why we redirect users? |
cc @dimitrieh @sarrahvesselov @pedroms @tauriedavis @hazelyang @victorwu