We make a software product that is easy to use and enables everyone to contribute. We are building GitLab for a diverse, global community. To achieve this vision we need to understand the communities' behaviors, needs, and motivations.
The UX Department works cross-functionally internally and with community contributors to meet these goals. We believe in iterative improvements and value aggressive change. We may get some things wrong but will quickly strive to make them right. We have a long way to go, which is why we are taking significant steps.
Yielding favorable or useful results; constructive: a productive suggestion.
User Experience is part of everything we do.
Everyone at the company understands the role of UX and everyone contributes to the user experience.
Our solutions make users feel confident and efficient.
Simplicity driving maximum effect.
Design is about iteration, let’s continuously iterate on our processes.
Minimize distractions and clutter so users can focus.
Self-aware. Emotional, yet rational. Understandable and helpful.
The UX Department works alongside the community, Product Managers (PMs), Frontend engineers (FE), and Backend engineers (BE). PMs are responsible for kicking-off initiatives, taking action, and setting the direction of the product. PMs don't own the product, they gather feedback and give GitLabbers and the community the space to suggest and create.
UX should assist in driving the product vision early in the process. We inform the vision by conducting research, as well as facilitating discussion with community members, customers, PM, FE, and BE. We are elevated, above the transactional workflow, and generative, generating work rather than executing tasks.
Though we structure our work around individual stages of the product (Plan, Manage, Create, etc.) we should not separate look, feel and process from what the user is trying to accomplish. We must maintain a focus on what the user needs to get done and how to deliver that in the most effective manner possible. This includes how users flow from one stage of the product to another. Maintaining a holistic overview of the path a user may take allows us to see the possible twists and turns along the way. With this knowledge, we can optimize the user experience.
It is the responsibiliy of each Product Designer to understand how users may flow in and out of their area of focus.
Experience Baselines and Recommendations
Designers use Experience Baselines to benchmark common user tasks. In many cases, tasks involve multiple stages of the product, giving designers visibility into how users traverse across stages. Designers follow with Experience Recommendations for how to improve the experience in upcoming milestones.
Every Product Designer and UX Researcher is aligned with a PM. The UXer is responsible for the same features their PM oversees. UXers work alongside PMs and engineering at each stage of the process—planning, discovery, implementation, and further iteration. The area a UXer is responsible for is part of their title, e.g. "Product Designer, Plan." You can see which area of the product each Product Designer is aligned with in the team org chart.
UXers may also serve as a "backup" designer for other areas of the product. This area will be listed on the team page under their title as an expertise, e.g. "Plan expert." UX backups should be just that—backups. They are there to conduct UX reviews on MRs when the Product Designer for that area is out. The UX lead for a given area should coordinate with the PM and their backup during scheduling for any work that is critical. Critical UX work is defined as any work that addresses an outage, a broken feature with no workaround, or the current workaround is unacceptable.
The UX department is not solely responsible for the user experience at GitLab. Everyone is encouraged to contribute their thoughts and ideas on how we can make GitLab better. Open an issue and tell us about your idea. You can use just words or include images. These images can take a variety of forms; here are just a few examples:
If you are creating high-fidelity designs, please make sure to let others know that this is a proposal and needs UX review. You can ping anyone on the UX team for assistance.
Here at GitLab, iteration means making the smallest thing possible and getting it out as quickly as possible. Working like this allows us to reduce cycle time and get feedback from users faster, so we can continue to improve quickly and efficiently.
Iteration isn't just one of GitLab’s six founding values, C.R.E.D.I.T, it is one of the foundational concepts in design thinking and user experience. Planning too far ahead without real-world feedback can cause you to build something that doesn't meet user needs.
Iteration is especially vital in an open-source community. Keeping changes small and iterative makes it easy for anyone to contribute. Here are some examples of how we are embracing the power of iteration and using it to build GitLab:
The culture of the design department is characterized by the following:
Read about UX Department workflows.
Read about Product Designer workflows
Read about UX Researcher workflows
The GitLab Design System was developed to increase iteration speed and bring consistency to the UI through the creation of reusable and robust components. This system helps keep the application DRY and allows designers to focus their efforts on solving user needs, rather than recreating elements and reinventing solutions. It also empowers Product, Engineering, and the Community to use these defined patterns when proposing solutions. The Design System can be viewed at design.gitlab.com. It is currently a work in progress.
The project and repository for design.gitlab.com can be found here.
Our GitLab SVGs repository manages all SVG assets by creating an SVG sprite out of icons and optimizing SVG-based illustrations.
All of our SVGs can be previewed using this URL
The UX research project contains all research undertaken by GitLab's UX researchers. This project is used for the organization and tracking of UX research issues only.
The UX design archive is a collection of key design issues broken down by specific areas of GitLab. It is not a comprehensive list. It is intended to shed insight into key UX design decisions.
Once each quarter, we run a System Usability Scale (SUS) survey to measure user perception of the GitLab product. We send the survey to members of the wider GitLab community, with the goal of asking for a response from any individual no more than twice per year.
It is encouraged to share UX designs and insight on social media platforms such as Twitter and Dribbble.
GitLab has a Dribbble team account where you can add work in progress, coming soon, and recently released works.