SlideShare una empresa de Scribd logo
1 de 34
Melhore suas User Stories
com Specification by Example
Bruno Corrêa
brunocorrea@ufpa.br
Nesta talk você....
Perceberá a importância da colaboração do team com
pessoas do business;
Como funciona a Specification by Example;
Como esta técnica apoia outras práticas ágeis como
Backlog Grooming e BDD.
O porquê ....
Gap de comunicação!!!
Shared
Understanding!!
Utilizar Exemplos do
domínio do negócio!!
Exemplo
O frete grátis é oferecido para clientes VIP, que compram
no mínimo 5 livros. O Frete grátis não é oferecido para
clientes Regulares, nem para clientes VIP que compram
qualquer outro produto.
Regras de Negócio:
Feature:
Informar, antes de realizar o pagamento, quando se tem
direito ao frete grátis para um cliente.
Exemplo
Examples:
Tipo Cliente Conteúdo do carrinho Frete
VIP 5 livros Grátis
VIP 4 livros Padrão
Regular 10 livros Padrão
VIP 5 celulares Padrão
VIP 5 livros, 1 celular Padrão
A ideia é...
“Eliminar especificações abstratas”
A ideia é...
“Building the right software”
Fonte: Specification by Example, Gojko Adzic (2011).
Aproxima as áreas...
Situada no
quadrante...
Fonte: Let's break the Agile Testing Quadrants, Gojko Adzic (2013).
Specification by Example!!
Uma técnica ágil para definir requisitos
de forma colaborativa, por meio de
exemplos reais do domínio do
negócio.
Como representar Examples?
Gherkin language!!
É uma Linguagem Específica de Domínio (DSL) que
descreve comportamentos do software por meio da
“Syntax Given-When-Then”.
Given <pré-condição>
When <ação do papel>
Then <resultado para validação>
User Story
”Uma representação do requisito”
Exemplo 1
Narrativa:
O sistema deve permitir que o usuário insira dados para
calcular o IMC (Índice de Massa Corporal) desse usuário,
mostrando na tela qual o grau de obesidade desse
usuário.
Exemplo 1
Narrativa:
O sistema deve permitir que o usuário input dados para
calcular o IMC (Índice de Massa Corporal) desse usuário,
mostrando na tela qual o grau de obesidade desse
usuário.
Abstrato!
1) IMC para grau de obesidade “Peso normal”
Given usuário está na página “Descubra seu IMC”
When preenche o peso com “80”
And preenche a altura com “1,80”
Then deve ser exibido o IMC= “24,69”
And a situação deve ser “Peso normal”
User Story:
Como usuário do HealthCare
Eu quero calcular meu Índice de Massa Corporal (IMC)
Para saber se estou com peso normal.
Cenários de Aceitação:
Exemplo 1
2) IMC para grau de obesidade “Abaixo do peso”
Given usuário está na página “Descubra seu IMC”
When preenche o peso com “58”
And preenche a altura com “1,80”
Then deve ser exibido o IMC= “17,90”
And a situação deve ser “Abaixo do peso normal”
3) IMC para grau de obesidade “Acima do peso”
Given usuário está na página “Descubra seu IMC”
When preenche o peso com “100”
And preenche a altura com “1,80”
Then deve ser exibido o IMC= “30,86”
And a situação deve ser “Acima do peso normal”
Exemplo 1
User Story:
Como Maria (usuária do whatsApp)
Eu quero adicionar pessoas em um grupo existente
Para poder conversar com todas elas em apenas uma
conversa.
Exemplo 2
1) Usuário é Admin
Given Maria é Admin do grupo
When adiciona ao grupo a pessoa “Bruno”
Then a pessoa recebe a msg “Mãe adicionou você
ao grupo Família”
Cenários de Aceitação:
Exemplo 2
2) Usuário não é Admin
Given Maria não é Admin do grupo
When tenta adicionar ao grupo a pessoa “Bruno”
Then o whatsapp informa ao usuário ”Você não
pode adicionar pessoas, pois não é Admin do
grupo”
Exemplo 2
3) Grupo com número máx. de pessoas
Given Maria é Admin do grupo
When tenta adicionar ao grupo a pessoa “Bruno”
Then o whatsapp informa ao usuário ”Este grupo
já possui o limite máximo de 50 integrantes”
User Story:
Como Titular de Conta Corrente
Eu quero realizar um saque no caixa eletrônico
Para poder ter dinheiro em cash.
Exemplo 3
Cenários de Aceitação:
1) Conta Corrente tem limite suficiente
Given ”João” insere um cartão válido
And a conta corrente possui saldo “500,00”
When “João” solicita o saque no valor ”300,00”
And preenche a senha válida “5321”
Then o sistema informa ”saque realizado com sucesso”
And exibe o saldo da conta “200”
And entrega o dinheiro para “João”
And o cartão é devolvido
Exemplo 3
2) Conta Corrente sem limite suficiente
Given ”João” insere um cartão válido
And a conta corrente possui saldo “500,00”
When “João” solicita o saque no valor ”700,00”
And preenche a senha válida “5321”
Then o sistema informa ”Você não possui limite suficiente“
And o Cartão é devolvido
Exemplo 3
3) Caixa Eletrônico não possui dinheiro
Given ”João” insere um cartão válido
And a conta corrente possui saldo “500,00”
And o caixa eletrônico não possui dinheiro
When “João” solicita o saque no valor ”700,00”
Then o sistema informa ”O caixa eletrônico não possui
dinheiro, favor se dirigir a outro caixa eletrônico“
And o Cartão é devolvido
Onde Utilizar??
-Workshops/Brainstorming de elicitação de user stories
-Reuniões informais antes de cerimônias de planejamento
(Sprint Planning, Planning Game...)
-Three Amigos
-Cerimônias de Backlog Grooming
-BDD (Behavior-Driven Development)
Dentre outros...
Backlog Grooming
“Refinamento do Product Backlog”
Backlog Grooming
“Refinamento do Product Backlog”
Definition of Ready
(DOR)
BDD
“Automatizar comportamentos do software”
Produto Certo x Construir Certo
BDD
“Automatizar comportamentos do software”
From Customer Examples to Living Documentation
BDD
“Automatizar comportamentos do software”
Living Documentation!!
Fonte: Specification by Example, Gojko Adzic (2011).
Referências...
Gojko Adzic. Let's break the Agile Testing Quadrants. Disponível em:
<https://gojko.net> 2013;
Gojko Adzic. Specification by Example: How Successful Teams Deliver the Right
Software. 1th Ed, Manning. 2011.
Ryan Thomas. Introducing the Three Amigos. Disponível em:
<https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-
three-amigos>
Agile Alliance. Backlog Grooming. Disponível em:
<https://www.agilealliance.org/glossary/backlog-grooming/>
Dan North, Aslak Hellesøy, Bryan Helmkamp, et al.
The RSpec Book: Behaviour-Driven Development with
RSpec, Cucumber, and Friends. 1th Ed., 2012.
Obrigado!!
Perguntas...?
Bruno Corrêa
brunocorrea@ufpa.br

Más contenido relacionado

Destacado

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destacado (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

Melhore suas User Stories com Specification by Example

  • 1. Melhore suas User Stories com Specification by Example Bruno Corrêa brunocorrea@ufpa.br
  • 2. Nesta talk você.... Perceberá a importância da colaboração do team com pessoas do business; Como funciona a Specification by Example; Como esta técnica apoia outras práticas ágeis como Backlog Grooming e BDD.
  • 7. Exemplo O frete grátis é oferecido para clientes VIP, que compram no mínimo 5 livros. O Frete grátis não é oferecido para clientes Regulares, nem para clientes VIP que compram qualquer outro produto. Regras de Negócio: Feature: Informar, antes de realizar o pagamento, quando se tem direito ao frete grátis para um cliente.
  • 8. Exemplo Examples: Tipo Cliente Conteúdo do carrinho Frete VIP 5 livros Grátis VIP 4 livros Padrão Regular 10 livros Padrão VIP 5 celulares Padrão VIP 5 livros, 1 celular Padrão
  • 9. A ideia é... “Eliminar especificações abstratas”
  • 10. A ideia é... “Building the right software”
  • 11. Fonte: Specification by Example, Gojko Adzic (2011). Aproxima as áreas...
  • 12. Situada no quadrante... Fonte: Let's break the Agile Testing Quadrants, Gojko Adzic (2013).
  • 13. Specification by Example!! Uma técnica ágil para definir requisitos de forma colaborativa, por meio de exemplos reais do domínio do negócio.
  • 14. Como representar Examples? Gherkin language!! É uma Linguagem Específica de Domínio (DSL) que descreve comportamentos do software por meio da “Syntax Given-When-Then”. Given <pré-condição> When <ação do papel> Then <resultado para validação>
  • 16. Exemplo 1 Narrativa: O sistema deve permitir que o usuário insira dados para calcular o IMC (Índice de Massa Corporal) desse usuário, mostrando na tela qual o grau de obesidade desse usuário.
  • 17. Exemplo 1 Narrativa: O sistema deve permitir que o usuário input dados para calcular o IMC (Índice de Massa Corporal) desse usuário, mostrando na tela qual o grau de obesidade desse usuário. Abstrato!
  • 18. 1) IMC para grau de obesidade “Peso normal” Given usuário está na página “Descubra seu IMC” When preenche o peso com “80” And preenche a altura com “1,80” Then deve ser exibido o IMC= “24,69” And a situação deve ser “Peso normal” User Story: Como usuário do HealthCare Eu quero calcular meu Índice de Massa Corporal (IMC) Para saber se estou com peso normal. Cenários de Aceitação: Exemplo 1
  • 19. 2) IMC para grau de obesidade “Abaixo do peso” Given usuário está na página “Descubra seu IMC” When preenche o peso com “58” And preenche a altura com “1,80” Then deve ser exibido o IMC= “17,90” And a situação deve ser “Abaixo do peso normal” 3) IMC para grau de obesidade “Acima do peso” Given usuário está na página “Descubra seu IMC” When preenche o peso com “100” And preenche a altura com “1,80” Then deve ser exibido o IMC= “30,86” And a situação deve ser “Acima do peso normal” Exemplo 1
  • 20. User Story: Como Maria (usuária do whatsApp) Eu quero adicionar pessoas em um grupo existente Para poder conversar com todas elas em apenas uma conversa. Exemplo 2
  • 21. 1) Usuário é Admin Given Maria é Admin do grupo When adiciona ao grupo a pessoa “Bruno” Then a pessoa recebe a msg “Mãe adicionou você ao grupo Família” Cenários de Aceitação: Exemplo 2
  • 22. 2) Usuário não é Admin Given Maria não é Admin do grupo When tenta adicionar ao grupo a pessoa “Bruno” Then o whatsapp informa ao usuário ”Você não pode adicionar pessoas, pois não é Admin do grupo” Exemplo 2 3) Grupo com número máx. de pessoas Given Maria é Admin do grupo When tenta adicionar ao grupo a pessoa “Bruno” Then o whatsapp informa ao usuário ”Este grupo já possui o limite máximo de 50 integrantes”
  • 23. User Story: Como Titular de Conta Corrente Eu quero realizar um saque no caixa eletrônico Para poder ter dinheiro em cash. Exemplo 3 Cenários de Aceitação: 1) Conta Corrente tem limite suficiente Given ”João” insere um cartão válido And a conta corrente possui saldo “500,00” When “João” solicita o saque no valor ”300,00” And preenche a senha válida “5321” Then o sistema informa ”saque realizado com sucesso” And exibe o saldo da conta “200” And entrega o dinheiro para “João” And o cartão é devolvido
  • 24. Exemplo 3 2) Conta Corrente sem limite suficiente Given ”João” insere um cartão válido And a conta corrente possui saldo “500,00” When “João” solicita o saque no valor ”700,00” And preenche a senha válida “5321” Then o sistema informa ”Você não possui limite suficiente“ And o Cartão é devolvido
  • 25. Exemplo 3 3) Caixa Eletrônico não possui dinheiro Given ”João” insere um cartão válido And a conta corrente possui saldo “500,00” And o caixa eletrônico não possui dinheiro When “João” solicita o saque no valor ”700,00” Then o sistema informa ”O caixa eletrônico não possui dinheiro, favor se dirigir a outro caixa eletrônico“ And o Cartão é devolvido
  • 26. Onde Utilizar?? -Workshops/Brainstorming de elicitação de user stories -Reuniões informais antes de cerimônias de planejamento (Sprint Planning, Planning Game...) -Three Amigos -Cerimônias de Backlog Grooming -BDD (Behavior-Driven Development) Dentre outros...
  • 28. Backlog Grooming “Refinamento do Product Backlog” Definition of Ready (DOR)
  • 29. BDD “Automatizar comportamentos do software” Produto Certo x Construir Certo
  • 30. BDD “Automatizar comportamentos do software” From Customer Examples to Living Documentation
  • 32. Living Documentation!! Fonte: Specification by Example, Gojko Adzic (2011).
  • 33. Referências... Gojko Adzic. Let's break the Agile Testing Quadrants. Disponível em: <https://gojko.net> 2013; Gojko Adzic. Specification by Example: How Successful Teams Deliver the Right Software. 1th Ed, Manning. 2011. Ryan Thomas. Introducing the Three Amigos. Disponível em: <https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the- three-amigos> Agile Alliance. Backlog Grooming. Disponível em: <https://www.agilealliance.org/glossary/backlog-grooming/> Dan North, Aslak Hellesøy, Bryan Helmkamp, et al. The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends. 1th Ed., 2012.