Like other teams at GitLab, we follow the GitLab Workflow and the Engineering Workflow. Reviewing those resources is a good starting point for context on the UX designer workflow below.
UX Designer onboarding
If you are just starting out here at GitLab, welcome! Make sure to review all the pages here in the UX section of the handbook, they will help you get oriented. There is also a specific page dedicated to UX Designer onboarding.
Working on issues
Scheduling of issues in a milestone
All issues in a milestone labeled Deliverable that need UX will be assigned to a UX designer by the kickoff. The UX Manager is responsible for scheduling.
Issues labeled Stretch may or may not be assigned to a UX designer by the kickoff.
Priority for UX issues
UX works on issues in the following order:
Has the current release milestone and is labeled Deliverable
Has the current release milestone and is labeled Stretch
Product Managers(PM) and UX Designers are very closely related although they might seem different. Both PM and UX Designers work within the problem–solution spectrum in order to better understand the problem that needs to be solved and to determine the most viable solution that addresses that problem. Over-communicate with PMs, it's the best way to understand the problem and arrive at a solution.
Loop in other members of engineering. Encourage them to contribute to finding the solution. They will have important insight into possible technical limitations.
Before coming up with any solution, discuss the scope with the PM, ask questions, and define what the problem really is (often it's not what people think it is).
Investigate whether there is existing UX Research or data that could help inform your decision and measure the results. If there isn't, consider looping in UX Researchers to conduct or assist you in conducting research for the problem.
UX issues have a tendency to expand in scope. Aggressively split off new issues, ideas, and concepts into their own issues. Mark the new issues as related to the original issue. Large issues become really challenging to drive decisions in and make progress on. If you’re ever unsure how to split apart large issues, work with the UX Manager.
Developers should be able to ship a product within one life cycle. If a feature is too large to ship within one release, work together to determine the best way of splitting the feature into smaller segments.
Bring developers into the conversation early. Ask for feedback on how to split up features while still maintaining the integrity of the UX.
Encourage developers to scope down features into multiple merge requests for an easier, more efficient review process. When deciding whether to merge into master or a feature branch, be mindful of maintaining the integrity of the UX.
When breaking up features into smaller parts, make sure that the end design goal is known. Giving everyone the full picture will help developers write code aimed at achieving that goal in the future.
Keep the issue description updated with the agreed scope, even if doesn’t impact your work. This is everyone’s responsibility. The issue description must be the Single Source Of Truth (SSOT), not the discussion or individual comments.
Propose a solution:
Add comments with your proposals. Propose one solution, not multiple alternative solutions for others to pick, as this undermines your position as a UX expert and leads to a design by committee situation. If you have a good reason to propose multiple alternative solutions make sure to explain why.
Wireframing, mockups, and prototyping all have their own place. You should utilize the best tool for communicating a problem/design/solution.
Proposals don't need to have images. Sometimes words can paint a surprisingly good picture of how an experience should feel, look, and behave.
Frame discussion around the problem being solved, not the designs specifically.
Anticipate questions that others might have and try to answer them in your proposal comments. You don’t have to explain everything, but try to communicate a bit of your rationale every time you propose something. This is particularly important when proposing changes or challenging the status quo. This reduces the feedback loop and time spent on unnecessary discussions while contributing to the credibility of the UX team, who deal with a lot of seemingly subjective issues.
Keep the SSOT updated with what’s already agreed upon so that everyone can know where to look. This includes images or links to your design work.
If you’re working with design files, follow the instructions in the GitLab Design project and regularly commit them.
If you are proposing a solution that will introduce a new UX paradigm, or change an existing one, please consider the following:
Will this pattern be inconsistent with other areas of the application?
Will other areas of the application need to be updated to match?
Does this new pattern significantly improve the user experience?
If you decide that it is worth changing/updating the pattern, there are additional steps that must be followed. See the Maintain section below for those steps.
Once your work is complete, make sure that the issue description, the SSOT, is updated. This is where you should direct people when they have questions about what should be done and how.
As applicable, commit all design assets and files according to the instructions in the GitLab Design project.
Remain assigned. You will be the 'go-to' person for UX questions and reviews on this issue.
Keep the SSOT in the description updated until the issue is closed. This applies to both text and mockups. Previous content (by a PM, for example) should be removed or archived into a separate section in the description. If the developer working on the issue ever has any questions on what they should implement, they can ask the designer to update the issue description with the design.
As applicable, create issue(s) to update areas of the application that are affected by this pattern.
Add an agenda item to the next UX weekly call to inform everyone of those changes.
If the change/addition is a significant one, consider adding it to the Team call to inform the company of the changes.
As design can be subjective, discussion can heat up. Always try to be direct, but kind. Try to give your best reasoning for your choices and evaluate everyone's opinions. Come up with a solution instead of discussing endlessly. If you think additional perspective is needed, mention a fellow UX Designer in the issue.