Dashboard mockup

Decision Making in an Asynchronous Company (Melissa Ushakov, Product at GitLab)

Melissa Ushakov, Group PM at GitLab, talks about product, decision making, and the async culture at GitLab

Blog Post
April 9, 2024

Efficient decision-making and clear communication are pivotal in any organization, and GitLab exemplifies this through their well-structured processes. GitLab's approach to organization and decision-making is guided by the principles documented in their handbook, which is openly accessible and meticulously maintained. This transparency empowers employees by providing them with a well-defined framework to follow, ensuring decisions are made effectively and efficiently.

One notable aspect of GitLab's culture is its emphasis on asynchronous communication. This approach allows team members from various time zones to collaborate seamlessly, minimizing the need for synchronous meetings. By fostering an environment where decision-making authority is decentralized, GitLab ensures that individuals closest to the issue at hand are empowered to make informed decisions. This structure not only enhances productivity but also supports an inclusive and dynamic working environment.

Key Concepts

  • GitLab prioritizes transparency and well-defined structures.
  • Asynchronous communication is key to their global collaboration.
  • Decentralized decision-making empowers team members.

Overview of GitLab's Product Organization

Melissa highlights several differences between her previous product management roles and her current position at GitLab. One key distinction is the high level of decision-making autonomy granted to product managers. At GitLab, decisions are made as close to the source of the action as possible. This allows product managers to take ownership of their decisions and feel empowered to make changes without extensive approvals.

GitLab’s product organization is structured to align closely with customer segments and workflows. The company utilizes a framework consisting of sections, stages, and groups that guide the organizational hierarchy from broad to specific customer use cases. For instance, the 'Dev' section focuses on development, while other sections are dedicated to security, operations, and more. This layered approach ensures that each product area is finely tuned to meet specific user needs and expectations.

In aligning their teams to customer segments, GitLab prioritizes functional specialization and detailed role responsibilities. Each team, composed of various roles such as product managers, focuses on specific workflows relevant to the customer segment they support. The ‘Plan’ stage, for example, includes agile planning, value stream management, and Wiki functionalities. Teams are empowered to make decisions autonomously, fostering an environment where individuals can swiftly address customer needs and optimize the product experience.

Decision-Making Framework at GitLab

Empowering Product Managers

GitLab is noted for its approach where decision-making is distributed widely throughout the team. This is particularly evident with Product Managers (PMs) who are encouraged to make decisions concerning their products independently. By structuring the organization to align tightly with customer workflows, GitLab ensures that PMs have the necessary autonomy to make effective decisions promptly.

This empowerment is facilitated by a detailed handbook. The handbook is not just a collection of guidelines, but an actively maintained resource that helps PMs navigate their responsibilities with clarity. Real-time updates and contributions from team members ensure that the handbook remains an accurate and helpful tool for decision-making.

Directly Responsible Individuals (DRIs)

At the core of GitLab's decision-making culture is the concept of Directly Responsible Individuals (DRIs). This principle assigns clear ownership of tasks and decisions to specific individuals, ensuring accountability and clarity. DRIs are empowered to make decisions as close to the action as possible, reducing bottlenecks and fostering a more agile working environment.

By having DRIs, GitLab avoids the pitfalls of centralized decision-making which can slow down processes. Instead, responsibility and authority are pushed down the organizational structure, enabling quicker and more informed decisions. This model is supported by the handbook, making it easy for anyone to understand their roles and responsibilities within the framework.

Implementing the GitLab Handbook

Keeping Information Updated and Useful

The GitLab handbook serves as a crucial resource for maintaining organizational knowledge, requiring frequent updates to ensure its relevance. Team members are encouraged to modify the handbook themselves when an entry is found to be outdated, ensuring that the documentation remains accurate. This method allows for a dynamic, living document that evolves alongside company practices.

Communication and Decision-Making Resource

The handbook at GitLab aids significantly in communication and decision-making processes. Links to specific handbook sections are often shared to answer questions or provide context, supporting the decentralized decision-making model. This enables team members to make informed choices based on the most current documented guidelines, enhancing efficiency in an asynchronous work environment.

Aligning Documentation with Practical Methods

It’s essential that the handbook truly reflects the ongoing practices within GitLab. Team members regularly assess and update the handbook to remove obsolete information and incorporate new practices. This continual revision ensures that the documentation mirrors real-world practices, thereby maintaining its integrity and usefulness as a reference.

Ongoing Handbook Enhancements

Updating the handbook is an iterative process at GitLab. Whenever gaps or inaccuracies are identified, team members create merge requests to amend the handbook. This cycle of constant refinement aligns the handbook closely with operational realities, ensuring that it serves as an accurate guide for decision-making and daily activities.

Asynchronous Work Culture at GitLab

GitLab operates with a keen focus on asynchronous work, ensuring that team members from different time zones can collaborate efficiently without needing to sync up in real-time. The handbook is central to this, providing detailed guidelines that empower employees to make decisions independently. This autonomy helps individuals resolve many issues on their own using documented procedures, which is essential in maintaining productivity across globally distributed teams.

Criteria for Choosing Synchronous or Asynchronous Approaches

At GitLab, there's a clear distinction between when to opt for synchronous and asynchronous work. Generally, they favor asynchronous methods for most discussions, preferring to hash things out in issue threads. Synchronous methods come into play when there's significant disagreement or misalignment that can't be resolved in written form. When discussions extend beyond six to eight comments without resolution, a meeting is usually arranged. Even then, the synchronous meetings are meticulously planned with agendas and pre-written thoughts to maximize efficiency.

Asynchronous Decision-Making Process

Decentralized decision-making is fundamental at GitLab, directly supporting their asynchronous work environment. This approach prevents bottlenecks that could occur if globally distributed team members had to synchronize frequently for decision-making. The concept of a Directly Responsible Individual (DRI) underscores this practice, where specific people are empowered to make decisions related to their work, ensuring agility and maintaining progress without the need for constant synchronous interaction. This method helps GitLab maintain its operational momentum across different time zones.

Implementation of Decentralized and Asynchronous Choices

In GitLab, the approach to meetings aligns with an asynchronous-first philosophy. Discussions that would typically occur in meetings are instead initiated as issues where the team can discuss the direction to take.

When disagreements arise or alignment proves challenging, synchronous discussions are employed. A conversation thread with more than six to eight comments usually triggers a synchronous meeting to facilitate in-person discussions.

Meetings at GitLab are structured with agendas prepared in advance. Topics and thoughts are documented beforehand to maximize the effectiveness of face-to-face interactions. Post-meeting, summaries and records of discussions are maintained to ensure transparency and continuous adherence to the async mindset.

Decentralized decision-making is integral to this asynchronous framework. It mitigates potential slowdowns by empowering individuals to make decisions without constant need for synchronous interactions. This approach ensures expedient and effective decision-making across globally distributed teams.

Utilizing GitLab Pages for the Handbook

GitLab leverages its own GitLab Pages to host their comprehensive handbook, ensuring it's easily accessible and up-to-date. This tool plays a critical role in supporting the company’s extensive documentation practices, vital for their asynchronous workflow. By using GitLab Pages, team members can conveniently reference and update organizational guidelines, fostering a consistent and transparent work environment. This not only aids in decision-making but also helps maintain alignment across different time zones and team locations.

What's your dream strategy view?