Diminua seu custo de mudança

Mantenha-se flexível reduzindo obstáculos à mudança

A mudança é sua melhor amiga. Quanto mais caro for fazer uma mudança, menos provável será que você a faça. E se seus concorrentes podem mudar mais rápido do que você, você está em grande desvantagem. Se a mudança se tornar muito cara, você está morto.

Aqui é onde ser enxuto realmente ajuda. A habilidade de mudar rapidamente é algo que pequenas equipes têm por padrão e que grandes equipes nunca podem ter. É aqui que os grandes invejam os pequenos. O que pode levar uma grande equipe em uma enorme organização semanas para mudar, pode levar apenas um dia em uma organização pequena e enxuta. Essa vantagem é inestimável. Mudanças baratas e rápidas são a arma secreta dos pequenos.

E lembre-se: Todo o dinheiro, todo o marketing, todas as pessoas do mundo não podem comprar a agilidade que você tem por ser pequeno.

Quando se trata de tecnologia web, a mudança deve ser fácil e barata. Se você não pode mudar rapidamente, você perderá espaço para alguém que pode. É por isso que você precisa buscar menos massa.

Emergência

Emergência é um dos princípios fundamentais da agilidade e é o mais próximo de pura magia. Propriedades emergentes não são projetadas ou construídas, elas simplesmente acontecem como um resultado dinâmico do resto do sistema. "Emergência" vem do latim do século 17, no sentido de uma "ocorrência imprevista". Você não pode planejar ou agendar isso, mas você pode cultivar um ambiente onde você permite que isso aconteça e você se beneficie.

Um exemplo clássico de emergência está no comportamento de revoada dos pássaros. Uma simulação de computador pode usar tão poucas quanto três regras simples (ao longo das linhas de "não colidir uns com os outros") e, de repente, você obtém um comportamento muito complexo à medida que a revoada se desloca graciosamente pelo céu, reformando-se ao redor de obstáculos, e assim por diante. Nenhum desse comportamento avançado (como reformar a mesma forma ao redor de um obstáculo) é especificado pelas regras; ele emerge da dinâmica do sistema.

Regras simples, como com a simulação dos pássaros, levam a um comportamento complexo. Regras complexas, como com a lei tributária na maioria dos países, levam a um comportamento estúpido.

Muitas práticas comuns de desenvolvimento de software têm o efeito colateral infeliz de eliminar qualquer chance de comportamento emergente. A maioria das tentativas de otimização — fixar algo muito explicitamente — reduz a amplitude e o escopo das interações e relacionamentos, que é a própria fonte da emergência. No exemplo da revoada de pássaros, como em um sistema bem projetado, são as interações e relacionamentos que criam o comportamento interessante.

Quanto mais apertamos as coisas, menos espaço há para uma solução criativa e emergente. Seja bloqueando requisitos antes de serem bem compreendidos, otimizando prematuramente o código ou inventando cenários complexos de navegação e fluxo de trabalho antes de permitir que os usuários finais brinquem com o sistema, o resultado é o mesmo: um sistema excessivamente complicado e estúpido, em vez de um sistema limpo e elegante que aproveita a emergência.

Mantenha as coisas pequenas. Mantenha as coisas simples. Deixe acontecer.

—Andrew Hunt, The Pragmatic Programmers