Agile

7 fev, 2013

Como escrever boas user stories?

Publicidade

Olá, pessoal!

Mais um artigo da série Agile! Veremos como escrever boas user stories. Este é um ponto importante, pois uma boa user story deve ser entendida tanto pelo team técnico quanto pelo cliente/PO.

Lets…

Sabemos que escrever as user stories é “trabalho” do PO, mas na teoria, porque na prática quem vai escrever ou é o Scrum Master ou o time. Nem sempre a realidade do mercado consegue seguir o que temos na literatura. Mas o objetivo deste artigo não é esse e sim tentar responder: “as user stories do seu projeto são boas?”. Ou seja, para seu cliente, ela é valiosa? Ele olha para ela e sabe de fato o que significa que será feito?

Estou lendo o livro The Samurai Agile, de Jonathan Rasmusson (em breve vou publicar um review sobre ele); em um dos seus capítulos ele aborda sobre o assunto e vi que já cometi alguns erros quando precisei escrever user stories há um tempo, em um projeto pessoal. Um dos problemas foi não ter percebido o quanto alguns pontos na user story estavam técnicos.  O autor faz uma pergunta interessante: “Se seu cliente estivesse com fome e ele tivesse que escolher apenas entre as duas opções abaixo, o que seria mais claro para ele?”

1. História: Ernie’s Tech Diner

C++     3 days

Connection pooling     2 days

Model-View_presenter pattern           5 days

2. História: Sam’s Business Pancake House

Create user account 3 days

Notify subscribers of new listings 2 days

Cancel subscription 1 day

Com certeza a história dois faz mais sentido para o negócio do cliente. Os termos são simples e fáceis de serem entendidos. E o mais comum: quando somos muito técnicos e escrevemos como na primeira história, o SM deve ficar atento com isso caso todo o time esteja participando da escrita das US. E em outro exemplo o autor trouxe que podemos ser técnicos e o cliente entender. A história abaixo não perde seu valor:

Add database connection pooling: é dificil para o cliente entender

Mas…

Reduce page load time from 10 secs to 2 secs.

Parece que faz mais sentido para o cliente e você já sabe o que acontece nos bastidores para atingir o objetivo da user story (US).

Enfim, qualquer US deve ser do tipo INVEST, ou seja, independente, negociável, valiosa, estimável, small (pequena) e testável.

  • Independente: sua história não pode depender de outras histórias, caso isso aconteça é preciso quebrá-la.
  • Negociável: é que ela pode ser alterada e adaptada e não fechada.
  • Testável: que seja possível criar testes que valide aquela história. Algo como:

Login with expired:

Testable:

            – redireciona logins expirados

            – mostra mensagens de erros apropriadas

  • Small & Estimatable: não tem que ser grande e sim pequena para que possa ser estimável, quanto maior, mais difícil é estimar.

Vou ficando por aqui, espero que tenham gostado.

See ya!