3 Maneiras DevOps – 1º Fluxo

Esse será o primeiro artigo de uma série de três onde irei trazer a vocês um conjunto de princípios, práticas e ideias que considero essenciais para o bom funcionamento de uma esteira de fabricação de software que são apresentados nas três maneiras do Devops.

Em um cenário global de competitividade onde empresas querem ser mais ágeis e entregar seus produtos e serviços de forma rápida, segura e com qualidade reduzindo ao máximo custos operacionais, filosofias de sucesso como Sistema Toyota de Produção e o Lean que são pilares para as 3 maneiras Devops podem guiá-las ao sucesso na esteira Devops.

A primeira maneira o fluxo de valor tecnológico oferece a redução do tempo de execução do trabalho e aumentando a qualidade do trabalho em uma escala de produção puxada do negócio para o cliente, do desenvolvimento para operações. E para maximizar o fluxo precisamos tornar o trabalho visível, limitar o trabalho em andamento, reduzir o tamanho dos lotes e identificar e elevar as restrições para assim gerarmos valor agregado ao produto ou serviço para o cliente.

1 Maneira (fonte: Gene Kim, “The three Ways: The Principles Underpinning Devops”)

Tornar o trabalho visível

Dentro de uma esteira de produção de software não podemos ver facilmente todos os silos, gargalos e intrusos pois entregas de software podem ser subjetivas. Então identificar e materializar todo o trabalho se torna essencial.

A divulgação de informações aos times através de painéis kanban ou planejamento de sprint torna possível a identificação do trabalho sendo realizado ou o enfileiramento de demandas. Mostrando qual atividade está em andamento, finalizada ou gerando gargalo na produção do time.

Exemplo quadro Kanban

Limitar o trabalho em andamento (WIP)

Em um quadro de tarefas exibe as tarefas planejadas para serem executadas baseada nas demandas ou pedidos dos clientes com previsões, bloqueios etc. Porém a dinâmica do dia a dia altera esse fluxo e demandas inesperadas e novos pedidos são dominados pelos diferentes níveis de prioridade.

Porém pesquisas neuropsicologia cognitiva mostram que a execução simultânea de tarefas reduz a produtividade em até 40% e o controle do trabalho em andamento é uma poderosa ferramenta de gerenciamento de trabalho, portanto a criação de um limite nos cartões do trabalho em andamento irá direcionar a equipe no que deve ser realizado e limita o WIP facilitando ver os problemas que impedem a conclusão do trabalho.

Reduzir o tamanho dos lotes

Outro importante componente na geração de valor através do fluxo é a redução dos lotes de trabalho. Grandes lotes de trabalho resultam em altos níveis de WIP pois é investido um grande tempo na criação de um software ou recurso que não se sabe ao certo o resultado após a integração com o restante do sistema, o que pode resultar na perda de tempo de trabalho.

Com a inovação e avanços no mercado tecnológico, o surgimento da arquitetura de micros serviços apoiam ainda mais a redução nos lotes de trabalho. Pois micros serviços são uma abordagem arquitetônica do desenvolvimento de software que consiste em pequenos serviços independentes que se comunicam através de APIs. Assim é possível realizar pequenas entregas de serviços de forma mais ágil pois o desenvolvimento, testes e releases se tornam mais simples de serem realizados sem o risco de comprometer todo o sistema.

Identificar e elevar as restrições

Para obter melhores tempos de execução e melhorar o rendimento precisamos identificar e elevar nossas restrições de trabalho. À medida que progredimos na esteira de produção de software identificamos os gargalos que nos impedem de executarmos mais e com mais qualidade. Abaixo pontos que podem ser gargalos em sua esteira:

Criação de Ambiente: Não podemos ser ágeis e eficientes na entrega contínua de software se tivermos que esperar semanas ou meses para a disponibilização de ambientes.

Para esse ponto, a utilização de infraestrutura como código e infraestrutura como self-service apoiam na entrega da demanda quando ela for necessária.

Implantação de código: Não podemos ser ágeis e eficientes na entrega contínua de software se em uma release tivermos que executar 1000 tarefas manuais ou depender de documentações desatualizadas para executarmos etapas no processo.

Para esse ponto a utilização de ferramentas de CI/CD e Scripts para automações da implantação atendem bem a esse tipo de demanda.

Execução de Testes: Não podemos ser ágeis e eficientes na entrega de software se esperarmos semanas para a realização de testes manuais ou de pessoas detentoras de determinado conhecimento para a execução da atividade.

Para esse cenário, a criação de múltiplos cases de testes para a execução automatizada irá trazer segurança e poderá paralelizar o desenvolvimento de software com a execução de testes.

Ciclo de criação – Infraestrutura, implantação e testes

As 3 maneiras do DevOps apresentam conceitos e frameworks difundidos no mercado, porém em cada maneira são estabelecidos preceitos para a organização e potencialização das ações e práticas que suportam os processos Devops. A primeira maneira intitulada de fluxo utiliza de conceitos eficazes na estabilização das culturas e ações ágeis como tornar o trabalho visível, limitar o trabalho em andamento, reduzir o tamanho dos lotes e identificar e elevar as restrições a fim de direcionar e dar princípios que iram apoiar na melhoria e qualidade no processo de desenvolvimento de software.

Referências

Manual do Devops um livro de Gene Kim, Jez Humble, Patrick Debois e John Willis

Multitarefas: aumento da produtividade ou do estresse? Um artigo de Valter Machado