Maturidade devops e integração de equipes, dois elementos que são altamente questionados principalmente quando começamos a observar em como adotar as práticas devops em organizações que tem um nível de maturidade muito baixo.

Mas por que este nível é tão baixo?

A ideia de trabalhar em uma escala de maturidade nos coloca justamente em um posicionamento de avaliar o nosso cenário atual e avaliar o objetivo que desejamos alcançar. Embasar este caminho através de um plano seria enriquecido através de modelos de maturidade. Os modelos de maturidade que existem no mercado (modelo de gerenciamento de projetos, CMMI, maturidade COBIT, entre outros)  poderão servir para ajudar a analisar o contexto da organização em devops.

Mas o que varia destes modelos que já estão mais que estabelecidos no mercado frente ao modelo de maturidade devops?

O que varia nesses modelos?

Maturidade DevOps

1.  A maturidade não pode ser vista em DevOps como um carimbo para conseguir categorizar a organização.

A maturidade em DevOps nos ajuda a nortear decisões que permitirão atender os objetivos que são vistos dentro do contexto DevOps. O objetivo principal é conseguir agilizar as entregas do ponto de vista de ser eficaz e eficiente dentro dos seus  resultados. Vejam um ponto importante, agilidade veio trazer justamente mais  eficácia, mas por quê? Porque o escopo foi divido em escopos menores para conseguir atingir o alvo. Mas ela chegou apenas na metade do caminho, desenvolver software e validar ele no formato “na minha máquina funciona” não é o suficiente para chegar em produção.

O que precisamos estender para chegar em produção?

Trazer as melhores práticas de desenvolvimento junto às melhores práticas de entrega de sustentação, manutenção e monitoração para conseguir ter uma visão  integrada do que precisa ser feito. A partir daí temos várias disciplinas que poderiam ser eventualmente usadas para melhorar a organização (Integração contínua, capacidade da equipe de integrar códigos, arquitetura evolutiva, testes automatizados, padronização, fluxo continuo e estável).

2. Analisar dados e gestão de dados.

3. A organização precisa ser resiliente, ter uma capacidade de auto recuperação e deixar de apagar incêndios.

4. Equipes técnicas e tomadoras de decisões (modelo horizontal).

Ou seja, existem diversos pontos para ser considerados e no mercado ainda não existe um padrão de modelos de maturidade, mas ainda assim contamos com algumas referências importantes. O relatório da Puppet (State of DevOps) já nos apresenta um norte de como seria algum modelo de maturidade devops proposto pelo mercado. Nele observamos desde um nível mais artesanal até o nível mais profissional de se trabalhar com DevOps.

Diversos modelos de maturidade dentro de uma mesma organização…

Maturidade DevOps

hnz-consultoria-e-treinamentos-blog-o-devops-matou-o-gerenciamento-do-ciclo-de-vida-do-aplicativo-cva

Dentro de uma organização é possível se ter vários serviços com diferentes graus de maturidade, pois as tecnologias, as prioridades, as equipes, os métodos de gestão e metodologias,  o comando e controle são diferentes umas das outras. Então avaliar a maturidade não é uma questão tão fácil, fazendo se necessário a adaptação das referências existentes no mercado. Como mencionado anteriormente, o modelo não deve ser utilizado como status para uma organização, mas sim como um sistema que me ajuda a chegar objetivo organizacional.

Como consigo trabalhar a evolução da organização na decisão do DevOps?

Esse talvez seja um dos pontos fundamentais na tomada de decisão de entrar nesse universo DevOps. Se pensarmos que é um investimento necessário realizar para conseguir transformar a organização, nós observamos diversos cases de fracasso em outras empresas e ficamos receosos. Porém dentro do universo DevOps é necessário aprender com as falhas e realizar um aprendizado contínuo. Existem boas práticas de mercado que orientam o que deveria ser feito para ir superando os sintomas que existem em uma maneira clássica de trabalhar (Equipes separadas, falta de colaboração).

Como medir a evolução do processo contínuo em DevOps?

Maturidade DevOps

hnz-consultoria-e-treinamentos-blog-como-implementar-devops-as-24-praticas-para-a-adocao-do-devops-capacidades-de-arquitetura

Se a evolução é desejada e necessariamente provocada, como podemos medir seu andamento para tomar as decisões corretas nesse processo de adoção?

Há duas características-chave para robustecer esta maturidade:

  1. Deve se concentrar em um resultado global para garantir que as equipes não sejam colocadas umas contra a outras.
  2. A medida deve se concentrar em resultados e não em entregas em produção

Podemos mencionar 4 medidas de desempenho, divididas em 2 grupos complementares para poder abranger o fluxo inteiro, de ponta a ponta:

Medidas associadas ao tempo de desempenho de entrega de software

  • Tempo de entrega (lead time)
  • Frequência de implantação

Medidas associadas ao tempo de estabilidade dos sistemas

  • Tempo de restauração dos serviços
  • Taxa de falhas em mudanças (derivadas do processo de implantação)

Modelos associados à disciplinas técnicas da Entrega Continua

Um exemplo de modelo de maturidade é apresentado pelo Humble, Farley no livro “Entrega Contínua: Como Entregar Software

O principal objetivo deste modelo é melhorar sua organização do ponto de vista de eficiencia. Os resultados desejados são:

  • Tempo de ciclo reduzido, de modo que você consiga entregar valor mais rápido e aumentar seu lucro.
  • Esforço reduzido, de modo que você possa melhorar sua eficiência e gastar menos em suporte.
  • Previsibilidade aumentada do ciclo de vida de entrega de software para tornar o planejamento mais eficaz.
  • Capacidade de adotar e manter uma atitude de observância com qualquer regime de regulamentação a que você esteja sujeito.
  • Capacidade de determinar e gerenciar os riscos associados com a entrega de software efetivamente.
  • Custos reduzidos por meio de melhor gestão de risco e menos problemas na entrega de software.

Este modelo de maturidade pode agir como um guia para ajudar a alcançar todos esses objetivos. Recomendamos, como sempre, que você aplique o ciclo de Deming – planejar, executar, verificar e agir.

  1. Use o modelo para classificar a maturidade da gerência de configuração e entrega de versão de sua organização. você pode descobrir que diferentes partes de sua organização têm níveis diferentes em cada uma das categorias.
  2.  Escolha uma área de foco em que a imaturidade é particularmente complicada. Mapeamento da cadeia de valor pode ajudar a identificar áreas que precisam de melhoria. Também é preciso decidir quais melhorias fazem sentido para sua organização, estimar os custos e benefícios e priorizar. Também é preciso definir critérios de aceitação para especificar os resultados esperados e como serão medidos, para que você possa decidir se a mudança foi bem-sucedida.
  3. Implemente as mudanças. Primeiro, crie um plano de implementação. Provavelmente é melhor começar com uma prova de conceito. Se esse for o caso, escolha uma parte da organização que está realmente com dificuldades – essas pessoas terão a melhor motivação para implementar mudanças, e é lá́ que você verá́ as mudanças mais significativas.
  4. Uma vez que as mudanças tenham sido feitas, use os critérios de aceitação que criou para medir se elas tiveram os efeitos desejados. Faça uma retrospectiva com todos os envolvidos para definir quão bem foram executadas e quais são as potenciais áreas de melhoria.
  5. Repita esses passos e construa seu conhecimento. Execute melhorias de maneira incremental e ao longo de toda a organização.

Quer entender em qual nível de maturidade a sua organização está e o que você precisa para torná-la DevOps? Entre em contato, nossa consultoria é focada na adoção do DevOps nas organizações!

Newsletter HNZ

Fique por dentro de nossos conteúdos se cadastrando na nossa newsletter semanal! Clique aqui!

HNZ

HNZ

Leave a Reply