Você olha fixamente para seu notebook. Uma longa lista de histórias de usuários olha de volta para você.
Você embaralha algumas, tentando colocá-las em uma ordem sensata.
Você reordena constantemente a lista. Ou para ver todas as histórias relacionadas à funcionalidade A, ou para ver as histórias mais importantes em todas as funcionalidades. Se isso for mesmo possível.
De novo e de novo você se perde.
O que você precisa é de um Mapa de Histórias. Vamos ver como você cria um usando Mapeamento de Histórias, mas primeiro, vamos descobrir o que elas são.
Mapeamento de Histórias ou Mapeamento de Histórias de Usuários é uma técnica utilizada na descoberta do produto: esboçar um novo produto ou uma nova funcionalidade para um produto existente.
O resultado é um Mapa de Histórias: todas as histórias de usuários organizadas em grupos funcionais. Isto ajuda você a manter os olhos no panorama geral e ao mesmo tempo fornece todos os detalhes de toda a aplicação.
O principal objetivo do Mapeamento de Histórias é facilitar a descoberta de produtos e a priorização do trabalho de desenvolvimento. Isto se consegue colocando as atividades e tarefas dos usuários em um mapa que serve para mantê-los em contexto.
O Mapa de Histórias sempre mostra como cada história individual se encaixa em toda a aplicação. E isto facilita a identificação de lacunas e a decisão da importância de uma sobre as outras.
O Mapeamento de Histórias sustenta dois valores do Manifesto Agile. “Colaboração do cliente sobre negociação do contrato” e “Responder à mudança sobre seguir um plano”.
Você obtém os melhores resultados quando colabora com um (futuro) usuário ou com um especialista de domínio. Alguém que está intimamente familiarizado com o trabalho que sua aplicação deve suportar e com os problemas a serem resolvidos.
Usando o Story Mapeamento de Histórias, é fácil responder às mudanças. Porque quando você adiciona uma nova história de usuário, ou muda ou remove uma já existente, é fácil identificar o que mais precisa ser adicionado, alterado ou removido.
O Mapeamento de Histórias lhe proporciona uma série de benefícios diretos e indiretos.
Ter o panorama geral na ponta de seus dedos
Ter o panorama geral na ponta de seus dedos
As armadilhas e erros mais importantes com o Mapeamento de Histórias são:
Identificar as grandes histórias, as amplas atividades do usuário que sua aplicação precisa suportar. Elas são grandes histórias porque possuem muitas etapas. Estas etapas não precisam ter uma ordem ou fluxo de trabalho específico. Na verdade, muitas atividades do usuário têm etapas que um usuário fará em momentos diferentes e em horários diferentes.
Escreva cada atividade em um cartão. Organize-as em uma ordem que faça sentido para o usuário. Se alguém falar em fazer uma atividade e depois outra, organize-as nessa ordem. Se as atividades não forem feitas uma após a outra, simplesmente use a ordem que o usuário fala sobre elas. Isso ajudará a contar a história da aplicação para outros.
Digamos que você está construindo um site do Clube de Eventos Divertidos. Os visitantes podem procurar por eventos divertidos para participar. Os membros podem participar e sediar eventos. E a equipe por trás do site serve como moderadores e verifica se os novos eventos estão em conformidade com as diretrizes.
As grandes rochas deste site, as atividades dos usuários, poderiam então ficar assim.
Divida a história de cada atividade do usuário em histórias menores, as tarefas do usuário. Coloque as tarefas do usuário sob a atividade a que pertencem e organize-as na mesma direção que as atividades e na ordem que faz sentido para o usuário.
Para o Clube de Eventos Divertidos, ficaria assim.
Agora você tem o que é chamado de espinha dorsal do seu Mapa de Histórias.
A maioria das tarefas do usuário possui etapas ou subtarefas independentes próprias. Você coloca essas subtarefas abaixo (se você estivesse indo horizontalmente) da tarefa do usuário à qual elas pertencem.
Isso ficaria assim.
Tanto as tarefas quanto as subtarefas do usuário se tornam as histórias de usuário que você implementará. Afinal, um usuário ainda precisa selecionar um evento de uma lista para ver seus detalhes ou juntar-se a ele imediatamente.
Quando você estiver percorrendo o mapa com alguém, aproveite a oportunidade para fazer anotações no Mapa de Histórias com outras informações que você ouvir. Pain points no sistema atual, oportunidades pelas quais um usuário tem esperado. Casos de limite e restrições que você precisa levar em conta. Escreva-os em um adesivo e coloque-os no cartão relevante.
Há pouco sentido em priorizar as atividades do usuário. Além das atividades que não serão usadas diariamente, é altamente provável que algo de cada atividade seja necessário para criar um conjunto de trabalho.
Portanto, concentre-se na priorização das tarefas e subtarefas do usuário dentro de cada atividade. A vantagem adicional é que você não precisa pensar sobre a importância relativa das tarefas pertencentes a diferentes atividades.
Em nosso exemplo do Clube de Eventos Divertidos, as subtarefas já estão em ordem de importância. Um pouco de otimização prematura por parte de seu autor.
Selecione as tarefas de cada atividade que são essenciais para criar uma primeira versão que funcione de ponta a ponta, mesmo que ainda seja de uma forma muito rudimentar. Esse é o seu MVP, seu Minimum Viable Product (Produto Mínimo Viável).
Planeje seus releases posteriores priorizando as tarefas restantes. Depende inteiramente de como você quer avançar.
Você pode optar por priorizar as histórias de maior valor de várias ou mesmo de todas as atividades do usuário. Você também pode optar por se concentrar em uma única atividade e priorizar todas as histórias de maior valor, exceto as de menor valor. E talvez os executivos de sua empresa queiram levar outros aspectos em consideração. Eles estão na melhor posição para decidir quais funcionalidades e histórias fazem um bom release.
Em vez de traçar linhas entre as histórias para marcar quais vão para lançamentos posteriores, você também pode reorganizar o mapa para mostrar lançamentos como intervalos horizontais de histórias.
O Mapeamento de Histórias não é apenas para novas aplicações. Você pode usá-lo também para aplicações existentes.
Para ajudá-lo a entender o que uma aplicação faz e recriar seu grande panorama para que você possa tirar proveito disso ao seguir em frente.
E, claro, para mapear novas características e colocá-las em contexto com a aplicação existente.
Se você não puder (não for permitido) construir primeiro um Mapa de Histórias completo da aplicação existente, ao menos coloque todas as atividades existentes do usuário em prática.
Isto lhe dará o contexto para novas funcionalidades.
E também lhe dará um lugar para colocar as tarefas que você precisa adicionar ou alterar nas atividades existentes do usuário. Por exemplo, quando você cria um novo recurso para enviar e-mails direcionados. Você precisará adicionar a seleção de múltiplos contatos na lista de contatos existentes. E você provavelmente precisará adicionar alguns recursos extras de filtragem também.