Gitlab is one of the leading platform allowing companies to speed up their software delivery — also known for its remote-first organizational model and the transparency of its internal mechanisms.
The organization has grown since 2011 through various fundraising campaigns to provide a self-service development experience powered by open-source and the community.
This article focuses on the Quality Engineering organizational model under the prism of the MAMOS framework: Methods, Architecture, Management, Organization & Skills — focusing on these last 3 elements.
Quality is an integral part of the company
GitLab must be able to iterate on its value proposition by integrating quality as early as possible, and micromanagement is not an option for a remote-first company that want to scale.
The best way to minimize the effort for coordinating actors is through the alignment of a shared vision and principles that can guide desired behaviors in many situations.
That’s where GitLab relies on a common mission to unite the actors around a common objective beyond their local affiliation, and use values and principles to define the valued interactions in their ecosystem.
1. Vision, mission and values
The common mission of GitLab is to allow its customers to focus on their business by leveraging a ready-to-use development platform to deploy Quality at Speed software in self-service with confidence.
The mission of the Quality Department is then declined to achieve that top mission as “ensuring that everyone is aware of what the Quality of the product is” to “ship with quality & velocity”.
The values complement the expected behaviors such as transversal collaboration, results-orientation, efficiency, or transparency fostering a culture where “Quality is everyone’s responsibility”.
2. Quality principles
GitLab clarifies the expectations of the different teams to contribute to quality by defining quality principles. Each principle is illustrated by the behaviors supporting the achievement of defined objectives.
The Quality department has four main pillars defining the behaviors that allow them to be developed where two main areas stand out: supporting product teams and improving quality indicators.
3. Objective Key Results (OKR)
GitLab explains its objectives for the quarter and makes public their progress through Objective Key Results (OKRs) that are systematically defined, shared and assessed during the year.
Constant attention exists to ensure that the activities contribute to creating value overall. This exercise allows a better alignment of business initiatives between the different teams.
Priorities are defined according to their contribution to the objectives and expected results. Their measurement is regularly updated on a shared dashboard where each owner must make its results visible.
An organizational structure integrating and supporting quality
Organizational choices directly impact performance capacity. A real investment in organizational architecture is necessary to align the objectives, perimeters and means associated with the different teams.
GitLab has structured teams focused on different product objectives that are supported by accelerating departments, such as the Quality one, where a responsibility models enable to clarify ambiguous interactions.
4. Quality department
GitLab’s Quality department has 4 major team structures where Contributor Success, Engineering Productivity, and Engineering Analytics teams must contribute horizontally across the organization.
In addition, Quality Engineering units allocated to each product team grouped under the notion of Sub-Department. These Quality Engineering units therefore collaborate directly on specific areas of the product.
5. Quality Engineering Units
Aligning perimeters with corporate objectives makes it possible to compose teams beyond functional silos. This structuring is found in cross-functional or feature team models.
GitLab assigns its Quality Engineering units to product teams such as Dev, Ops, Security & Enablement or Fulfillment & Growth. They contribute to quality through clearly defined interactions and deliverables.
6. Interaction modes
The concept whole team approach to quality is attractive but nevertheless raises the question of accountability. If everyone is responsible, no one really is. Contributions to this common goal must therefore be defined.
GitLab explains in several respects the expected behaviors of the teams to directly contribute to quality, or on the contrary, how to support other units to achieve it — from UX, Engineering to Operations.
The organization promotes transversal interactions
Interactions are at the heart of the company’s capacity for collaboration and learning. These exchanges result from the organizational structure and informal sharing taking place between the actors.
GitLab has two models for engineering teams: “Cross-functional team” and “Fullstack team”. Cross-functional collaboration models complement these structures.
7. Cross-functional team
“Cross-functional teams” are made up of verticalized expertise by role, for example, between Frontend and Backend. This is the most popular model in GitLab engineering for better stability and iteration capacity.
The functional consistency of roles makes it easier to manage the rotation of profiles. It is necessary to balance both the capacities of the profiles available in the short term and the performance of the team in the medium and long term.
8. Fullstack team
The less widespread “Fullstack teams” have profiles capable of combining expertise. Instead, it is a model carried out by opportunity and according to the available profiles.
The advantage of this model is to be able to iterate sometimes more quickly on components by having fewer actors and a transverse production capacity. The downside is the stability and scalability of this model. It is more complex to find mixed profiles to replace or add to teams.
9. Cross-functional governance
Communication across organizational silos is essential to performance. Actors combine formal and informal mechanisms to best collaborate in an imperfect system.
Actors must align with their respective priorities and deliverables on formal methodologies such as OKR or Release Planning Day (RPD). Informal exchanges make it possible to create transversal relations useful for sharing good practices for continuous improvement.
Three key skills for Quality Engineering
Actors are the heart of the organization, bringing the product to life through their collaboration and contributions. Quality Engineering requires a mix of skills to become a reality in the company.
Gitlab distinguishes 3 main roles in its Quality department: Software Engineering in Test, Engineering Productivity Manager & Quality Engineering Manager.
10. Software Engineer in Test
The Software Engineers in Test is a pillar of Quality Engineering at GitLab. Their skills and contributions go much further than testing to allow teams to perform iteration loops as quickly as possible.
These players work with the product teams to improve the testability, velocity and maintenance of applications. They do this proactively upstream to improve the architecture, testability or even the code.
They also contribute on an ongoing basis to improve tests, environments and deployment pipelines. Most of the profiles are Senior at GitLab to meet these requirements.
11. Engineering Productivity
A factory where each production line is specific for similar needs suffers from degraded performance. The coordination effort and the additional costs limit the company’s ability to adapt. A better organization is needed.
Engineering Productivity exists to support a development experience that combines efficiency and effectiveness. The gains are captured by faster iterations for developers who can focus on the product as much as possible. The harmonization and support provided bring a capacity for continuous adaptation to the organization of its software production chain.
The GitLab Quality department has a dedicated Engineering Productivity team. Both individual Backend Engineer and Backend Engineering Manager contributors collaborate in the service of software development productivity.
12. Quality Engineering Leaders
A successful organization needs leaders. Their challenge is to develop an ecosystem that enables continuous value delivery. To do this, they must be inspiring, co-construct a vision and animate it across the company.
GitLab expects Quality Engineering leaders to be quality ambassadors. They must demonstrate a passion and energy capable of deploying a real strength of Quality Engineering within the organization.
They have direct responsibility for the skills of the Quality department, even if their interactions are mainly transverse. Leadership roles are at three levels: Quality Engineering Manager, Quality Engineering Director, VP of Quality.
The organization of Quality Engineering, fundamental to Quality at Speed
The organizational ecosystem of Quality Engineering is structuring for GitLab. Investments made in Engineering Productivity and Senior Testing are real advantages for product teams to accelerate.
Empowering each actor in the company by explaining their contributions to quality is essential to role clarity. A successful Enterprise Quality Engineering requires a very clear framework for collaboration.
An organization is inspired by good practices but must first and foremost adapt to the context and to the objectives sought. The value of a leader will be in his ability to leverage the talents specific to each company.
As a leader of Quality Engineering, our responsibility is to structure the organization to allow the actors to perform. Their perimeters influence resources, power, and ultimately their capacity for Quality at Speed.
So, start building your Quality Engineering organization today.
References
GitLab Story, https://about.gitlab.com/company/history
GitLab Quality Department, https://about.Gitlab.com/handbook/engineering/quality/
Quality Management Roles at GitLab, https://about.Gitlab.com/job-families/engineering/engineering-management-quality/
Quality Department Career Framework, https://about.Gitlab.com/handbook/engineering/career-development / matrix / engineering / quality /
GitLab Working Group on improving Ops Quality, https://about.Gitlab.com/handbook/engineering/development/ops/package/quality/