The Three Ways – princípio das três maneiras

Em continuação aos posts sobre DevOps, o Three Ways é outro importante princípio (mencionado nos principais livros), descrevendo valores e filosofias que estruturam processos, práticas DevOps, bem como as etapas prescritivas. E assim, segue abaixo um resumo do princípio das três maneiras.

Primeira Maneira – Systems Thinking

primeira-maneira

Objetivo: acelerar o fluxo dos desenvolvedores (esquerda) para operações e clientes (direita). 

O foco é na performance do sistema como um todo, não em um específico departamento – silo. E em fluxos de valor de negócios que são ativados pela TI, desde a concepção até o valor entregue ao cliente.

Princípios

  • Tornar o trabalho visível
  • Reduzir os lotes de trabalho
  • Remover desperdícios e foco no cliente
  • Automatização das etapas manuais
  • Limitar WIP
  • Infra as code
  • Práticas de desenvolvimento

Os resultados do The First Way incluem:

  • Não passar um defeito conhecido ao downstream
  • Não permitir a otimização local p/ degradação global
  • Sempre buscar o aumento do fluxo
  • Sempre buscar um conhecimento profundo do sistema

Segunda Maneira – Amplify Feedback Loops
segunda-maneira

Objetivo: estabelecer um processo de feedback em todos os estágios do fluxo de valor (direita para esquerda).

A comunicação forte e monitoramento de infra e aplicações podem eliminar o finger-pointing. Os resultados incluem:

  • Compreender e responder a todos os clientes
  • Feedback loops amplificados e menores
  • Incorporando conhecimento onde é necessário

Princípios

  • GEMBA – management by walking around
  • Telemetria e informação disponível a todos
  • Desenvolvimento por hipóteses e testes A/B
  • Pair programming

Onde em seu processo existe demora desnecessária? Por que precisamos refazer um passo específico?

  • Telemetria
  • Feedback
  • SRE
  • Desenv. por hipóteses e testes A/B
  • Pull request e pair programming

Terceira Maneira – Continual Experimentation and Learning
terceira-maneira

Após dominar as duas primeiras maneiras, você pode agora experimentar e assumir riscos. Envolve a criação de uma cultura que promova:

  • Experimentação contínua (requer assumir riscos e aprendizado com os resultados)
  • Compreensão que repetição e prática são essenciais para o domínio

O propósito é óbvio: você não pode melhorar sem cometer nenhum erro. Os resultados incluem:

  • Dedicação a melhorias no trabalho diário
  • Rituais de recompensas aos times que assumem riscos
  • Introdução de falhas no sistema para aumentar a resiliência
  • Reunião de blameless post-mortem
  • Aprendizado com falhas
  • Chaos Monkey
  • Post Mortem
  • Game Days
  • Descobertas (chat automatizado, etc.)