Otimização precoce tem sido um dos principais erros das empresas. Muitas tem tentado adotar a filosofia da Toyota sem se preocupar em qual é o real fator de seu sucesso. É importante lembrar que não basta otimizar. Não basta eliminar desperdício. Devemos eliminar desperdício sim, mas olhando um contexto mais elaborado de longo prazo. Temos que otimizar em direção à um objetivo claro e de longo prazo.
Tenho observado quantas empresas tem adotado Agile ou mesmo Lean. Muitos querem apenas seguir o hype. Outros querem de fato atingir um nível de qualidade e produtividade maior. O problema é que isso não é fácil. A Toyota tem sido “estudada” há muito tempo e mesmo assim, até hoje, nenhuma outra empresa conseguiu imitar sua capacidade de melhoria contínua e qualidade de processo. Isso porque na Toyota, a melhoria contínua é direcionada à um objetivo de longo prazo.
Vamos pensar na seguinte situação:
A empresa XPTO está desenvolvendo um sistema extremamente complexo e composto por vários softwares integrados. Parte desse desenvolvimento está sendo feito seguindo as premissas do TDD.
A equipe de desenvolvimento declara que, já que fazem TDD, não há a necessidade de testes manuais para QA. E que segundo a filosofia do Lean, devem reduzir os desperdícios no processo, logo, devem eliminar a etapa de QA.
A equipe de QA diz que precisa haver a etapa de QA, afinal de contas existe muita integração com sistemas legados e com dados de produção. Dizem que se não houver a etapa de QA sendo verificada manualmente, o rollout para produção será problemático e resultará em muito esforço e retrabalho para que tudo funcione. Além disso há sempre o risco de entrar em produção com dados ruins e gerar prejuízo na operação da empresa.
Nesse caso, caímos em um grande impasse. Um conflito, expresso na seguinte nuvem:
Do ponto de vista do pensamento “enxuto” (Lean), ambos estão corretos. Se levarmos em consideração a melhoria contínua como sendo algo que busca eliminar desperdício, teríamos que atender aos dois casos. Muitos declaram que a melhoria em lean significa “eliminar desperdícios”. Essa afirmação não incorreta, apenas incompleta. Melhor seria complementa-la, chegando em algo como:
Melhoria contínua de um processo quer dizer eliminar desperdício de forma direcionada e consciente, levando em consideração as consequências.
Nem sempre conseguimos (ou lembramos de) diferenciar o que merece ser melhorado, tendendo sempre a maximizar a eficiência de uma área às custas de uma outra área, deslocando as perdas entre elas ao invés de otimizar o todo. Já dizia Alvin Toffler:
Você tem que pensar nas coisas grandes enquanto está fazendo as coisas pequenas, de modo que todas as coisas pequenas sigam na direção correta.
Para conseguir o que o Alvin sugere, é preciso envolvimento da gestão no trabalho das pessoas. É preciso direcionamento estratégico. É preciso um cultura de melhoria contínua. Precisamos tomar cuidado para não atrapalhar as coisas no longo prazo, somente para otimizar o resultado de curto prazo.
Devemos cuidar para que a análise de custo e benefício seja uma ferramenta de otimização de processo e não de validação de decisões. O direcionamento estratégico é que deve servir para validar as decisões.

A primeira grande diferença é que o planejamento inicial demora alguns dias, uma semana ou duas no máximo. Esse é o tempo necessário para contextualizar todos os envolvidos e definir o objetivo comum do projeto. Comparado aos meses de levantamento de requisitos e preparação de documentos e diagramas do modelo waterfall, esse é um tempo bem pequeno.
Para que conseguir realizar um bom planejamento. O planejamento gera contexto e permite que as pessoas envolvidas tomem conhecimento do que deve ser feito e quando deve ser feito. É fundamental para que todos possam ser pró-ativos e caminhe na mesma direção, além de permitir que todos saibam quando estão chegando perto do objetivo. Mas para que isso aconteça, é fundamental que todos participem do planejamento, pois somente através da participação é que existe o comprometimento. É impossível alguém se comprometer a buscar um objetivo se ele não tiver participado da definição deste objetivo.
É bom que se determine os objetivos e metas do projeto, de forma que todos saibam, em alto nível, qual o resultado esperado do projeto. É importante determinar restrições de ambiente e expectativas gerais. É bom descrever, em 1 ou 2 folhas A4, qual é o software desejado. Chamamos este documento de visão geral. Ele deve ser escrito pelo cliente que, dentro do limite de 1 ou 2 folhas, deve descrever de forma abrangente, as partes mais importantes do software.