Integração de times multi skills: DevOps

Compartilho com vocês um pouco da experiência de times multi skills que venho atuando com a implantação da cultura DevOps, a integração dos papéis, start do processo, execução, práticas que estamos utilizando e os resultados percebidos.

O que é a cultura DevOps?

A cultura surgiu da necessidade de melhorar agilidade nas entregas de TI. Devops foca em comunicação, colaboração e integração entre times de desenvolvimento e infraestrutura, mudando a visão de silos isolados.
Essa cultura veio estendida do modelo Agile , incluindo o lado operacional, promovendo integração contínua até a entrega com objetivo de agregar mais valor ao negócio com entregas mais rápidas de alta qualidade.

Nosso start

Na criação dos times foram selecionados desenvolvedores de senioridades mistas, trazendo para o time um senso de compartilhamento de conhecimento.

No modelo de negócio, nossos produtos tem muita necessidade de serviços de infraestrutura, por este motivo foram atrelados perfis com expertise e conhecimento atrelado aos produtos a serem desenvolvidos.

imagem ilustrativa integração de times multi skills

A integração do time

Nos primeiros encontros entendemos um pouco do papel de cada pessoa e o que executa dentro das suas responsabilidades.

Redefinimos o conceito de áreas para time, onde todos teriam o mesmo objetivo: entregar e agregar valor para o negócio com o desenvolvimento de um produto de qualidade.

Em seguida iniciamos inception e definição dos objetivos do negócio, visão do produto, problemas que queríamos resolver, funcionalidades envolvidas e por fim MPVs.

A sprint 0 (zero) teve como objetivo definir questões técnicas para melhor solução, juntos debateram e levantaram prós e contras, avaliaram as opções e definiram juntos.

DevOps na execução

Utilizando o framework Scrum fomos percebendo nas entregas incrementais que, para algumas atividades, era necessário skills específicos, e que isso algumas vezes gerava uma dependência de alguns integrantes. Sugeri para os times o mapeamento de competências de times, e após o levantamento geramos uma matriz para todos integrantes.

Com isso fizemos um quadro de quem queria ensinar e de quem queria aprender, priorizamos os assuntos e iniciamos talks para compartilhar conhecimento. Com o tempo e o conhecimento se disseminando esses problemas foram diluindo e diminuindo.

Logo no início, foi gerado um comprometimento alto de qualidade no qual é parte do processo teste unitário, peer review, teste integrado, documentação da solução apenas o necessário e refatoração.

Organizamos ambientes segregados para desenvolvimento e teste, onde só era submetido a produção após a validação de testes integrados.
A cada sprint geramos percepções do que estava avançando e do que podíamos melhorar (processos e ferramentas), criando plano de ação para melhoria contínua.

Integração com outros times e sistemas

No decorrer da criação da solução foram surgindo interações com times de outros produtos que envolviam diretamente a entrega do produto que estamos criando.

Havia algumas dificuldades de padrões que não estavam formalizadas, além do processo de merge e avaliação de código. Geramos encontros entre essas equipes para montar os acordos de trabalho e formas de sinalizar a finalização dos códigos para subida a produção.

Processos automatizados

Com os momentos de retrospectivas foi possível implantar melhoria continua, com isso além de melhorar o comprometimento, confiança e colaboração um dos itens que conseguimos colocar na prática foi automatizações de alguns processos. Alguns deles elevaram a performance do time, fazendo com que eles tivessem mais motivação para seguir o conceito.

Há pouco tempo entrou mais um skill pro time, desenvolvimento de testes automatizados, com isso começou a surgir as questões de como organizar o processo de deploy automatizado no continuos delivery e a segregação de ambientes.

Resultados percebidos com a cultura DevOps

Percebemos nesses meses que o sentimento de pertencimento a um time e comprometimento foi incorporado por todos.

Não há mais responsabilidades por área, todos ajudam a todos a resolverem as dificuldades. O fluxo de entrega ficou mais rápido, pois os impedimentos eram resolvidos internamente pelo time.

A questão da comunicação e alinhamento ficou muito mais transparente pois todos tem o mesmo objetivo. A questão da necessidade de provisionamento de ambientes segregados está clara para todos, e o preparo do ambiente é feita por integrantes do próprio time.

A facilidade de publicação das soluções e necessidade de automatização de processos nascem do time, a percepção é natural pois eles sempre tendem a ter mais performance. Os pontos que estamos trabalhando para melhorar estão vinculados a automatização de testes, monitoramento, gestão de incidentes e processo automatizado de deploy.

Esses são alguns dos passos que estamos executando a quatro meses, cada mês percebemos ganhos e amadurecimento para a cultura.
O aprendizado tem sido constante e tem gerando engajamento aos envolvidos, outros times vem se interessando e procuram apoio para vivenciar a cultura em seus times.

Espero que esse artigo ajude a quem tem interesse em adotar o Devops, e quem ainda não começou, minha sugestão é :

– Tente … da maneira que é possível dentro da sua realidade !!

A melhoria continua vem com o tempo, com prática , errando e aprendendo.
E se precisarem de alguma dica estou a disposição para compartilharmos experiências 😉