Histórias de usuários: o que são, por que e como usá-los

Agileuser Stories 1 1

Histórias de Usuários: O Que São e Por Que e Como Utilizá-las

Entãooo. Histórias de Usuários. Você conhece histórias. Você cresceu com elas. Como todos nós crescemos. As histórias e os contos têm um longo histórico na história humana. Mas histórias de usuários? Do que se trata? Bem, vamos dar uma olhada mais de perto nelas. O que são e por que e como você as usa no desenvolvimento Agile.

O Que é Uma História de Usuário?

Em Agile, uma história de usuário é uma descrição curta, informal e em linguagem simples do que um usuário quer fazer dentro de um produto de software para obter algo que ele considere valioso. As histórias de usuários normalmente seguem o padrão de papel-função-benefício (ou modelo):
  • Como um [tipo de usuário],
  • eu quero [uma ação]
  • para que [um benefício/valor]

Como a menor unidade de trabalho em um ambiente Agile, as histórias de usuários são uma ferramenta chave no desenvolvimento incremental.

Por Que Usar Histórias de Usuários? Quais São Seus Benefícios?

Com histórias de usuários, você coloca os usuários no centro da conversa em torno do que adicionar ou alterar em um produto de software. Elas são a encarnação do primeiro princípio por trás do Manifesto Agile (ênfase minha):

Com histórias de usuários, você dá a uma equipe de desenvolvimento o contexto e o porquê do que eles estão desenvolvendo. Fazer isso os ajuda a entender como eles estão fornecendo valor para o negócio e para manter o usuário/cliente no foco das atenções.

As histórias de usuários fornecem a essência necessária para priorizá-los.

Não há necessidade de acrescentar detalhes, tais como requisitos, até que você decida o momento de implementá-los. Além talvez do que Mike Cohn chama de condições de satisfação com as quais um usuário pode expandir e explicar conceitos. Você adiciona outros detalhes à medida que se aproxima da implementação da história. Por exemplo, durante a fase de exploração em Behavior Driven Development (BDD).

A brevidade lhe permite mudar de ideia até o último momento (responsável) possível sem desperdiçar muito esforço. Isto o ajuda com o segundo princípio do Manifesto Agile:

“Esteja aberto a mudar os requisitos, mesmo tarde no desenvolvimento. Os processos ágeis alavancam alterações para a vantagem competitiva proporcionada aos clientes”.

A natureza concisa e o foco no usuário das histórias de usuários também ajudam a separar quem lida com o que você vai desenvolver (cliente ou gerente de produto) e quem lida com o como você vai fazer (desenvolvedores).

E finalmente, como as histórias de usuários são pequenas unidades de trabalho auto-sustentadas, você desfrutará de muitas pequenas vitórias ao completar uma após a outra. Isso é bom para a construção de momentum.

Como Não se Beneficiar de Histórias de Usuários – Erros Comuns?

Erros comuns e clássicos ao trabalhar com histórias de usuários são:

  • Começando com um documento de requisitos criado de uma forma não Agile e terminando com histórias forçadas.
  • Adicionando detalhes e requisitos muito cedo. Histórias prestes a serem implementadas precisam do maior nível de detalhes e clareza. Histórias que virão logo podem precisar de menos. E histórias com mais de 2 ou 3 iterações não precisam de nenhum.
  • Não conversar sobre a história com todos os interessados, clientes, usuários, desenvolvedores, testadores, profissionais de negócios, etc. antes de iniciar a implementação. Esta conversa é essencial para acrescentar de forma colaborativa os detalhes e os critérios de aceitação que impedirão o retrabalho.

O Que é Uma Boa História de Usuário?

Em 2003, Bill Wake introduziu o INVEST para ajudá-lo a lembrar as características de uma boa história de usuário:

  • Independente. Você quer que as histórias dos usuários sejam independentes umas das outras para que você possa movimentá-las livremente em torno do seu backlog do produto como uma mudança de prioridades.
  • Negociável. Você estabelece os detalhes de uma história de usuário em colaboração entre seu cliente e a equipe que irá implementá-la. Esta colaboração inclui a negociação do escopo: o que a implementação vai e não vai incluir.
  • Valiosa. Uma boa história de usuário tem valor para o cliente (que pode ser um usuário interno). Sem esse valor, não vale a pena colocar nenhum esforço na história.
  • Estimável. Se você não pode estimar uma história, significa que você ainda não entendeu o escopo bem o suficiente, ou o escopo é muito grande para estimar de forma fácil. Você não precisa de estimativas exatas, mas quando você pode estimar uma história, ela também é mais negociável. Além disso, você será capaz de diferenciar entre histórias valiosas de baixo esforço e histórias não tão valiosas de alto esforço.
  • Pequena (Small). Você quer que o esforço para implementar uma história de usuário seja pequeno. No máximo algumas semanas (por uma pessoa), embora muitas equipes usem “alguns dias” como seu limite. As histórias menores são mais fáceis de estimar. As histórias grandes são mais difíceis de estimar e, portanto, são menos negociáveis.
  • Testável. Se seu cliente, em colaboração e com a ajuda da equipe de implementação, não pode lhe dizer como verificar o que ele(a) quer, você ainda não criou clareza suficiente sobre a história. Escrever os critérios de aceitação, também conhecidos como especificação por exemplo no BDD, antes de implementar a história, torna uma equipe mais produtiva, evitando retrabalho como resultado de mal-entendidos.

Escrever Histórias de Usuários não é o Ponto

O ponto é a conversa entre usuários, profissionais de negócios, desenvolvedores e testadores. É essa conversa, o vai e vem entre as diferentes perspectivas de cada participante, que lhe trará soluções melhores, mais simples e mais valiosas para os problemas dos usuários. As histórias de usuários que você escreve são o meio para comunicá-las e para manter o foco e o valor para o usuário durante o desenvolvimento.

Como Escrever uma História de Usuário em 4 Passos Simples

  1. Comece no Final

O desenvolvimento ágil tem tudo a ver com a entrega de software valioso que satisfaça as necessidades dos clientes. Então é aí que você começa: o objetivo final, ou valor, que um usuário está procurando.

Pode ajudar a pensar nisso em termos do problema que ele(a) está procurando resolver.

  1. Trabalhe de Trás Para Frente

Com o usuário e o objetivo final claramente em mente, você trabalha os passos que um usuário precisaria tomar para atingir seu objetivo.

Tentar descobrir o primeiro passo para alcançar uma meta é difícil. Você simplesmente tem muitas opções para escolher e nenhuma maneira de escolher uma em vez da outra.

A saída é trabalhar de trás para frente a partir da meta.

Digamos que sua meta seja saborear um shake de morango. Então você começa por aí: um shake de morango finalizado, pronto para que você possa saborear.

O que você precisa para isso? Bem, obviamente um copo, um canudo, um shake e juntar tudo.

  • pegar um copo
  • pegar um canudo grosso
  • fazer o shake
  • despejar o shake no copo
  • colocar o canudo no shake

Você tem um copo adequado, mas não tem canudos grossos, então

  • comprar canudos grossos
Você nunca fez um shake, mas você sabe que precisa de um liquidificador, então
  • pegar o liquidificador
  • seguir a receita
Para seguir uma receita, você precisa
  • encontrar uma receita
  • comprar os ingredientes especificados na receita
  1. Pequeno é Bonito

Os grandes passos são feras complicadas que escondem suposições e detalhes. Quando você se vê desejando acrescentar detalhes a um passo para esclarecê-lo, muitas vezes é mais sábio dividir o passo em passos menores.

Veja o exemplo do ‘fazer o shake’ na seção anterior. A menos que todos saibam exatamente como fazer o shake que você tem em mente, é melhor dividi-lo em passos menores.

  1. Cartões de Papel e Caneta

Quando você estiver seguro sobre os passos e o valor que eles trazem para a solução do problema que você estava, você está pronto para escrever as histórias dos usuários. Uma história para cada passo.

Escrever histórias em cartões, uma por cartão, torna as histórias mais tangíveis. Você pode manipular os cartões diretamente: movê-los sobre uma mesa ou um quadro. E essa ainda é a maneira mais fácil de priorizar e agendar.

Exemplos de Histórias de Usuários

Aqui estão alguns exemplos de histórias de usuários para tornar tudo mais concreto.

  • Como gerente de produto com uma equipe remota, quero colocar histórias de usuários em um quadro digital, para que todos possamos ver a história que estamos discutindo em uma reunião online.
  • Como gerente de produto com uma equipe remota, quero convidar membros da minha equipe e até 10 outros para uma reunião online, para que possamos colaborar para detalhar as histórias de usuários que serão implementadas em breve.
  • Como gerente de produto com uma equipe remota, quero criar e editar uma lista com os membros de minha equipe, para que eu possa adicionar todos eles a um convite sem ter que adicioná-los individualmente.

Como Desenvolver Software a partir de Histórias de Usuários

As histórias de usuários são narrativas de alto nível sem os detalhes necessários para os desenvolvedores e testadores.

Portanto, quando uma história de usuário estiver chegando para implementação breve, você precisa adicionar os detalhes que manterão todos no caminho certo e evitarão o (re)trabalho desnecessário.

Ron Jeffries criou os 3Cs, 3 aspectos essenciais, de trabalhar com e desenvolver software, começando com as histórias de usuários.

Quais São os 3 Cs nas Histórias de Usuários

  • Cartão

Você escreve suas histórias em cartões e as utiliza para priorizar, estimar e agendar. Você pode adicionar notas sobre prioridades e custos, mas você deixa outros detalhes para a…

  • Conversa
Você conduz conversas, discussões abertas, entre o cliente e aqueles envolvidos na implementação para apresentar requisitos específicos e proporcionar a clareza necessária para a implementação. Exemplos concretos são a melhor maneira de proporcionar clareza. E exemplos executáveis dão a você…
  • Confirmação
A confirmação são os testes de aceitação que confirmam se os critérios de aceitação são atendidos pelo software. Os critérios de aceitação são os exemplos da conversa. De preferência em uma forma executável, pois os exemplos executáveis poupam muito esforço na construção dos testes de aceitação.

Perguntas Frequentes Sobre Histórias de Usuários

P: Qual é a diferença entre as histórias de usuários e as funcionalidades?

As histórias de usuários descrevem o valor que um tipo específico de usuário obtém de uma atividade. As funcionalidades são sobre o que o software pode fazer. É bem possível, e infelizmente muito comum, especificar funcionalidades que não trazem nenhum valor.

P: Qual é a diferença entre as histórias de usuários e os requisitos?

As histórias de usuários descrevem o valor que um tipo específico de usuário obtém de uma atividade. Os requisitos são sobre o que o software tem que fazer e como ele faz isso. Geralmente, os requisitos estabelecem os critérios que as funcionalidades do software precisam satisfazer. Geralmente, os requisitos são adicionados a uma história de usuário na forma de critérios de aceitação, através da colaboração com seu cliente. Em outras palavras: uma história de usuário tem requisitos na forma de critérios de aceitação.

P: Quem cria histórias de usuários em Agile?

No Agile, criar e escrever histórias de usuários é um esforço colaborativo. Você obtém o máximo de benefícios das histórias de usuários quando elas são criadas em discussões abertas entre clientes, profissionais de negócios, desenvolvedores, testadores, designers, e outras pessoas com interesse no software.

Torne-se um Contador de Histórias e Impressione Seus Clientes

Como você agora sabe, as histórias de usuários são uma ótima maneira de manter todos concentrados em oferecer valor para seus usuários. Hã, clientes. Hã, ambos. E a realização de conversas colaborativas em torno das histórias de usuários garantirá que você crie soluções melhores, mais simples e mais valiosas. Soluções que são exatamente o que seus usuários precisam. Acabaram-se as adivinhações e as funcionalidades que soaram bem, mas ninguém está interessado. Portanto, pare e torne-se um contador de histórias.

A vida é boa quando suas equipes Agile estão sincronizadas!

Contate-Nos hoje para uma demonstração personalizada do SwiftEnterprise! Ou inscreva-se para atualizações abaixo.