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