As Histórias do Usuário evoluem ao longo do projeto, por isso é necessário um conjunto de técnicas iterativas para coletá-las. Mike Cohn descreveu em seu livro “User Stories Applied: For Agile Software Development” quatro técnicas para fazer estas coletas:
- Entrevistas com usuários: a melhor técnica para chegar à essência das necessidades de um usuário é através de perguntas que você faz a ele. Ao iniciar uma entrevista, informe ao usuário qual é o objetivo da entrevista e como ele poderá contribuir. Escolha os entrevistados certos, ou seja, aqueles que podem dar informações mais precisas. Se possível, entreviste vários usuários para o mesmo tema. A diversidade de visões pode ajudar no entendimento;
- Preenchimento de questionários: o preenchimento de questionário é uma técnica eficiente para coleta de informações, principalmente quando o número de usuários é muito grande. Faça um workshop para explicar o objetivo. O questionário deve ser de fácil preenchimento. Não o faça muito longo, pois respondê-lo pode ser cansativo e desinteressante. Estabeleça prazos para entrega. Ajude as pessoas com dúvidas sobre as questões;
- Observações de campo: observar como os usuários interagem com o software é uma ótima maneira para se obter idéias. As observações permitem capturar detalhes de como os usuários fazem suas atividades e tarefas. Respeite os horários e a privacidade dos observados, pois ao sentirem-se coagidos, negarão informações importantes;
- Workshops: o objetivo de um workshop é a quantidade e não a qualidade, ou seja, o propósito é identificar e escrever o máximo de Histórias do Usuário possíveis. Mantenha o foco no alto nível de abstração, não perca tempo demais discutindo um determinado assunto. Não despreze as idéias. Mesmo que algumas pareceram inúteis, elas darão vazão a outras . No final do workshop se terá uma visão mais clara do que deverá ser feito.
Estas técnicas podem ser aplicadas individualmente, mas o ideal é combiná-las para obter as informações necessárias para escrever as histórias.
Priorizando
A priorização das histórias ajuda a definir a ordem em que elas serão desenvolvidas. No entanto, este é um processo difícil de ser aplicado em algumas empresas porque o conceito de prioridade para cliente e desenvolvedores é diferente. Os desenvolvedores sempre irão considerar o lado técnico como: tempo para desenvolver, dificuldade técnica, tecnologia a ser utilizada, etc. Enquanto o cliente irá considerar o quanto a história representa para o seu negócio. No fim, o cliente sempre vence.
No Scrum, o Product Owner é o responsável por fazer a priorização das histórias. Entretanto, independente da metodologia ágil utilizada, os seguintes pontos precisam ser observados para uma priorização eficaz:
- Valor agregado: identificação do quanto a história agrega ao software e ao negócio do cliente;
- Impacto: identificação das partes do sistema que serão impactadas com a implementação da história, pois isto poderá elevar o custo dela;
- Tempo: informar ao cliente quanto tempo a equipe precisará para desenvolver a história. Em algumas situações, algo que o cliente diz ser de prioridade alta, passa a ser de prioridade baixa quando ele é informado que levará muito tempo para ser desenvolvido;
- Risco: identificação do risco que o negócio do cliente terá se a história não for desenvolvida. Por exemplo: suponha que o cliente tenha solicitado uma funcionalidade de prioridade baixa, mas por motivos fiscais, se a história não for implementada com urgência ele será multado. Neste caso, não há o que se discutir;
- Coesão: agrupar as histórias por tema para que sejam desenvolvidas em conjunto. Posto que, quanto maior a coesão, maior será o valor agregado ao negócio e ao desenvolvimento.
Se uma história estiver muito difícil para ser priorizada, divida-a em histórias menores. Desse modo a priorização será mais precisa.
E ai, gostou?
Deixe seu comentário, dúvida, ou crítica mais abaixo.
Até a próxima!