Qual é o propósito da cláusula 'so that' na definição da história do usuário?

10

Uma história de usuário pode ser definida em uma frase como:

As a <type of user> I want <some goal> so that <some reason>

Apenas o Google para 'fórmula da história do usuário' e os primeiros links propõem essa fórmula.

Minha pergunta é: qual é o propósito dessa cláusula? Existe para os gerentes? Existe para que os gerentes de projeto e as partes interessadas possam entender melhor a prioridade do item? Por que está aí?

Nota: Eu trabalhei com as a <type of user> I want <some goal>fórmula e funciona muito bem. Não notei nenhum problema no meu trabalho ao implementar esse formato, que é mais breve.

Saeed Neamati
fonte
6
Como usuário do SE, eu quero um unicórnio.
Piskvor saiu do prédio

Respostas:

19

O objetivo é evitar trabalho desnecessário, forçando o usuário / cliente a fornecer um benefício comercial sólido e tangível como uma razão para a existência desse recurso.

Não é incomum que esses recursos sejam adicionados apenas porque alguém achou que parecia legal ou porque outro software o possui, então o nosso também deve tê-lo. Na maioria das vezes, essas são pelo menos completamente desnecessárias, se não ativamente prejudiciais.

No entanto, geralmente é fácil identificar esses recursos, porque as pessoas que os propõem geralmente têm problemas em fornecer uma razão comercial convincente para eles.

Existe uma técnica chamada Popping The Why Stack , onde você pega a parte "so that" e pergunta "Why?", Depois pega a resposta e pergunta "Why?" novamente, recursivamente. Se, depois (digamos) de três a cinco "Por que", você não chegou a "porque nos dará dinheiro" ou "porque nos poupará dinheiro" (de preferência com uma descrição precisa de como exatamente isso vai acontecer), então não vale a pena implementar o recurso.

Algumas pessoas acreditam que isso é tão importante que, na verdade, colocam em primeiro lugar no modelo da história:

A fim de [...]

Como um [...]

Eu quero [...]

Há um ótimo exemplo de uma palestra de algumas pessoas da Thoughtworks: um de seus clientes queria que os relatórios impressos fossem formatados de uma maneira muito peculiar. Quando o consultor perguntou "Por que", eles disseram que dessa maneira eram mais fáceis de digitar novamente. Portanto, em vez de implementar o recurso de formatação de relatório, eles apenas transferiram os relatórios pela rede. Sem a cláusula "para que", eles ainda estariam imprimindo os papéis em um departamento, enviando-os por correio para o outro departamento e digitando-os novamente.

Jörg W Mittag
fonte
O que você descreveu é chamado de Cinco Porquês ( en.wikipedia.org/wiki/5_Whys ) e geralmente é útil nos campos de engenharia (de software), variando da engenharia de requisitos ao controle de qualidade e melhoria de processos. Provavelmente é uma boa habilidade para se desenvolver.
Thomas Owens
Adore a história da ThoughtWorks. Eu descobri que o "So that" é muito útil para fornecer contexto por trás da história e ajudar os desenvolvedores a fornecer uma solução melhor. Os analistas / clientes geralmente diminuem muito rapidamente a solução; fornecer aos desenvolvedores o contexto permite que eles pensem e projetem uma solução técnica que os analistas podem não ter considerado ou que podem não ser possíveis.
Mathias
7

O "para que" fornece uma razão para a meta.

Por exemplo, o objetivo pode ser exibir os números de vendas do mês passado. Você poderia trabalhar com isso, mas um motivo é necessário saber por que você deseja exibi-los para que você possa obter os requisitos mais profundos. O que eles querem fazer com os números de vendas ou clientes potenciais? Conhecer essas informações fornecerá mais informações sobre o aplicativo e mais chances de projetar uma interface do usuário que permita ao cliente fazer o que deseja.

Outro uso pelo motivo é priorizar histórias. Se você tem duas histórias:

Quero exibir os números de vendas do mês passado.
Quero exibir uma lista de clientes potenciais.

mas só tem os recursos para fazer um - qual deles você faz? Sem o motivo, você estaria apenas adivinhando e talvez não entregasse o caminho certo a tempo. Embora isso seja menos importante, o cliente deve dizer o que fazer primeiro, mas ocasionalmente não é esse o caso.

ChrisF
fonte
Eu não acho que se trata de priorizar histórias, mas sim de requisitos mais profundos. As histórias devem ser priorizadas pelo cliente. No entanto, o "para que" possa ser usado para obter requisitos adicionais (atributos funcionais, não funcionais e de qualidade) que agregarão valor ao usuário. O conceito de maximizar o valor agregado é um dos pontos fortes de muitos dos métodos ágeis, eu acho.
Thomas Owens
@ Thomas - bom ponto. Vou trocar os motivos - acho que a priorização existe, mas não tão importante.
ChrisF
1

Além do que foi dito, fornecer uma razão para os requisitos permite que você julgue a validade do requisito. O usuário pode querer coisas pelo motivo errado. Tendo o "para que" esclareça o motivo, permite ao analista validar que a solicitação é melhor atendida dessa maneira.

Exemplo:

A AI deseja poder selecionar funcionários de uma lista de todos os funcionários da empresa

O BI deseja poder selecionar funcionários de uma lista de todos os funcionários da empresa, para que eu possa excluir os que deixaram a empresa há 5 anos.

(B) não faz sentido, mesmo em uma organização média, mas você pode validar o requisito do usuário e propor outra maneira de o cliente atender ao requisito.

NoChance
fonte
+1 - ajuda a chegar à raiz do problema; caso contrário, você terá uma solução em potencial.
JeffO 5/09/11