O principal motivo para 20% do tempo é manter a utilização da capacidade em 80%, e não em 100%.
Você pode pensar em uma organização de desenvolvimento de software como um sistema que transforma solicitações de recursos em recursos desenvolvidos. Você pode modelar seu comportamento usando a teoria de filas .
TEORIA
Se as solicitações chegarem mais rapidamente do que o sistema pode atendê-las, elas serão colocadas na fila. Quando as chegadas são mais lentas, o tamanho da fila diminui. Como os processos de chegada e serviço são aleatórios, o tamanho da fila muda aleatoriamente com o tempo.
Os inclinados matematicamente podem perguntar sobre essa "aleatoriedade": deve haver alguma distribuição de probabilidade; então, qual será o tamanho da fila, em média? A matemática (teoria das filas) tem uma resposta para isso: se os processos de chegada e de serviço são Markov, então N = rho ^ 2 / (1-rho).
(Onde rho é o coeficiente de utilização igual à taxa de serviço e taxas de chegada. Se os processos não são de Markov, a matemática é mais complicada, mas não altera as conclusões.)
Se você plotar esta função, poderá ver que o comprimento médio da fila permanece baixo enquanto a utilização é de 0,8 , depois aumenta acentuadamente e vai para o infinito. Você pode entender isso intuitivamente pensando na CPU do seu computador: quando sua utilização se aproxima de 100%, o computador deixa de responder.
PRÁTICA
A economia do desenvolvimento de software é tal que as empresas de software incorrem em grandes custos quando suas filas estão em estados de alta fila. Isso inclui oportunidades perdidas de mercado, produtos obsoletos, projetos atrasados e desperdícios causados pela construção de recursos em antecipação à demanda.
O tempo de 20% é, portanto, a resposta científica ao problema de otimizar os resultados econômicos: evite os estados de fila alta, evitando as taxas de utilização que os causam. É essencialmente a folga que mantém o sistema responsivo.
Várias conclusões práticas seguem imediatamente:
- se você está pensando em 20% do tempo e está fazendo contabilidade de custos (o tempo dos desenvolvedores custa X, mas / e a empresa pode / não pode pagar), está fazendo errado.
- se você está alocando 20% a uma sexta-feira toda semana, está fazendo errado
- se você estiver configurando um sistema de envio / revisão / aprovação de proposta de projeto em 20%, estará fazendo algo errado
- se você está preenchendo folhas de ponto, está fazendo errado
- se você estiver usando a inovação como motivador por 20% do tempo, estará fazendo errado. Embora os novos produtos tenham saído de 20% dos projetos, eles não eram o objetivo. Se sua empresa não pode inovar durante o horário comercial, isso é um problema!
- 20% do tempo não é sobre criatividade. Não diga que você liberará sua criatividade com 20% de tempo, pergunte por que você ainda não é criativo o suficiente durante o horário comercial.
RESPOSTAS ÀS PERGUNTAS NOS COMENTÁRIOS
Dan , você acertou e descreveu com precisão o erro cometido por muitos. Você não pode escolher sua porcentagem de utilização, porque é uma variável de saída. É uma proporção de características de dois processos, por isso é o que é porque os processos são do jeito que são. Uma organização tem influência sobre os dois processos; combinar capacidade e demanda é um dos problemas difíceis abordados pelo corpo de conhecimento de desenvolvimento de software lean. A utilização é um dos indicadores de quão bem esse problema foi resolvido em uma organização. O Slack surge à medida que sua iniciativa lean progride e você remove o desperdício do fluxo de valor. Mas se você exige 20% de tempo, acaba na mesma armadilha de utilização com menos capacidade disponível.
Kim , ainda é parcialmente uma coisa cultural. A referência cultural mais próxima que consigo pensar é o nível sinérgico do chamado modelo Marshall de mudança organizacional. Ele surge no final de transformações lean bem-sucedidas ou está presente em organizações criadas lean desde o início. ( Aqui está um link para o white paper de Bob Marshall (PDF) .)
REFERÊNCIAS
A lógica acima é bem suportada na literatura de engenharia de software. Mary e Tom Poppendieck sugeriram isso em seu livro de 2006 Implementing Lean Software Development . Donald Reinertsen, em seu livro de 2009, Princípios do fluxo de desenvolvimento de produtos (capítulo 3), oferece um tratamento completo desse assunto, com fórmulas e gráficos.