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.

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.

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.

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