Anotações sobre o livro "User Story Mapping" de Jeff Patton
10
Agosto
2021
A técnica de se utilizar “histórias” como ganchos para iniciar conversas sobre usuários, requisitos, funcionalidades e soluções de produtos digitais, substituindo especificações formais e extensas, foi concebida por Kent Beck na década de 90 como parte de sua metodologia Extreme Programming.
Mais de uma década depois, buscando conciliar “histórias” de alto nível com outras extremamente detalhadas e técnicas, Jeff Patton desenvolveu a técnica que denominou “Story Mapping” e a apresentou no livro “User Story Mapping: Discover the Whole Story, Build the Right Product”.
Na obra, Jeff revela os mecanismos por trás da técnica de mapeamento de histórias, e revisa a origem e fundamentos do conceito “histórias”, que ao longo dos anos foram corrompidos e mal compreendidos.
Seguem abaixo algumas anotações sobre o livro.
User Story Mapping
Autores
Jeff Patton
Peter Economy
Índice
p. 1 - Capa
p. 2 - Foreword by Martin Fowler
p. 5 - Foreword by Alan Cooper
p. 8 - Foreword by Marty Cagan
p. 12 - Preface
p. 21 - Read This First
p. 42 - Chapter 1. The Big Picture
p. 65 - Chapter 2. Plan to Build Less
p. 81 - Chapter 3. Plan to Learn Faster
p. 96 - Chapter 4. Plan to Finish on Time
p. 113 - Chapter 5. You Already Know How
p. 138 - Chapter 6. The Real Story About Stories
p. 148 - Chapter 7. Telling Better Stories
p. 163 - Chapter 8. It's Not All on the Card
p. 177 - Chapter 9. The Card is Just the Beggining
p. 186 - Chapter 10. Bake Stories Like Cake
p. 194 - Chapter 11. Rock Breaking
p. 217 - Chapter 12. Rock Breakers
p. 230 - Chapter 13. Start with Opportunities
p. 245 - Chapter 14. Using Discovery to Build Shared Understanding
p. 269 - Chapter 15. Using Discovery for Validated Learning
p. 288 - Chapter 16. Refine, Define, and Build
p. 314 - Chapter 17. Stories Are Actually Like Asteroids
p. 322 - Chapter 18 - Learn from Everything You Build
p. 335 - The End, or Is It?
p. 336 - Acknowledgments
p. 340 - References
p. 342 - Index
p. 384 - Last page
---
p. 3 - Foreword By Martin Fowler
Quebrar trabalho em histórias pequenas tem vantagens para o usuário, que não precisa esperar anos para ver o avanço
Mas há consequências negativas: fácil de perder o panorama global. Pedaços sem coerência
Story mapping é uma técnica que preserva esse panorama global
Jeff Patton criou o método de "story mapping"
Maior decepção na última década do Ágil: muitos programadores enxergam histórias como um caminho de mão única, sendo que deveriam enxergá-las como gatilhos para iniciar conversação
Kent Beck concebeu a noção de "história"
p. 5 - Foreword by Alan Cooper
Opinião similar a de Martin Fowler, que é impossível construir "histórias" soltas e esperar que usuários gostem do produto
É muito difícil expressar um problema de design em termos de programação, e vice-e-versa
"Despite protestations to the contrary, Agile development is not a very useful design tool"
É fácil fazer pequenos produtos que as pessoas amam com times pequenos
O desafio é fazer produtos grandes que as pessoas amam
p. 8 - Foreword by Marty Cagan
Diferença entre times bons vs times ruins
p. 12 - Prefácio
Além de apresentar a técnica de Story Mapping, vai falar sobre os fundamentais de User Stories, pois são frequentemente má utilizadas
Armadilhas comuns com stories:
Perda do panorama global
Perda da noção do tempo total necessário para finalizar tudo
Perda de documentação, já que histórias são gatilhos para conversas informais
Times não finalizam dentro do tempo planejado, por falta de documentação explícita e bom planejamento
User stories escondem muitas partes invisíveis do sistema
São erros conceituais que nos fazem cair nas armadilhas acima
p. 16 - Quem deve ler esse livro?
PMs, UX Designers, PO, Business Analysts, Project Managers
Coaches de Ágil e Lean
p. 18 - Conteúdo dos capítulos
Capítulos 1 a 4 - Visão de alto nível de Story Mapping
Capítulo 5 - Exercício prático
Capítulos 6 a 12 - Fundamentos de "Story"
Capítulos 13 a 15 - Ciclo de vida de uma "Story" e gestão de backlog
Capítulos 16 a 18 - Utilização tática de stories (no momento de executar/consumir)
p. 21 - Read This First
O objetivo de utilizar "stories" não é escrever melhores histórias
O objetivo de desenvolver produtos não é construir produtos
Telefone sem fio: http://cakewrecks.com/
NASA: sistema métrico vs imperial
Documentos compartilhados não são entendimento compartilhado
Para avaliar entendimento: todos devem externalizar sua interpretação e ideias, e os outros devem fazer perguntas
Não há documentos perfeitos; não é nem culpa do escritor, nem do leitor
Documente o mínimo para começar, e em seguida passe para conversas, palavras e imagens para construir o entendimento compartilhado
Se você está utilizando histórias no desenvolvimento, e não estão conversando usando palavras e imagens, vocês estão fazendo errado
Documentos auxiliares são menos formais, mas existem igualmente
O mais importante não é o que está escrito, e sim o conteúdo que os documentos sinalizam
Grave vídeos de você explicando a história e as anotações
p. 35 - Software Isn't the Point
Output vs outcome
Velocity mede output
Sempre há mais para ser criado, do que o tempo ou recurso que temos disponível
Minimize output (saída), maximize outcome (resultados)
Choosers (quem escolhe/compra seu produto) vs users (usuário final do produto)
p. 42 - Chapter 1. The Big Picture
"I love Agile development! Every few weeks we see more working software. But it feels like I've lost the big picture."
Contar histórias; e não, escrever histórias
Story mapping é um pattern, e não uma invenção. Várias empresas e times chegaram a esse mesmo padrão
Ideia original de histórias: priorizar entendimento compartilhado em vez de documentos compartilhados
História sobre o Gary e o "flat backlog" para criar app de colaboração de composição de músicas comerciais
Talk and doc: enquanto conversa, escreva cartões para externalizar ideias
Valor de utilizar cartões: comunicação sem utilizar palavras. Reordenar cartões, etc
Foque em largura (horizontal, visão geral) em vez de profundidade (detalhes)
p. 65 - Chapter 2. Plan to Build Less
História sobre Globo.com
Possui deadlines ancorados a eventos externos, como eventos esportivo
Atrasar não é uma opção, portanto eles são muito bons em entregar no prazo
Não são mais rápidos que a média: e sim, espertos sobre fazer menos
Times estavam prestes a cair na "flat backlog trap": faltava a dependência entre os times
p. 75
Story mapping normalmente evidencia quantidade enorme de backlog
Trabalhe em releases limitados, que façam sentido
Foque em outcomes, não output
MVP não é o "pior produto que você pode lançar"
p. 80
MVP é o menor produto que você pode criar para comprovar ou desprovar uma hipótese
p. 82 - Chapter 3. Plan to Learn Faster
Uma das dificuldades em ser product owner é assumir a ideia de outra pessoa e ajudá-la a ter sucesso, ou então provar que provavelmente não será
Perguntas-chave:
* Qual é a grande ideia?
* Quem são os clientes?
* Quem são os usuários?
* Por que eles querem isso?
* Por que estamos construindo isso?
p. 91 - Como não fazer
Mostra exemplo de "releases" de um automóvel: primeiro apenas o pneu, depois chassi, depois o casco e por último o volante
Essa estratégia é fracassada, pois somente no 4º release temos algo utilizável
Alternativa: skate, patinete, bicicleta, motocicleta, carro
p. 96 - Chapter 4. Plan to Finish on Time
Estimativas são incertas
Mas quebrando em pedaços pequenos, conseguimos medir os pedaços que já concluímos, e como compensar as estimativas
Sinalize os riscos no story map
Mona Lisa: progressão geral vs incrementos
p. 113 - Chapter 5. You Already Know How
p. 138 - Chapter 6. The Real Story About Stories
Ideia original de "histórias" concebida por Kent Beck, autor do Extreme Programming, na década de 90
Reclamação mais comum de times é "requisitos ruins"
Todos podem ler o mesmo documento, mas têm um entendimento diferente dele
Requisitos descrevem "o que" queremos, e não "por que" queremos. Aumenta o risco de construir o produto errado
"Stories get their name from how they're supposed to be used, not from what you're trying to write down"
Card -> Conversation -> Confirmation (acceptance criteria agreement)
Conversa != monólogo
Acceptance criteria (story tests): lista de itens para validar o resultado
p. 148 - Telling Better Stories
Originalmente stories (e não user stories)
Ideia de template:
"As a [type of user]
I want to [do something]
So that I can [get some benefit]"
Cuidado para não virar um zumbi de template!
Relato de ThoughtWorks e backlog grooming em time de 25 pessoas
Template é uma ótima prática de aprendizado, mas não necessariamente uma boa prática definitiva
p. 158
Sobre o que conversar nas histórias:
* Quem
* O que
* Por que
* Contextualize o mundo fora do software
* O que pode dar errado
* Perguntas e hipóteses
* Alternativas de soluções
* Como
* Duração
p. 163 - Chapter 8. It's Not All on the Card
Pessoas diferentes do time == conversas diferentes
Product Owner ou Product Manager
!=
Project Manager
!=
Business Analyst
!=
User Experience Designer
!=
Developer
!=
Tester
Experiência de utilizar as paredes do escritório como "grandes telas" que irradiam cultura e informação permanentemente