Eles são, na verdade, termos muito genéricos. Há muitas maneiras de interpretá-las, variando na literatura e como as pessoas as veem. Pegue tudo o que digo com um enorme grão de sal.
Normalmente, um Epic inclui uma funcionalidade muito global e não muito bem definida no seu software. É muito amplo. Em geral, ele será dividido em uma história ou recurso de usuário menor quando você tentar dar sentido a isso e torná-los adequados a uma iteração ágil. Exemplo:
Épico
- Permitir que o cliente gerencie sua própria conta através da Web
Recurso e História do Usuário são funcionalidades mais específicas, que você pode testar facilmente com testes de aceitação. Geralmente, é recomendável que eles sejam granulares o suficiente para caber em uma única iteração.
Os recursos costumam descrever o que seu software faz:
Recurso
- Editando as informações do cliente através do portal da web
As histórias de usuários tendem a expressar o que o usuário deseja fazer:
História do usuário
Como funcionário do banco,
Eu quero ser capaz de modificar as informações do cliente
para que eu possa mantê-lo atualizado.
Eu não acho que há realmente uma hierarquia entre os dois, mas você pode ter um, se quiser ou se encaixar como você trabalha. Uma história de usuário pode ser uma justificativa específica para um recurso ou uma maneira específica de fazê-lo. Ou pode ser o contrário. Um recurso pode ser uma maneira de realizar uma história do usuário. Ou eles podem denotar a mesma coisa. Você pode usar os dois: Histórias do usuário para definir o que agrega valor comercial e recurso para descrever a restrição do software.
História do usuário : como cliente, quero pagar com os cartões de créditos mais populares no Recurso para apoiar a API XML GOV-TAX-02 do governo .
Há também a questão do cenário, que geralmente é uma maneira de uma história de recurso / usuário ser executada. Eles geralmente mapeiam de forma limpa para um teste de aceitação específico. Por exemplo
Cenário : Retirando dinheiro
Dado que tenho $ 2000 na minha conta bancária
Quando eu retirar 100 $
Então recebo 100 $ em dinheiro.
E meu saldo é 1900 $
É assim que definimos esses termos onde trabalho . Essas definições estão longe de ser uma definição matemática ou um termo padronizado. É como a diferença entre um político de direita ou um político de esquerda. Depende de onde você mora. No Canadá, o que é considerado de direita pode ser considerado de esquerda nos Estados Unidos. É muito variável.
Sério, eu não me preocuparia muito com isso. O importante é que todos na equipe concordem com uma definição para que você possa entender um ao outro. Alguns métodos como o scrum tendem a defini-los mais formalmente, mas escolhem o trabalho para você e deixam o resto. Afinal, não é ágil sobre indivíduos e interações sobre processos e ferramentas e software de trabalho sobre documentação abrangente ?