GitLab é organizado para Quality at Speed continúo.
É hoje um dos produtos de referência que permite às empresas agilizar a entrega de software. A GitLab também é conhecida por seu modelo organizacional remoto e pela transparência de seus mecanismos internos.
A organização tem crescido desde 2011 por meio de várias campanhas de arrecadação de fundos para fornecer uma experiência real de desenvolvimento. Esta melhoria contínua de sua proposta de valor é suportada por práticas de Quality Engineering.
Este artigo enfoca o maior valor agregado e os elementos diferenciadores da sua organização de Quality Engineering sob o prisma da estrutura MAMOS: Methods, Architecture, Management, Organization e Skills.
Segue a QE Unit para mais conteúdo exclusivo de Quality Engineering.
A Qualidade é uma parte integrante da empresa
A GitLab deve ser capaz de iterar em sua proposição de valor integrando a qualidade o mais cedo possível. Modelos colaborativos abrangentes são necessários para apoiar a escalabilidade da organização e suas práticas. Recorrer a mecanismos de coordenação atores com menos esforço é necessário.
A missão comum permite unir os atores em torno de um objetivo comum além de sua afiliação local. Os valores e princípios da empresa esclarecem os códigos de interações valorizadas e reconhecidas pelo ecossistema. Os objetivos e resultados esperados são então animados continuamente durante o trimestre.
Visão, missão e valores corporativos #1
A missão comum da GitLab é permitir que se seus clientes concentrem-se na evolução dos seus produtos. A qualidade é claramente definida como uma responsabilidade individual de cada ator da empresa.
A contribuição do departamento de qualidade é então definida em relação às equipes de produto. Os comportamentos valorizados são definidos como a colaboração transversal, incremental e transparente com foco no alcance de resultados.
Os princípios da qualidade #2
Os princípios estabelecem uma estrutura de execução. A GitLab esclarece as expectativas das diferentes equipes em contribuir para a qualidade, definindo princípios de qualidade. Cada princípio é ilustrado pelos comportamentos que apoiam a realização dos objetivos definidos.
O departamento de Qualidade da GitLab possui quatro pilares principais que definem os comportamentos que permitem seu desenvolvimento. Duas áreas principais se destacam: apoiar as equipes de produtos e melhorar os indicadores de qualidade.
Objectives Key Results (OKR) #3
A GitLab explica seus objetivos para o trimestre e torna público seu progresso por meio de Objective Key Results (OKR). Existe uma atenção constante para garantir que as atividades contribuam para a criação de valor global. Este exercício permite um melhor alinhamento das iniciativas de negócios entre as diferentes equipes.
O alinhamento das prioridades das diferentes equipas é suportado pelos objetivos e resultados associados a alcançar. Sua medição é regularmente atualizada em uma medição factual. Cada linha tem um responsável pela sua animação no seu perimetro.
Uma estrutura organizacional integrando e apoiando a qualidade
As escolhas organizacionais impactam diretamente a capacidade de desempenho. É necessário um verdadeiro investimento na arquitetura organizacional para alinhar os objetivos, perímetros e meios associados às diferentes equipas.
A GitLab tem equipes estruturadas com foco em diferentes objetivos do produto. Essas mesmas equipes são apoiadas por funções transversais aceleradas, como qualidade. As respectivas contribuições são explicadas para esclarecer as interações esperadas a fim de limitar ambigüidades.
Um departmento de Qualidade #4
O departamento de qualidade da GitLab possui 4 estruturas de equipe principais. As Contributor Success, Engineering Productivity e equipes de Engineering Analytics que devem contribuir horizontalmente em toda a organização.
Além disso, as equipes de Quality Engineering alocadas para cada equipe de produto agrupadas sob a noção de Sub-Departamento. Essas unidades de Quality Engineering colaboram diretamente em áreas específicas do produto.
Equipes de Quality Engineering #5
O alinhamento de perímetros com objetivos corporativos permite compor equipes além de silos funcionais. Essa estruturação é encontrada em modelos multifuncionais ou de feature teams.
A GitLab atribui suas unidades de Quality Engineering a equipes de produtos, como Dev, Ops, Sec & Enablement ou Fulfillment & Growth. Eles contribuem para a qualidade por meio de interações e entregas claramente definidas.
Modos de interação #6
O conceito de whole team ownership to quality é atraente, mas levanta a questão da responsabilidade. Se todos são responsáveis, ninguém realmente é. Contribuições para este objetivo comum devem, portanto, ser definidas.
A GitLab explica em vários aspectos os comportamentos esperados das equipes para contribuir diretamente para a qualidade, ou pelo contrário, como apoiar outras unidades para alcançá-la. Este trabalho é realizado para os diferentes departamentos, desde UX, Engenharia até Operações.
A organização promove interações transversais
As interações estão no centro da capacidade de colaboração e aprendizagem da empresa. Essas trocas resultam da estrutura organizacional e do compartilhamento informal que ocorre entre os atores.
A GitLab define dois modelos para equipes de engenharia : “Cross-functional” e “Fullstack”. Modelos de colaboração multifuncional complementam essas estruturas.
Cross-functional team #7
As “Cross-functional teams” são formadas por expertise verticalizada por função, por exemplo, entre Frontend e Backend. Este é o modelo mais popular na engenharia da GitLab para melhor estabilidade e capacidade de iteração.
A consistência funcional das funções torna mais fácil gerenciar a rotação de perfis. É necessário equilibrar as capacidades dos perfis disponíveis a curto prazo e o desempenho da equipa a médio e longo prazo.
Fullstack team #8
As menos difundidas “equipes Fullstack” têm perfis capazes de combinar várias competências normalmente reservadas a um role. É um modelo mais realizado por oportunidade e de acordo com os perfis disponíveis.
A vantagem desse modelo é ser capaz de iterar às vezes mais rapidamente nos componentes, tendo menos atores e uma capacidade de produção transversal. A desvantagem é a estabilidade e escalabilidade deste modelo. É mais complexo encontrar perfis mistos para substituir ou adicionar às equipes.
Governança multifuncional #9
A comunicação entre os silos organizacionais é essencial para o desempenho. Os atores combinam mecanismos formais e informais para melhor colaborar em um sistema imperfeito.
As partes interessadas devem se alinhar com suas respectivas prioridades e resultados nas metodologias formais de OKR e Release Planning Day (RPD). As trocas informais permitem criar relações transversais úteis para a partilha de boas práticas, para a melhoria contínua.
Três habilidades principais para o Quality Engineering
Os atores são no coração da organização, trazendo o produto à vida por meio de sua colaboração e contribuições. O Quality Engineering requer um mix de habilidades para se tornar uma realidade na empresa.
Gitlab distingue 3 funções principais em seu departamento de Qualidade: Software Engineer in Test, Engineering Productivity Manager e Quality Engineering Manager.
Software Engineer in Test #10
Os Software Engineer in Test são os pilares do Quality Engineering no GitLab. Suas habilidades e contribuições vão muito além do teste para permitir que as equipes realizem loops de iteração o mais rápido possível.
Esses atores trabalham com as equipes de produto para melhorar a testabilidade, velocidade e manutenção dos aplicativos. Eles fazem isso de forma proativa em upstream para melhorar a arquitetura, a capacidade de teste ou o código. Eles também contribuem continuamente, em particular para melhorar os testes, ambientes e pipelines de implantação. A maioria dos perfis é sênior na GitLab para atender a esses requisitos.
Engineering Productivity #11
Uma fábrica onde cada linha de produção é específica para necessidades semelhantes sofre de degradação de desempenho. O esforço de coordenação e os custos adicionais limitam a capacidade de adaptação da empresa. É necessária uma melhor organização.
O Engineering Productivity visa apoiar uma experiência de desenvolvimento que alie eficiência e eficácia. Os ganhos são capturados por iterações mais rápidas para desenvolvedores que podem se concentrar no produto tanto quanto possível. A harmonização e os apoios disponibilizados conferem uma capacidade de adaptação contínua à organização da sua cadeia produtiva de software.
O departamento de qualidade do GitLab tem uma equipa dedicada de Engineering Productivity. Perfis individuais de Backend Engineer e do Backend Engineering Manager colaboram ao serviço da produtividade do desenvolvimento de software.
Quality Engineering Leaders #12
Uma organização de sucesso precisa de líderes. Seu desafio é desenvolver um ecossistema que permita a entrega contínua de valor. Para fazer isso, eles devem ser inspiradores, co-construir uma visão e animá-la em toda a empresa.
A GitLab espera que os líderes do Quality Engineering sejam embaixadores da qualidade. Eles devem demonstrar uma paixão e uma energia capaz de implantar uma força real do Quality Engineering dentro da organização. Eles têm responsabilidade direta pelas competências do departamento de Qualidade, mesmo que suas interações sejam principalmente transversais.
Essas funções de liderança são posicionadas em três níveis: Quality Engineering Manager, Quality Engineering Director, VP of Quality.
A organização do Quality Engineering, fundamental para a Qualidade na Velocidade
O ecossistema organizacional do Quality Engineering está se estruturando para o GitLab. Investimentos feitos em engineering productivity e os testes são vantagens reais para permitir a aceleração das equipes de produto.
Capacitar cada ator na empresa, explicando suas contribuições para a qualidade, é essencial para a clareza da função. Um Quality Engineering empresarial requer uma estrutura muito clara para a colaboração.
Uma organização inspira-se nas boas práticas, mas deve antes de mais nada adaptar-se ao contexto e aos objetivos pretendidos. O valor de um líder estará em sua capacidade de alavancar os talentos, específicos de cada empresa.
A nossa responsabilidade como líder em Quality Engineering é estruturar a organização para permitir que os atores atuem lá. Seus perímetros influenciam os recursos, a potência e, em in fine, sua capacidade de Quality at Speed.
Portanto, vamos atuar pelo Quality Engineering em nossas organizações.
Segue a QE Unit para mais Quality Engineering.
Referências
GitLab Story, https://about.gitlab.com/company/history
Departamento de Qualidade GitLab, https://about.Gitlab.com/handbook/engineering/quality/
Funções de gerenciamento de qualidade no GitLab, https://about.Gitlab.com/job-families/engineering/engineering-management-quality/
Estrutura de carreira do departamento de qualidade, https://about.Gitlab.com/handbook/engineering/career-development / matriz / engenharia / qualidade /
Grupo de trabalho do GitLab para melhorar a qualidade das operações, https://about.Gitlab.com/handbook/engineering/development/ops/package/quality/