Saiba qual a melhor forma de montar seu time DevOps

Na versão européia do evento DevOps Enterprise Summit, que este ano ocorreu em Londres, uma palestra do Matthew Skelton me chamou atenção. A palestra, intitulada “How and Why to Design Your Teams for Modern Software Development“, fala sobre como montar os times de Dev e Ops para permitir a construção de softwares com mais qualidade e com menos atrito entre as áreas.

Skelton e seu time de consultoria, motivados pela lei de Conway e de outros estudiosos das organizações, realizaram pesquisas de eficiência, eficácia e efetividade de diversas formas de se estruturar um time misto das duas principais áreas.

“organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”

— Mel Conway, 1968

Os resultado dessas pesquisas estão compiladas no site DevOps Topologies, criado pelo próprio palestrante, onde são apresentadas diversas organizações de times de Desenvolvimento e Operações (Infraestrutura). São citados arquétipos negativos clássicos, chamados de anti-types, e os arquétipos que mais têm chance de trazer resultados positivos.

Dentro do que foi falado e mostrado, o que eu mais concordo é que a organização dos times ela é mutável no decorrer do projeto. Onde há uma fase de Colaboração, onde o time deve estar muito mais unido (inclusive fisicamente); após isso uma fase de Estabilização, onde os protocolos de comunicações (contratos, APIs…) já estão definidos e em fase de experimentação; e uma fase final de Uso, onde as APIs definidas são suficientes e pode haver um distanciamento entre as equipes, sem nenhuma perda sensí­vel de produtividade.

É neste modelo que acredito, pois há um alinhamento de expectativa e entrega entre as áreas. Esse alinhamento é fruto de uma comunicação clara entre envolvidos, realizada no momento correto. A partir da descobertas da fase de Colaboração foi possí­vel estabelecer as APIs e desenhos de pipeline, que permitiram o desacoplamento dos times (mesmo fisicamente) sem perda de qualidade.

E você? Quais suas experiências com diferentes setups de times ágeis?

Os ní­veis de unidade que suportam a liderança

Fazer com que todos os membros da equipe estejam de acordo com as decisões que são tomadas, nem sempre é uma tarefa fácil. Para chegar nessa unidade e consequentemente conseguir o apoio de todos do time, é importante entender quais ní­veis existem.

O primeiro é a Aceitação. Nesse ní­vel, as pessoas aceitam suas decisões sem perguntar e, muitas vezes, sem se importar. Isso pode acontecer pelo simples fato deles entenderem que o “custo” da pergunta não vale a resposta.

O segundo ní­vel é a Concordância. O time concorda com você e está irá apoiar suas decisões, porém o envolvimento é somente racional. Caso convencidos de que outra opção é mais sensata ou logicamente correta, será fácil fazer com que eles deixem de apoiá-lo.

O ní­vel mais alto de unidade é o Alinhamento. Quando todos estão de acordo em apoiar suas decisões, mesmo sem necessariamente concordar com ela. Esse ní­vel mostra que o time está organicamente integrado e mesmo que haja alguma discordância, todos seguirão o mesmo caminho.

A parte mais complicada é você, enquanto lí­der, entender em que ní­vel está e o que pode fazer para chegar até o Alinhamento. Conhecer seu time e quais as motivações de cada um é um grande começo.