Estrutura da equipe DevOps: tipos, funções e responsabilidades
Equipes diferentes exigem estruturas diferentes, dependendo do contexto mais amplo da empresa.
Shana Vu
Marketing de produto, DevOps
Quando uma equipe de software está no caminho certo para praticar DevOps, é importante entender que equipes diferentes exigem estruturas diferentes, dependendo do contexto maior da empresa e do apetite por mudanças.
A ascensão das equipes de DevOps
Você tem uma equipe de DevOps em sua empresa? Há uma boa chance da resposta ser sim. Em nossa pesquisa DevOps Trends, descobrimos que mais de dois terços das empresas pesquisadas têm uma equipe ou indivíduo que carrega o título “DevOps” de alguma forma.
À medida que o DevOps se torna mais difundido, muitas vezes ouvimos que as equipes de software agora são equipes de DevOps. No entanto, apenas adicionar novas ferramentas ou designar uma equipe como DevOps não é suficiente para perceber os benefícios do DevOps por completo.
Sem uma compreensão clara do DevOps e de como fazer a implementação de maneira adequada, uma transformação de DevOps, em geral, é restrita a reorganizações ou às ferramentas mais recentes. Abraçar o DevOps com inteligência implica uma mudança cultural em que as equipes têm novas estruturas, novos princípios de gerenciamento e adotam determinadas ferramentas tecnológicas.
Tipos de estruturas de equipe DevOps
Determinar qual estrutura de equipe de DevOps implementar depende de várias coisas, incluindo o número de produtos em que uma empresa trabalha, a liderança técnica e se as equipes de desenvolvimento e operações têm a capacidade de alinhar processos.
ver solução
Ferramentas de DevOps para toda a equipe
Material relacionado
Saiba mais sobre os benefícios do DevOps
É importante entender que nem toda equipe compartilha os mesmos objetivos ou vai usar as mesmas práticas e ferramentas. Até mesmo a forma como uma equipe é composta não deve ser padronizada. Equipes diferentes exigem estruturas diferentes, dependendo do contexto mais amplo da empresa e do apetite por mudanças. Uma equipe de DevOps em duas empresas distintas pode significar coisas muito diferentes.
Para colher os benefícios do DevOps – tempo de lançamento no mercado mais rápido, maior frequência de implementação, melhor cultura de equipe e maior colaboração entre equipes e departamentos – é importante entender o papel que cada equipe desempenha. Ainda assim, em muitas empresas, há uma variedade de títulos, com equipes assumindo várias funções (por exemplo, uma equipe de infraestrutura atuando como selecionadora e mantenedora de ferramentas). Essa expansão dificulta para a liderança visualizar todo o cenário organizacional e responder a perguntas importantes: temos as equipes certas disponíveis? Estão faltando recursos em algumas áreas que não estão sendo abordados por nenhuma equipe? Está claro que as equipes têm o equilíbrio necessário entre autonomia e apoio de outras equipes?
O excelente trabalho das pessoas da Team Topologies oferece um ponto de partida para como a Atlassian vê as diferentes abordagens das equipes de DevOps. Lembre-se de que as estruturas de equipe abaixo assumem formas diferentes, dependendo do tamanho e da maturidade da empresa. Na realidade, uma combinação de mais de uma estrutura, ou uma estrutura se transformando em outra, costuma ser a melhor abordagem.
Colaboração de desenvolvimento e operações
Muitas pessoas veem o DevOps apenas como desenvolvimento e operações trabalhando com coesão e colaborando juntos. Essa é a base do DevOps que tem benefícios claros, incluindo a capacidade que as equipes de software têm para criar, testar e enviar com mais rapidez e confiabilidade.
A chave para o sucesso dessa estrutura de equipe é que os desenvolvedores entendam a pressão sobre as equipes operacionais para manter o tempo de atividade e minimizar as resoluções. Tão importante quanto, é que as equipes de operações entendam a vontade das equipes de desenvolvimento de reduzir o tempo de implementação e o tempo de lançamento no mercado.
Desenvolvimento e operações em conjunto
Essa estrutura de equipe pressupõe que o desenvolvimento e as operações se encaixem e operem em uma equipe singular - agindo como uma frente unida com objetivos compartilhados. Certas vezes chamada de “NoOps”, essa estrutura é muito vista em empresas de tecnologia com um único produto digital primário, como Facebook ou Netflix. Ela pode até assumir a forma de “você constrói, você o executa”, com os mesmos indivíduos desenvolvendo e operando aplicativos.
DevOps/SRE
Essa estrutura de equipe, popularizada pelo Google, é onde uma equipe de desenvolvimento entrega um produto para a equipe de Engenharia de Confiabilidade do Site (SRE), que executa o software de fato. Neste modelo, as equipes de desenvolvimento oferecem logs e outros artefatos para a equipe de SRE para provar que seu software atende a um padrão suficiente para o suporte da equipe de SRE. As equipes de desenvolvimento e SRE colaboram em critérios operacionais e as equipes de SRE têm o poder de pedir aos desenvolvedores que melhorem seu código antes da produção.
Operações como plataforma
Nessa estrutura, uma equipe dentro da equipe de desenvolvimento atua como uma fonte de conhecimento para todas as operações e faz a maior parte da interface com a equipe de Infraestrutura como um Serviço (IaaS). Essa estrutura de equipe depende de aplicativos executados em uma nuvem pública, já que a equipe de IaaS cria serviços virtuais escaláveis que a equipe de desenvolvimento usa.
DevOps como parte externa
O DevOps como parte externa é onde as empresas usam um consultor de DevOps ou uma equipe de DevOps por um período limitado para ajudar as equipes de desenvolvimento e operações a se moverem em direção às duas primeiras estruturas de equipe mencionadas (colaboração de desenvolvimento e operações e desenvolvimento e operações juntos).
Embora existam várias maneiras de fazer DevOps, também existem várias maneiras de como não fazer. As equipes e os líderes de DevOps devem ter cuidado com os antipadrões, que são marcados por silos, falta de comunicação e priorização incorreta de ferramentas em detrimento da comunicação.
Funções e responsabilidades nas equipes de DevOps
Sem levar em conta a estrutura, todas as equipes de alto funcionamento que praticam DevOps compartilham conhecimento e experiência entre desenvolvimento e operações com regularidade, seja durante reuniões comuns ou pessoas trabalhando em equipes diferentes e/ou fazendo com que os membros da equipe trabalhem em ambas as funções. Uma equipe de alto funcionamento é marcada pelos seguintes benefícios do DevOps: tempo mais rápido de lançamento no mercado, tempo de espera aprimorado, maior frequência de implementação, entregáveis de maior qualidade, melhor cultura de equipe e maior colaboração entre equipes e departamentos.
As equipes de DevOps, em geral, são compostas por pessoas com habilidades tanto em desenvolvimento quanto em operações. Alguns membros da equipe podem ser melhores na escrita de código, enquanto outros podem ser mais qualificados em operar e gerenciar a infraestrutura. No entanto, em grandes empresas, todos os aspectos do DevOps - desde IC/CD, até IaaS e automação - podem ser uma função. Essa função pode incluir um gerente de lançamento que coordena e gerencia aplicativos desde o desenvolvimento até a produção, até arquitetos de automação que mantêm e automatizam o pipeline de IC/CD de uma equipe.
Então, o que é preciso para se juntar a uma equipe de DevOps? Os requisitos de trabalho para entrar em uma equipe de DevOps evoluem devido às novas tecnologias e técnicas, mas as qualidades de uma boa equipe de DevOps são sempre as mesmas. Habilidades técnicas sólidas, boa comunicação, mentalidade de equipe e adaptabilidade são alguns dos principais traços de um profissional forte de DevOps. Uma combinação de todos é, talvez, mais importante do que um conhecimento enciclopédico de Kubernetes ou de Git. Mas não faz mal ter os dois!
Outro ingrediente para o sucesso é um líder disposto a evangelizar o DevOps para uma equipe, equipes colaborativas e a empresa em geral. Não precisa ser alguém com “gerente” no título, mas qualquer pessoa disposta a convencer os membros céticos da equipe a começar o preenchimento da lacuna entre a equipe e uma equipe externa, sejam desenvolvedores, operações ou uma equipe de plataforma.
Software para dar suporte à equipe
Mesmo que o trabalho real do cotidiano de uma equipe dite a cadeia de ferramentas DevOps, vai ser preciso algum tipo de software para unir e coordenar o trabalho entre sua equipe e o resto da empresa. O Jira é uma ferramenta poderosa que planeja, rastreia e gerencia projetos de desenvolvimento de software, mantendo seus colegas de equipe imediatos e a empresa como um todo informados sobre o status do trabalho.
Aplicativos como Zoom, Slack e Microsoft Teams também são necessários para que as equipes se comuniquem com rapidez e eficiência, ainda mais em um mundo remoto. No passado, um desenvolvedor podia ir até a equipe de operações para perguntar sobre o status de um incidente. Agora, os aplicativos de comunicação virtual oferecem a mesma comunicação instantânea.
Mas lembre-se, o software para manter suas equipes trabalhando juntas é um meio, não um fim. Se sua empresa quer perceber todo o potencial do DevOps – transparência, confiança e autonomia – são necessárias equipes, não apenas ferramentas, para alcançar esse objetivo.
Compartilhe este artigo
Próximo tópico
Leitura recomendada
Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.