We wrote three user stories for the next sprint.
Escrevemos três user stories para o próximo sprint.Aula
User stories e acceptance criteria básicos
Nível: A2
Objetivo
Escrever user stories no formato "As a [role], I want [feature], so that [benefit]" e acceptance criteria simples em Given/When/Then, usando vocabulário básico de produto.
Explicação
Em times de produto, uma user story é uma frase curta que descreve o que o usuário quer e por quê. O formato padrão é:
`As a [role], I want [feature], so that [benefit].`
- role (papel) é quem se beneficia: `As a user`, `As a customer`, `As a new admin`.
- feature (funcionalidade) é o que a pessoa quer poder fazer: `to export reports`, `to reset the password`.
- benefit (benefício) é o ganho, sempre introduzido por `so that`: `so that I can share them with my team`.
A frase inteira cabe em uma linha, em presente simples, e o `so that` é o que mostra o valor da feature para o usuário.
Os acceptance criteria descrevem, em frases curtas, como saber se a feature está pronta. O formato mais comum é Given/When/Then:
- `Given` traz o contexto (uma pré-condição).
- `When` traz a ação do usuário.
- `Then` traz o resultado esperado.
Exemplo:
`Given the user is on the settings screen, when they turn off email notifications, then the system stops sending them within 24 hours.`
Em critérios no presente, remova `will` e mantenha os verbos no simple present: `when the user clicks Save`, não `when the user will click Save`. Quando o resultado esperado for negativo, mantenha a estrutura: `then the system does not send the email`.
Em uma refinement (ou grooming), o time discute a story, escreve os critérios e estimates (estima) o esforço em pontos. A story vai para o sprint (período curto de trabalho) e o time revisa os critérios antes de começar a desenvolver.
Exemplos
| Inglês | Tradução | Observação |
|---|---|---|
| As a user, I want to filter the dashboard, so that I see only the projects I need. | Como usuário, quero filtrar o painel, para ver somente os projetos de que preciso. | Formato completo: role + feature + benefit. |
| As a customer, I want to change my email, so that I receive invoices at the right address. | Como cliente, quero mudar meu e-mail, para receber as notas fiscais no endereço certo. | Customer é um role específico; benefit vem depois de so that. |
| Given the user is logged in, when they click Export, then the system downloads a PDF report. | Dado que o usuário está logado, quando ele clica em Exportar, então o sistema baixa um relatório em PDF. | Estrutura Given/When/Then no simple present. |
| Given the user disabled email alerts, when a new comment arrives, then the system does not send an email. | Dado que o usuário desativou alertas por e-mail, quando chega um novo comentário, então o sistema não envia um e-mail. | Resultado esperado negativo: does not + verbo base. |
| We refined the story with the team this morning and added three acceptance criteria. | Refinamos a história com o time hoje de manhã e adicionamos três critérios de aceitação. | Acceptance criteria é plural e contável em contextos do time. |
| The team estimated the story as 3 points and added it to the sprint. | O time estimou a história em 3 pontos e a adicionou ao sprint. | Estimate (verbo) + story + as [n] points é uma frase típica de planning. |
Erros comuns
- Esquecer o `so that`: 'As a user, I want a dark mode.' perde o benefício e a story não explica o valor para o usuário.
- Colocar a feature no lugar do role: 'As a login feature' está errado; o certo é 'As a user, I want to log in quickly'.
- Trocar a ordem de Given/When/Then: Then descreve o resultado e sempre vem depois de When.
- Usar `will` em critérios: 'when the user will click Save' deve ser 'when the user clicks Save' (presente simples).
- Escrever 'a user story' no plural como 'a user storys': o plural correto é 'user stories' (story → stories).
Prática guiada
Reescreva cada pedido em uma user story no formato padrão.
- Pedido: `Quero um botão de logout.`
Resposta: `As a user, I want a logout button, so that I can end my session safely.`
- Pedido: `O cliente precisa definir um limite de notificações por dia.`
Resposta: `As a customer, I want to set a daily notification limit, so that my phone does not buzz all day.`
- Pedido: `Critério: o usuário só recebe o e-mail depois de confirmar a inscrição.`
Resposta: `Given the user did not confirm the subscription, when the form is submitted, then the system does not send the welcome email.`
Observe o uso de `so that` para introduzir o benefício e a estrutura `Given/When/Then` com verbos no simple present.
Resumo
User stories seguem `As a [role], I want [feature], so that [benefit].` Acceptance criteria usam `Given [context], when [action], then [result]` em simple present. Em refinement, o time discute, estima e adiciona stories ao sprint antes de começar o desenvolvimento.
Vocabulário
Palavras principais
Each story needs at least three acceptance criteria.
Cada story precisa de pelo menos três critérios de aceitação.Choose a clear role for each user story.
Escolha um papel claro para cada user story.The benefit of this feature is faster onboarding.
O benefício desta funcionalidade é um onboarding mais rápido.Given the user is logged in, ...
Dado que o usuário está logado, ...When the user clicks Save, ...
Quando o usuário clica em Salvar, ...Then the system saves the changes.
Então o sistema salva as alterações.Each acceptance criterion describes one scenario.
Cada critério de aceitação descreve um cenário.The story is in the current sprint.
A story está no sprint atual.Move the story to the top of the backlog.
Mova a story para o topo do backlog.We estimated the story as 5 points.
Estimamos a story em 5 pontos.The team refines the top stories every Tuesday.
O time refina as principais stories toda terça-feira.This story is high priority for the next release.
Esta story é alta prioridade para a próxima release.We shared the new story with the main stakeholders.
Compartilhamos a nova story com as principais partes interessadas.I want filters, so that I find what I need faster.
Quero filtros, para que eu encontre o que preciso mais rápido.História
História: User stories e acceptance criteria básicos
Nível: A2
História em inglês
Refining the next sprint
On Tuesday morning, the product team met to refine the stories for the next sprint. Priya, the product manager, opened the backlog and picked the first story about notification settings. Luca, the engineer, read it aloud: "As a user, I want to turn off email notifications, so that I can focus on work." Mei, the designer, asked, "What is the role here? A new user, a customer, or an admin?" Priya answered, "Any active user. The benefit is fewer interruptions during the day." Luca wrote the first acceptance criterion on the board: "Given the user is on the settings screen, when they turn off email notifications, then the system stops sending them within 24 hours." The team discussed the criterion and added one more: "Given the user disabled email alerts, when a new comment arrives, then the system does not send an email."
Adding the second story
Next, Priya read a new story: "As a customer, I want to set a daily notification limit, so that my phone does not buzz all day." Mei asked, "How do we test the limit?" Luca suggested, "Given the user already received 5 notifications today, when the system tries to send a 6th one, then the user does not receive it." The team estimated the story as 3 points and added it to the sprint. Priya said, "Let's review both stories with the QA team tomorrow before the sprint starts." At the end of the meeting, the team had three stories ready for the next sprint.
Tradução linha por linha
| Inglês | Tradução |
|---|---|
| On Tuesday morning, the product team met to refine the stories for the next sprint. | Na terça de manhã, o time de produto se reuniu para refinar as stories do próximo sprint. |
| Priya, the product manager, opened the backlog and picked the first story about notification settings. | Priya, a gerente de produto, abriu o backlog e escolheu a primeira story sobre configurações de notificação. |
| Luca, the engineer, read it aloud: "As a user, I want to turn off email notifications, so that I can focus on work." | Luca, o engenheiro, leu em voz alta: — Como usuário, quero desativar as notificações por e-mail, para poder focar no trabalho. |
| Mei, the designer, asked, "What is the role here? A new user, a customer, or an admin?" | Mei, a designer, perguntou: — Qual é o papel aqui? Um novo usuário, um cliente ou um admin? |
| Priya answered, "Any active user. The benefit is fewer interruptions during the day." | Priya respondeu: — Qualquer usuário ativo. O benefício é menos interrupções durante o dia. |
| Luca wrote the first acceptance criterion on the board: "Given the user is on the settings screen, when they turn off email notifications, then the system stops sending them within 24 hours." | Luca escreveu o primeiro critério de aceitação no quadro: — Dado que o usuário está na tela de configurações, quando ele desativa as notificações por e-mail, então o sistema para de enviá-las em 24 horas. |
| The team discussed the criterion and added one more: "Given the user disabled email alerts, when a new comment arrives, then the system does not send an email." | O time discutiu o critério e adicionou mais um: — Dado que o usuário desativou os alertas por e-mail, quando chega um novo comentário, então o sistema não envia um e-mail. |
| Next, Priya read a new story: "As a customer, I want to set a daily notification limit, so that my phone does not buzz all day." | Em seguida, Priya leu uma nova story: — Como cliente, quero definir um limite diário de notificações, para que meu celular não fique apitando o dia todo. |
| Mei asked, "How do we test the limit?" | Mei perguntou: — Como testamos o limite? |
| Luca suggested, "Given the user already received 5 notifications today, when the system tries to send a 6th one, then the user does not receive it." | Luca sugeriu: — Dado que o usuário já recebeu 5 notificações hoje, quando o sistema tenta enviar uma sexta, então o usuário não a recebe. |
| The team estimated the story as 3 points and added it to the sprint. | O time estimou a story em 3 pontos e a adicionou ao sprint. |
| Priya said, "Let's review both stories with the QA team tomorrow before the sprint starts." | Priya disse: — Vamos revisar as duas stories com o time de QA amanhã antes de o sprint começar. |
| At the end of the meeting, the team had three stories ready for the next sprint. | Ao final da reunião, o time tinha três stories prontas para o próximo sprint. |
Notas de vocabulário
- As a user, I want..., so that... = formato padrão de uma user story: role + feature + benefit.
- Any active user. The benefit is... = definir o role com clareza e separar o benefit depois de so that.
- Given the user is on the settings screen, when they turn off..., then the system stops sending... = estrutura Given/When/Then no simple present com resultado positivo.
- then the system does not send an email = resultado negativo: does not + verbo base.
- The team estimated the story as 3 points = estimate + story + as [n] points é a frase típica de planning.
- added it to the sprint = sprint = período curto em que a story será desenvolvida.
Perguntas de compreensão
- Who opened the refinement meeting on Tuesday?
- What is the role in the first user story?
- Why does the user want to turn off email notifications?
- What does the first acceptance criterion say?
- What does the second user story allow the customer to do?
- How many points did the team estimate for the second story?
Prática com a história
- Traduza: Como usuário, quero desativar as notificações por e-mail, para poder focar no trabalho.
- Escreva um acceptance criterion para: o cliente recebe um e-mail de confirmação depois de fazer um pedido.
- Em 'As a customer, I want to set a daily notification limit, so that my phone does not buzz all day', qual é o benefit?
- Ordene as partes do critério: 'when the system tries to send a 6th one' / 'Given the user already received 5 notifications today' / 'then the user does not receive it'
Prática
Exercícios e teste
A próxima melhoria é transformar esses arquivos em perguntas com resposta no navegador. Por enquanto, esta página já organiza o estudo e permite seguir a aula inteira sem abrir os arquivos manualmente.