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 😉


Líder .. como ajudar seu time aprimorar suas competências!

Primeiro passo

O mapeamento deve ser inicialmente de onde o individuo esta para onde deseja chegar, deve se levar em conta cargo ou função que a pessoa atua em sua empresa. Esse processo é MUITO importante para a carreira dos profissionais. O resultado é relevante tanto para empresa quanto para o empregado, trazendo uma evolução continua e transparência de ambas as necessidades. Para isso é preciso primeiramente ter a definição do papel e responsabilidades para que o líder cruze as competências esperadas, isso já irá ajudar ser mais assertivos nas contratações.

Segundo passo

A seguir criamos um plano de desenvolvimento para levantar quais ações o profissional precisa para conquistar novas competências ou aprimora-las. Para isso existem alguns níveis de crescimento como novato, iniciante,competente, profissional e eficiente que caraterizam os tipos de avaliação. Eu geralmente executo essa ação de três em três meses para acompanhar e ajudar a evolução dos meus liderados.

Competências , habilidades e atitudes

O método CHA é o conjunto de conhecimento , habilidades e atitudes que nos traz competências, conhecimento (saber o que fazer), habilidade (saber como fazer) e atitude (querer fazer ) . Para o avanço de nível de carreira não pode faltar a evolução de nenhum desses critérios pois eles andam juntos para uma nova posição ou cargo, eles são os balizadores do quanto a pessoa está preparada.

Esse processo é muito importante para a evolução de carreira, se sua empresa não executa esse processo crie você mesmo, apresente para seu gestor seu plano, com ele você terá indicadores que geram transparência na sua caminhada dentro da empresa. A carreira é sua! Seja o protagonista dela 🙂

Comportamentos e atitudes que fizeram a diferença na minha trajetória de Scrum Master

O papel do Scrum Master na teoria é bem difundido, sabemos que ele é quem ajuda e apoia o time de desenvolvimento a alcançar os objetivos traçados, dissemina metodologia e processos ágeis, facilita cerimônias, remove os impedimentos, auxilia o Product Owner e agrega com boas práticas.

Mas percebi na prática que não era suficiente ter conhecimentos específicos, aos poucos comecei a treinar algumas habilidades e atitudes para conseguir transformar o mindset e trazer aos meus times o porque do real motivo de utilizar frameworks e ferramentas ágeis. Trouxe aqui algumas das habilidades que transformaram e aumentaram a maturidade das pessoas em relação a metodologia.

Seja o Agente da Mudança: Seja inquieto, não tolere mesmice. Dar visibilidade dos problemas para que as pessoas falem e conversem como resolver. Disseminar conhecimento entre todos gera um time auto organizável.

Direcione, não defina: Faça coach do time, direcione o trabalho e de foco nas entregas, traga o time para tomar decisões colegiadas.

Pense simples, faça simples: Gere valor ao time. Ajude-os a conter o desejo da melhor solução do mundo e focar no que pode ser melhor para o momento.

Acompanhe tudo que acontece: Scrum Master não deve apenas facilitar reuniões. Saber tudo que acontece desde decisão de negócio a técnica, ajuda também a facilitar tomada de decisão.

Antecipe os problemas: Registre e acompanhe todo impedimento que pode perceber. Tenha causa raiz e informações suficientes que possa identificar com antecedência aqueles já conhecidos.

E por último mas não menos importante..

Seja desapegado: Durante um período é comum criar rotinas e práticas para estimular maturidade pro time. No momento que atinge essa maturidade é comum acontecer queda de práticas e criarem sua própria identidade , cuide apenas para que não se desvie os resultados!

Espero que minhas experiências ajudem quem está nesse caminho, e o mais importante pra mim é SEJA FELIZ em transformar e ajudar seu time a gerar bons resultados, PESSOAS INCRÍVEIS geram resultados incríveis 🙂