Existem muitas coisas que só se aprender na prática, depois de apanhar muito. Uma das coisas que eu –creio que- aprendi desta forma é como lidar com um showcase (ou Sprint Review, se você insiste).
Um showcase acontece geralmente no último dia de uma iteração. Ele serve para que o time apresente aos interessados –usuários, patrocinadores, pessoas não diretamente envolvidas no projeto, etc.- o que foi feito nesta iteração.
Eu costuma lidar como showcases como o momento onde o time e o usuário interagiam, onde o usuário via o produto final como um todo, dava feedback para o time e aprovava ou rejeitava histórias.
Péssima idéia. Todos os pontos acima são extremamente importantes mas eles não devem acontecer durante o showcase e sim durante toda a iteração.
O maior problema ao utilizar o showcase como único/principal ponto de interação é que você acaba tendo um big-bang feedback. Ao invés de colher feedback iterativamente no decorrer do período, de uma maneira que o time possa agir para consertar possíveis problemas, você recebe feedback em lote sobre tudo que foi feito naquela iteração de uma só vez. Não só isso pode significar excesso de informação bem como certamente vai frustrar o time e, principalmente, o usuário já que quando o feedback chega já é o fim da iteração e tarde demais para agir. Fica para a próxima.
E um problema parecido é o planejamento em big-bang, coisa que muita gente faz no seu Iteration Planning Meeting (IPM, ou Sprint Planning I & II se você realmente vai continuar insistindo). Em muitas equipes que conheço este é basicamente o único momento onde se planeja e prioriza uma iteração.
Combinando os dois problemas você tem um cenário extremamente frustrante: o usuário faz um grande planejamento, sai por duas semanas e volta para ver se seu plano foi cumprido. Se o time não conseguiu fazer tudo que ali estava definido o usuário fica frustrado e começa a desconfiar de tudo e de todos. Este tipo de situação é péssimo para qualquer tipo de empresa mas para nós, consultores, ele é simplesmente inaceitável.
O que eu aprendi com os mais experientes gerentes de projetos que já trabalhei é que em um showcase não podem haver surpresas. O cliente deve dar feedback sobre cada história e acontecimento individualmente, e durante a iteração. Na minha palestra no Rio mês passado eu falei brevemente sobre o “modelo do sanduíche”, melhor explicado aqui. Esta é a melhor maneira que eu conheço para ter certeza de que não haverão surpresas durante o desenvolvimento: para cada história -individualmente!- o usuário planeja junto com o time o que vai ser feito e depois verifica e aprova ou rejeita o resultado.
É claro que isto funciona melhor quando o cliente está presente o tempo todo, mas isto não é estritamente necessário. Se você possui um cliente fisicamente distante pode procurar outras maneiras de receber feedback frequente, coisas simples como fazer deploy constante para um servidor e mandar um email para o usuário pedindo para ele testar uma nova história neste ambiente. Só tenha certeza que seu usuário viu, aprovou e está ciente dos possíveis problemas e eventuais workarounds antes do showcase. É melhor isso do que criar um banho de sangue quinzenal.
Um showcase deve ter foco em mostrar para todas as partes interessadas o progresso feito, nunca em aprovar ou rejeitar histórias. Re-lembre a todos de onde viemos, onde estamos e para onde vamos. É claro que num projeto sadio sempre vai haver feedback vindo de múltiplas partes durante esta sessão, e isto é bom, mas um showcase não deve ter foco em receber feedback mas sim mostrar a evolução do projeto.
Existe todo um movimento de pessoas que prega que iterações são ruins. Um dos argumentos utilizados por esta escola de pensamento é exatamente de que o feedback em uma iteração tende a ficar apenas nos intervalos, não sendo frequente o suficiente. As pessoas vão para um modelo sem iterações e dizem que estão “livres da cerimônia” e que agora feedback e valor fluem o tempo todo. Bom, talvez o problema não seja com iterações em si mas sim na maneira como você as modela…