UX Department

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.

UX Vision

Principles

GitLab should be productive, minimal, and human. We want to design the most complete, most uncomplicated but adaptable DevOps process that allows people to focus on being the best at their job.

Users receive sufficient feedback and direction to achieve their goals.

Design holistic experiences and flows.

Minimal

Simplicity driving maximum effect.

Design is about iteration, let’s continuously iterate on our processes.

Aggressively break down issues into the smallest effort that gets results.

The design system will never be finished; it should always be evolving.

Whenever possible, start in low-fidelity (wireframes, greyscale, etc.) to make sure we get it right before we go any further.

Minimize distractions and clutter so users can focus.

Understand the users' journey and goals.

Create hierarchy and a sense of direction to guide users through the flow.

Maintain a strong information architecture.

Don't be afraid to remove things that don't contribute to the user flow.

Human

Self-aware. Emotional, yet rational. Understandable and helpful.

Be Ambitious

Think big, but break it down into small steps.

Don’t be afraid to fail. Permission to fail builds a culture of experimentation.

Quirkiness is part of our DNA; we should embrace it in the right moments and contexts.

Be Helpful

See the world through other people's eyes, and try to understand their experiences deeply and meaningfully.

Don’t overload the user.

Don’t change established user flows (if not really necessary).

Assist the community in making an impact on our product.

Steer the user in the right direction if they end up in a “bad” place (without blaming them), and recognize their efforts and accomplishments!

Workflow

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.

Holistic UX

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.

Stable Counterparts

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.

Everyone can contribute

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:

Drawings or sketches to convey your idea.

Wireframes made using a software of your choosing (Balsamiq, Sketch, etc.).

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:

We aggressively break issues down into the smallest scope possible. If an effort is too big to be completed in one milestone, then it is too big. Epics allow us to maintain a holistic view of an area, while breaking the work down into an MVC.

We keep a list of improvement issues that are actively seeking contributions from the community. They are small in scope, allowing the community to contribute designs or code to the issues. You can learn more about it in the Community Contributions section of this handbook. You can also view the list of issues that need UX work.

You may notice that our Design System has a lot of "to-do" items. Rather than try to tackle everything at once, we are gradually populating our component library and incrementally rolling those components out to production.

Design culture

The culture of the design department is characterized by the following:

We're independent, autonomous, and not hierarchical.

We have a high level of commitment and reliability to our team.

We have ownership over our work and are motivated to step up, take risks, and go beyond our roles.

We don't ask for permission, and we believe that everyone can be a part of the design process.

We are passionate, kind, honest, direct, transparent, inclusive, and unafraid to ask for help.

We work asynchronously, we value iteration, and our designs are never complete.

We are open to ideas and actively collaborate with other teams.

We are willing to use whatever tools or mediums best communicate our design solutions.

UX Resources

UX Workflow details

GitLab design project

The GitLab design project is primarily used by the Product Design team to host design files and hand them off for implementation. For details, please visit the README for the project.

GitLab Design System

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.

GitLab SVGs

UX research project

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.

UX design archive

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.

System usability score

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.