Introduo Organizar e priorizar requisitos requer boa dose de determinao e pacincia. Sem falar no trabalho de lidar com diferentes interesses do time de negcios e o time de desenvolvimento. Como ento organizar os requisitos de forma que essa organizao seja clara e transparente para a organizao? Como organizar requisitos de forma que suas dependncias e prioridades possam ser claramente visualizadas pelo time? Como priorizar e conseguir conformidade no trabalho realizado? Bem, vamos ver uma tcnica bem interessante que voc pode utilizar no dia a dia. A tcnica se chama User Story Mapping, ou em portugus Mapa de Estrias de Usurios. Essa tcnica foi criada por Jeff Patton. Material necessrio Uma folha de flipchart ou uma parede em que voc possa escrever vontade Blocos de postits Canetas Antes de iniciar O trabalho de levantamento, organizao e priorizao de requisitos envolve product owners, usurios especialistas, desenvolvedores, analistas de negcios e outros. Convide pessoas do lado do negcio e pessoas de tecnologia. O ideal convocar at 12 pessoas para essa atividade. Mais que isso o resultado no ser to produtivo. Lembre-se que esta ser uma sesso de muito brainstorming e o tempo gasto pode variar muito. E isso varia em funo do tipo de soluo e pessoas envolvidas. Mas, inicialmente voc pode prever uma tarde para um levantamento inicial. Caso haja necessidade voc poder repetir a sesso. Comeando Para comear vamos relembrar o que uma user story. Uma user story uma breve descrio da necessidade do cliente descrio do produto descrio do comportamento da soluo um requisito de alto nvel
Engenharia de Requisitos Levantamento e Priorizao de Estrias de Usurios
Wedson Quintanilha da Silva Engenheiro de Software
O exemplo acima utiliza uma estrutura simplificada. Veja abaixo um exemplo mais completo que pode ser utilizado na criao das user stories. Como [Tipo de usurio], eu quero [ao, tarefa, etc.] para que eu possa [alcanar um objetivo]. Exemplo: Como vendedor, eu quero incluir pedido para que eu possa aumentar o faturamento. Voc pode criar seu prprio modelo de user stories. Mas no esquea dos princpios bsicos de uma user story. Uma ou duas sentenas no mximo So estimveis Podem mudar
Engenharia de Requisitos Levantamento e Priorizao de Estrias de Usurios
Wedson Quintanilha da Silva Engenheiro de Software
Vamos ao passo a passo para a criao do User Story Mapping. Est pronto? 1 Desenhe a figura abaixo onde o eixo y representa a criticidade e o eixo x a sequncia de uso.
2 Escreva as user stories. Aqui todo o time participa. Cada user story deve ser escrita em um postit diferente. A medida que as user stories so criadas os participantes devem fix-las na folha de flipchart ou na parede. importante notar aqui que esta uma sesso colaborativa, portanto, todos participam. Permita que cada participante tenha seu prprio bloco de postit e que cada participante escreva suas user stories. Evite que apenas uma pessoa fique responsvel pela criao das user stories enquanto os demais ficam assistindo. Essa atividade puro brainstorming. Dicas para escrever user stories: Voc pode optar por um modelo mais simples de user story. Se for o caso comece a descrio com um verbo. Exemplo: Incluir pedido Pense no que as pessoas fazem e no no que a soluo deve fazer.
Engenharia de Requisitos Levantamento e Priorizao de Estrias de Usurios
Wedson Quintanilha da Silva Engenheiro de Software
3 Escreva o usurio que executar cada user story. Aqui no nosso caso o VENDEDOR o usurio que executar a user story INCLUIR PEDIDO.
4 Defina a frequncia de ocorrncia para cada user story. Repare que aqui o time precisa pensar em cada user story como uma funcionalidade da soluo. E, como toda funcionalidade, ela executada de tempo em tempo. E justamente esse tempo que voc precisa identificar e definir para cada uma delas. Voc pode usar a tabela de frequncia de ocorrncia abaixo como referncia. Se a user story acontece a cada hora, ela ter peso 5 Se a user story acontece diariamente, ela ter peso 4 Se a user story acontece semanalmente, ela ter peso 3 Se a user story acontece mensalmente, ela ter peso 2 Se a user story acontece trimestralmente, ela ter peso 1 E assim por diante.
Engenharia de Requisitos Levantamento e Priorizao de Estrias de Usurios
Wedson Quintanilha da Silva Engenheiro de Software
5 Atribua um valor para cada user story. Lembre-se que quem coloca valor na user story o product owner. ele quem dir o quanto aquela funcionalidade importante para ele. Voc pode utilizar a tabela abaixo como referncia. Se o valor alto, ento o peso 3 Se o valor mdio, ento o peso 2 Se o valor baixo, ento o peso 1
6 Atribua uma pontuao para cada user story. Utilizando os valores de frequncia de ocorrncia e valor calcule a pontuao de acordo com a seguinte frmula: pontuao = frequncia + valor. Essa pontuao nos ajudar mais a frente na priorizao das user stories.
Engenharia de Requisitos Levantamento e Priorizao de Estrias de Usurios
Wedson Quintanilha da Silva Engenheiro de Software
7 Ordene as user stories em ordem cronolgica. Pense agora como se estivesse contando uma histria. E nessa histria voc precisa levar em considerao a ordem em que as user stories so executadas. Por exemplo, primeiro o usurio precisa realizar os cadastros, depois o usurio inclui o pedido, depois fatura e assim por diante. Ordene as user stories colocando uma ao lado da outra na horizontal. Algo bem interessante pode ocorrer neste momento. Pode ser que o time descubra que alguma user story est faltando. E este um dos benefcios dessa ferramenta. Com a ordenao voc identifica os gaps na soluo e evita surpresas no futuro. O time de desenvolvimento pode ajudar a identificar vrios desses gaps.
8 Priorize as user stories. A priorizao ser feita levando em considerao a pontuao calculada no passo 6. Arrume as user stories de cima para baixo, ou seja, inicie pelas de maior criticidade para as de menor criticidade, porm, procurando manter a ordem cronolgica das mesmas na horizontal.
Engenharia de Requisitos Levantamento e Priorizao de Estrias de Usurios
Wedson Quintanilha da Silva Engenheiro de Software
9 Identifique as quebras de fluxos. Essa identificao na verdade uma atividade de agrupamento das user stories em segmentos ou grupos. Mas para que servem essas quebras de fluxo? Elas servem para identificar quais unidades de negcio vo ser afetadas na medida em que o time de desenvolvimento vai enregando partes da soluo. Ajuda tambm a visualizar se a soluo j pode ser colocada nas mos do cliente e assim por diante. Identifique as quebras de fluxo traando linhas verticais. No se esquea de identificar cada fluxo.
10 Defina as releases. Para identificar as releases voc deve traar linhas horizontais agrupando assim blocos de user stories. No exemplo abaixo foram definidas trs releases. Veja como fica fcil visualizar o que ser entregue em cada uma delas.
Engenharia de Requisitos Levantamento e Priorizao de Estrias de Usurios
Wedson Quintanilha da Silva Engenheiro de Software
Finalizando O produto final dessa atividade de organizao e priorizao de requisitos utilizando User Story Mapping inclui Viso geral da soluo Funcionalidades Tipos de usurio Prioridade do backlog Definio das releases Cooperao do time de negcios com o time de desenvolvimento E muito mais. Mas, porque um mapa? Mais do apenas uma lista de requisitos, ou uma lista de user stories, uma mapa permitir Visualizar o fluxo ou cadeia de valor Visualizar o relacionamento de user stories mes com suas user stories filhas Confirmar se falta alguma user story Fornecer um contexto til para priorizao Planejar releases que entregam valor para o cliente Espero que voc tenha gostado desta ferramenta. Em breve postarei outras neste blog. At a prxima e grande abrao.