O refinamento é uma das cerimônias mais importantes num fluxo de desenvolvimento de produto. É nessa cerimônia que temos a chance de diminuir incertezas e a complexidade nas histórias que decidimos priorizar para desenvolvimento.
É muito importante que se diminua complexidade, pois todo item com esforço muito grande que entra no fluxo de desenvolvimento, tem um alto risco de aumentar muito o Lead Time (já falei sobre a importância de um PM entender o Lead Time nesse texto) porque nunca é só desenvolver, esse código terá que ser revisado, testado e depois colocado em produção. Quanto maior a unidade de esforço, maior o risco também de subir bugs porque a solução vai se tornando mais complexa, é um efeito natural e que vai acontecer em algum momento.
É muito importante que se diminua a incerteza no máximo possível, porque quando se tem incerteza sobre os critérios de aceite, há uma grande chance do item travar no meio do desenvolvimento quando essas indefinições se concretizam. Item travado no fluxo, lead time aumenta e consequentemente demora mais pra entregar valor ou validar experimentos.
A matriz de complexidade e incerteza
Uma vez a galera da antiga Plataformatec que estava prestando uma consultoria de agilidade para a Vindi, mostrou essa matriz:
E, utilizando ela em todos os seus refinamentos, vai te ajudar muito e os desenvolvedores, metodicamente, a entender se uma história tem complexidade e esforço aceitáveis para entrar no fluxo de desenvolvimento.
Como vocês podem ver, se o item de trabalho não estiver nos quadrantes 1, 2, 3 ou 4 é um indicador que se precisa remover complexidade ou incerteza e nos piores, casos os dois. É uma ótima ferramenta que recomendo utilizar em todos os refinamentos, sem exceção. Tornar o refinamento metódico é algo que ajuda muito a fazer com que ele seja mais efetivo e então, conseguimos diminuir o lead time.