ENTENDENDO E APLICANDO ESPECIFICAÇÃO POR EXEMPLOS LUIZA NUNES & PEDRO SILVA AGILE BRASIL - NOVEMBRO 2016

Documentos relacionados
Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

Testes Ágeis com BDD. Por que o BDD pode salvar o agile? Paloma Costa

ACEITE DE SOFTWARE NA VISÃO DO CLIENTE: GARANTINDO A QUALIDADE DOS PROJETOS DE SOFTWARE. Resp:Marcelo Nascimento Costa, MSc

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Processos Ágeis de Desenvolvimento de Software

Como criar menus para as suas planilhas

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

Visão prática do BDD (Behavior Driven Design) para agilizar o processo de desenvolvimento

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

Capítulo 5 Gerenciamento do Escopo do projeto. Introdução. Antes de iniciarmos vamos pensar um pouco.

Prof. Dr. Thiago Jabur Bittar

O Fluxo de Requisitos

HA100 Introdução ao SAP HANA

Desenvolvimento ágil de software

2 Versão 1: Funcionalidade Básica e Interface Web

Guia de uso do Catálogo Mobile

Manifesto Ágil Princípios

Engenharia de Software

GUIA DE SOLICITAÇÃO PARA ELABORAÇÃO DE TRABALHO DE CONCLUSÃO DE CURSO 1º semestre de 2016

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

Introdução a Tecnologia da Informação

Princípios da Engenharia de Software aula 03

KANBAN NO MARKETING Como Começar?

Extração de Requisitos

Manual de Uso. Aplicativo da Escola Canarinho. Agenda Digital

Product Backlog Building

Dez dicas para dominar o Google Maps no seu celular

Guia do Processo de Teste Metodologia Celepar

Pesquisando Processos

Aplicativo SulAmérica Auto Serviços e benefícios

Engenharia de Software

Aviso sobre o produto. Este guia descreve os recursos comuns à maioria dos modelos. Alguns recursos podem não estar disponíveis em seu computador.

Métodos Ágeis e o SCRUM. Bruno Henrique Oliveira

Áreas de Conhecimento, Técnicas de Análise de Negócio e Conceitos-Chave

Especificação dos Requisitos do Software UNI MAPS

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

SIMAR UNIVERSIDADE DE BRASÍLIA. Centro de Informática CPD. SIMAR Sistema de Compras de Materiais

14/11/2014. Engenharia de Software. Modelos de software. Modelo Clássico - Cascata

Extreme Programming: Valores e Práticas

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

Analista de Negócio 3.0

Integração 1ShoppingCart

MODELAGEM DE PROCESSOS MÓDULO 9

7ª Conferência da Qualidade de Software e Serviços

SIMPLe: uma abordagem simples

S4F40. Administração de caixa no SAP S/4HANA ESTRUTURA DO CURSO. Versão do curso: 03 Duração do curso: 2 Dias

Documento de Requisitos*

Configuração do Agenda para administradores

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES?

XP EXTREME PROGRAMMING. AGO106 - Gestão

S14 - Engenharia de Requisitos cap.5

Aula 4 Engenharia de Requisitos

Escrevendo Estórias do Usuário Eficazes aula #3

Análise de Sistemas AULA 05 BCC Noturno - EMA908915A

TUTORIAL GOOGLE ACADÊMICO 1. O

SCRUM aplicado na Gerência de Projetos

UM PORTAL COM ATIVIDADES PARA O ENSINO DE ESTATÍSTICA

S4F01. Contabilidade financeira no SAP S/4HANA ESTRUTURA DO CURSO. Versão do curso: 03 Duração do curso: 2 Dias

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

S4LG1. Processos Inovadores de Logística no SAP S/4HANA Enterprise Management ESTRUTURA DO CURSO. Versão do curso: 03 Duração do curso: 2 Dias

Especificação dos Requisitos do Software UFPI Maps 1.0. Autores:4A Team Alceu Medeiros Antonio Lima AntonioHelves Fernando Assunção

2

Verificação e Validação (V & V)

Conhecer algumas funcionalidades do software VMware Player e do sistema operacional

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

1. CONFIGURAÇÃO OUTLOOK EXPRESS/XP

Especificação do Trabalho Prático

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

O plano de negócios. Hoje

Contagem de Pontos de Função no Desenvolvimento de Software utilizando Métodos Ágeis

A marca que mais respeita você. Primeiro ACESSO

Como criar e utilizar uma conta de correio eletrônico em um servidor gratuito

Escolhendo um Modelo de Ciclo de Vida

Analista de Sistemas S. J. Rio Preto

Agilizar é Humanizar! A Jornada do Centro de Competência Ágil da IBM. IBM GBS :: 2017 IBM Corporation

Explorar Restrições Esboço

Halison Miguel Edvan Pontes

Engenharia de Software Aula 2.3 Processos da Engenharia de Requisitos. Prof. Bruno Moreno

Como escolher um BPMS que trará resultados reais para seu negócio?

OLÁ, LOJISTA. Seja bem-vindo ao tutorial do Aplicativo do Prudenshopping.

Case Pró-Laudo. BPM em Telemedicina

Prova Discursiva Engenharia de Software

Luiz Fernando Maurício de Souza Sidemar Fidelis Cezario. FDD Desenvolvimento dirigido a funcionalidades

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Mercado mobile. Fábrica de Aplicativos. Vamos falar sobre, Plano revendedor

Amadeus Touchless Queue Dispatch

WINTHOR UPGRADE VERSÃO 2

Como utilizar a validação de dados com lista suspensa

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

Rational Unified Process (RUP)

S4SD1 Vendas do SAP S/4HANA - Funções e inovações

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Eng. de Requisitos: Atividades. Engenharia de Requisitos. Eng. de Requisitos: Processo. O Documento de Requisitos. Stakeholders. Estudo de Viabilidade

Organização para Realização de Teste de Software

Documento de Requisitos: Essencial ao Desenvolvimento de Software

UML (Linguagem unificada de modelagem)

UM POUCO DO NOSSO TRABALHO. Desenvolvimento de produtos digitais

ATLAS: UNINDO SUAS EQUIPES

Prof. Ms. Ronaldo Martins da Costa

Transcrição:

ENTENDENDO E APLICANDO ESPECIFICAÇÃO POR EXEMPLOS LUIZA NUNES & PEDRO SILVA AGILE BRASIL - NOVEMBRO 2016

QUEM SOMOS NÓS? psilva@thoughtworks.com @pedrohns_ lnunes@thoughtworks.com @luhh_nunes

AGENDA Importância da comunicação Definição de Requisitos Especificação por Exemplo Técnicas para Definição de Requisitos BDD Mão na Massa

VAMOS PENSAR Como é feita a definição de requisitos de uma funcionalidade em seu projeto? Qual é a definição de pronto de uma funcionalidade em seu projeto? Como envolver pessoas não técnicas em conversas sobre requisitos técnicos? Como mostrar ao cliente o valor de negócio entregue em uma funcionalidade?

ESTE WORKSHOP, EM RESUMO: Entender o valor da colaboração entre pessoas do time Apresentar um guia para facilitar reuniões de levantamento de requisitos Dicas para a escrita de critérios de aceitação eficazes utilizando Especificação por Exemplo

Requisito: Valor/Necessidade de Negócio Estória de Usuário: Funcionalidade a ser implementada BDD/Exemplos: Ilustração do uso da funcionalidade

Contexto: A entrega gratuita é oferecida aos clientes VIP, uma vez que eles tenham comprado uma quantidade mínima de 5 livros. A entrega gratuita não é oferecida aos clientes regulares ou clientes VIP que tenham comprado qualquer produto além de livros. Como usuário VIP do site de e-commerce Eu quero saber quais o produtos que qualificam entrega grátis Para saber quando eu sou elegível para tal entrega DADO que estou logada como cliente <TIPO DE CLIENTE> E que meu carrinho de compras contém <CONTEÚDO DO CARRINHO> QUANDO eu prossigo para o pagamento ENTÃO sou avisada que fui qualificada para o tipo de entrega <ENTREGA>

Tipo de Consumidor Conteúdo do Carrinho Entrega

UM EXEMPLO Dado que a quantidade mínima de livros para se obter entrega grátis é cinco, então esperamos o seguinte: Tipo de Consumidor Conteúdo do Carrinho Entrega VIP 5 Livros Grátis VIP 4 Livros Padrão Regular 10 Livros Padrão VIP 5 Máquinas de Lavar Padrão VIP 5 Livros, 1 Máquina de Lavar Padrão

DEFININDO ESTÓRIAS DE USUÁRIOS

ESTÓRIA DE USUÁRIO Independente Negociável Valor Estimável Small (pequena) Testável

POR QUE? As inconsistências se tornam mais fáceis de serem identificadas quando escrevemos o nosso entendimento Exemplos do mundo real nos ajuda a eliminar premissas e definir a real regra de negócio Pessoas possuem diferentes abordagens para o mesmo problema. Um momento para se discutir essas abordagens evita a falácia do group thinking.

OS TRÊS AMIGOS

ESPECIFICAÇÃO POR EXEMPLO

O QUE É? Abordagem utilizada para definir requisitos colaborativamente, utilizando exemplos reais ao invés de afirmações abstratas. Especificação por exemplo se utiliza de algumas práticas, como BDD, para a escrita dos critérios de aceitação.

O QUE NÃO É? Uma ferramenta particular de software Escrita de exemplos sem discussões Um processo escrito em pedra

Specification by Example, Gojiko Adzik

BOAS PRÁTICAS Coletar exemplos básicos diretamente dos clientes Usar protótipos/desenhos que exemplificam a UI Explicação do contexto em pequenos parágrafos Utilizar BDD nas especificações Validar/revisar frequentemente

MÁS PRÁTICAS Utilizar respostas positivas e negativas nos exemplos Utilizar classes abstratas de equivalência Explorar todas as combinações possíveis Definir explicitamente todas as dependências na especificação

TÉCNICAS PARA DEFINIÇÃO DE ESTÓRIAS DE USUÁRIO

TÉCNICAS PARA DEFINIR ESTÓRIAS DE USUÁRIO Workshops com o time todo Workshops com representantes dos Três Amigos Pair-writing Desenvolvedores frequentemente revisando as histórias antes da iteração (IPM/pre-planning) Conversas informais Prepare somente exemplos iniciais para IPM/pre-planning ou conversas com stakeholders

ABORDAGEM Dada uma necessidade de negócio, entender: O "porquê e quem"? De onde o valor está vindo? Como o valor está relacionado ao que o usuário final espera/precisa Se há uma solução alternativa

BDD

Formato do BDD DADO (pré-condição) QUANDO (ação) ENTÃO (saída para validação)

BOAS E MÁS PRÁTICAS

EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO um usuário Quando buscar por um cliente ingressando um certo atributo ENTÃO o resultado esperado é exibido

EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO um usuário Quando buscar por um cliente ingressando um certo atributo ENTÃO o resultado esperado é exibido

EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu digito o número do cliente na caixa de busca E clico no botão buscar ENTÃO eu vejo o nome, endereço e documento do cliente exibidos em uma tabela

EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu digito o número do cliente na caixa de busca E clico no botão buscar ENTÃO eu vejo o nome, endereço e documento do cliente exibidos em uma tabela

EXEMPLO - BOAS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu busco por um cliente, ingressando seu número de telefone ENTÃO o resultado da busca retorna o nome, endereço e documento do cliente buscado

EXEMPLO - BOAS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu busco por um cliente, ingressando seu número de telefone ENTÃO o resultado da busca retorna o nome, endereço e documento do cliente buscado

AGORA É SUA VEZ!

SMART ALARM Contexto: O monitor de rota deve informar quaisquer problemas no trajeto especificado e avisar o cliente, respeitando o limite de tempo determinado. Como usuário do aplicativo Smart Alarm Eu quero poder adicionar um monitor de rota Para me alertar com antecedência de problemas no percurso entre dois endereços

SMART ALARM

BIBLIOGRAFIA Bridging the Communication Gap - Gojko Adzic Specification by Example - Gojko Adzic User Stories Applied - Mike Cohn The Agile Samurai - Jonathan Rasmusson

OBRIGADO! @luhh_nunes lnunes@thoughtworks.com @pedrohns_ psilva@thoughtworks.com