Devemos nos questionar sobre o seguinte: Ter visão do todo significa conhecer todos os itens no maior nível de detalhes? É preciso desenhar milhões de UML, prototipar telas, escrever, escrever, escrever....?
Ainda ontem, vi o desenho da monalisa (mais uma vez) e me lembrei disso... Eu estou vendo como será o produto só não sei ainda os pequenos detalhes! Lógico que muitas pessoas vão dizer que pequenos detalhes fazem a grande diferença! E fazem mesmo, mas fazem tanta diferença que são mudados o tempo todo, então para que perder tempo com algo que será mudado o tempo todo? Devemos trabalhar junto ao Product Owner (cliente), fazendo entregas constantes mostrando como está ficando o produto que ele quer, pois cada detalhe que precisar ser ajustado, será muito mais fácil se ele ainda não estiver 100% completo.
Pensando em coisas mais concretas do que software, pense no seguinte: Você vai construir uma nova parede em sua casa. Você ao pedreio que quer uma parede 2x2 e diz que vai ter 2 tomadas nela, dividas igualmente neste espaço. Bom muito simples, mas pense que enquanto ele está fazendo a parede vc foi comprar aquele super sofá, quando ele terminou vc colocou o sofá no lugar e viu que ele tampou as duas tomadas! Agora é tarde, para alterar os locais destas tomadas você vai pagar um alto custo (e se encomodar).
Se você estivesse partindo de princípio ágeis (Scrum), você teria visto como estaria ficando cada entrega da parede, e quando o pedreiro estivesse mostrando a parede sem acabamento (reboco) mas com as tomadas, você viria que estavam erradas e pediria para reposicionar. Sairia muito mais barato e vc não teria grandes dores de cabeça.
Esta é a ideia de trabalhar utilizando Scrum. Entregas constantes mostrando ao cliente como o produto está ficando. Você conhece o todo, mas não precisa de muitas especificidades, não precisa fazer trabalho que não será de grande valor agregado. Claro que existem documentações importantes e nós termos várias! Mas vamos deixar isto para outros posts.
Abraços!