GitLab pushes for continuous Quality at Speed.
Today, it is one of the reference products allowing companies to speed up their software delivery. GitLab is 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 real development experience. Quality Engineering practices support this continuous improvement of its value proposition.
This article focuses on the highest added value and differentiating units of its Quality Engineering organization under the prism of the MAMOS framework: Methods, Architecture, Management, Organization & Skills.
Follow the QE Unit for more exclusive content from Quality Engineering.
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. Transversal collaborative models are needed to support the scalability of the organization and its practices. It requires using low effort mechanisms for coordinating actors.
The common mission makes it possible to unite the actors around a common objective beyond their local affiliation. Company values and principles clarify the codes of interactions valued and recognized by the ecosystem. The objectives and expected results are then animated continuously during the quarter.
Vision, mission and values #1
The common mission of GitLab is to allow its clients to focus on their products. Quality is an individual responsibility for each actor in the company.
The contribution of the quality department is then defined vis-à-vis the product teams. The values complement the valued behaviors such as the transverse collaborative, incremental and transparent focused on achieving results.
Quality principles #2
The principles establish a framework of execution. 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.
GitLab’s Quality department has four main pillars defining the behaviors that allow them to be developed. Two main areas stand out: supporting product teams and improving quality indicators.
Objective Key Results (OKR) #3
GitLab explains its objectives for the quarter and makes public their progress through Objective Key Results (OKR). 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.
The alignment of the priorities of the different teams is supported by the objectives and associated results to be achieved. Their measurement is regularly updated on a factual measurement. Each line has a person responsible for its animation in the quarter.
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. These same teams are supported by accelerating transverse functions, such as quality. The respective contributions are explained to clarify the expected interactions in order to limit ambiguities.
Quality department #4
GitLab’s Quality department has 4 major team structures. 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.
Quality Engineering Units #5
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.
Interaction modes #6
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. This work is carried out for the different departments, 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.
Cross-functional team #7
“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.
Fullstack team #8
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.
Cross-functional governance #9
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.
Software Engineer in Test #10
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.
Engineering Productivity #11
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.
Quality Engineering Leaders #12
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.
These 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 let’s build a Quality Engineering organization.
Follow the QE Unit for more Quality Engineering.
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/