● Focado no comportamento do sistema
● Visa um desenvolvimento voltado a testes
● Usam uma linguagem comum
● Beneficia a todos: Desenvolvedores, QAs, POs e Clientes
● Comporta vários cenários e não apenas uma determinada função
● Possui um template padrão para as Histórias e Cenários
● Possui aspectos do DDD e conceitos fundamentais do TDD
BDD
Template de Histórias:
● Narrativa/Estória: (Nome)
○ Para (Valor do Negócio)
○ Eu, como (Cargo de quem executa)
○ Desejo poder realizar (Funcionalidade)
Story Templates:
● Story: (Name)
○ In order to (Business Value)
○ As a (Job Position)
○ I want to (Functionality)
BDD
Exemplo:
● Narrativa/História: Cadastro de Alunos
○ Para que meu sistema de gestão escolar
○ Eu, como um membro da secretaria
○ Desejo poder realizar o cadastro dos alunos da instituição
BDD
Template de Cenários:
● Cenários: (Nome)
○ Dado que (Estado inicial do sistema)
○ E (complemento/opcional)
○ Quando (Ação a ser realizada)
○ Então (O que deve fazer após a ação)
Scenarios Template:
● Scenario: (Name)
○ Given a (Initial state)
○ And (optional add-on)
○ When (Action to be taken)
○ Then (What should you do after the action)
BDD
Exemplo:
● Cenário I: Abrir tela de Cadastro de Aluno
○ Dado que a(o) secretária(o) selecione a opção Cadastrar Aluno
no menu
○ Quando clicar nesta opção
○ Então deverá ser aberta a tela contendo os dados para efetuar
o cadastro do aluno.
BDD
● Sistemas funcionando e com fácil manutenção
● Código Limpo
● Refatoração contínua
● Cobertura de Testes maior que 80%
● Utilizar TDD, Testes Unitários, Comportamentais (BDD), Integração e Performance
● Definir uma arquitetura que atenda ao cliente
Qualidade
● É uma técnica de desenvolvimento de software baseada em um ciclo curto de
repetições
● Escrever os testes antes de escrever o código de produção
● Ao escrever primeiro os testes temos:
○ Garantia de uma boa qualidade no código (mínimo de sujeira e códigos
esquecidos que nunca serão utilizados)
○ Garantia de funcionamento do que está sendo implementado
● Não estará estar tudo feito, conforme o desenvolvimento ocorre, cria-se o teste e o
código da solução
TDD
● Escreva um teste que falhe
● Faça-o passar da maneira mais simples possível
● Refatore o código
● É conhecido como Ciclo Vermelho-Verde-Refatora (Red-Green-Refactor)
TDD
4 Valores
● Indivíduos e interações mais que processos e ferramentas
● Software em funcionamento mais que documentação abrangente
● Colaboração com o cliente mais que negociação de contratos
● Responder a mudanças mais que seguir um plano
Base Ágil
Processos Definidos
● São aqueles que determinam o que deve ser feito, quando e
como
● Quem já trabalhou com o “início e fim do projeto” sabe que a
utilização de um processo definido não garante o sucesso
Base Ágil
Processos Empíricos
● São aqueles que não se conhece todas as variáveis de
entrada para que possa estabelecer um processo repetível.
● O Scrum, parte do princípio que nem todas as características
do produto são conhecidas na análise e que provavelmente
os requisitos mudam com o passar do tempo
Base Ágil
Exemplo
● É como dirigir um carro, nunca se traça um destino em que a
chegada é em linha reta, sempre há pequenas correções até
seu destino
Base Ágil
Conclusão
● Processos empíricos baseados em inspeção e adaptação
devem ser utilizados sempre que os processos definidos
não forem adequados devido a complexidade do projeto
Base Ágil
● Processo de desenvolvimento iterativo e incremental que pode ser
aplicado a qualquer produto ou no gerenciamento de qualquer
atividade complexa
● Criado por Jeff Sutherland e Ken Schwaber na década de 90
Scrum
Transparência
● Todos os envolvidos devem ser transparentes, diretos e confiarem uns
com os outros
● Todos devem ter coragem para disseminar tanto as informações boas
quanto as más
● Todos devem conhecer os objetivos do projeto e colaborar para que seja
alcançado
Scrum
Inspeção
● Verificações em produto, processos, aspectos comportamentais das
pessoas e boas práticas
● Identificar necessidade de melhorias ou variações indesejadas
Scrum
Adaptação
● O projeto deve ser adaptado às mudanças que porventura possam
ocorrer proveniente de necessidade do negócio do cliente
Scrum
Os 5 valores do SCRUM
Scrum
Comprometimento Coragem Foco
Abertura Respeito
Os 5 valores do SCRUM
● O Comprometimento com o time, com a entrega e na qualidade do produto ou serviço
● A Coragem para fazer o que precisa ser feito e tomar decisões mesmo que difíceis
● Foco no cliente, resultado e objetivos do negócio
● Abertura para permitir que as pessoas sejam transparentes e tenhamos um ambiente seguro
para compartilhar o conhecimento
● E o respeito às pessoas e organizações
Scrum
PO - Product Owner
● Prioriza as atividades no Backlog
● Garante que a entrega está adequada com a expectativa do negócio
● Responsável por garantir o Retorno sobre o Investimento (ROI)
● Responsável pelo alinhamento do projeto e expectativas com Stakeholders (se houver)
● Gerência, negocia, prioriza e cria os itens do Product Backlog
● O PO ajuda o time a garantir que os itens do backlog estão “Ready” conforme a DOR e os itens
entregues estão “Done” conforme a DOD.
Scrum
SM - Scrum Master
● É um líder servidor
● Remove os impedimentos
● É autoridade no processo e um agente de mudanças
● Coach
● Escudo contra interferência
● Auxilia o Product Owner e o time
● Treina e garante que todos estão utilizando o processo
Scrum
Time
● Função do SCRUM Team é ser auto-organizado
● Define as metas dos Sprints e negocia com o PO
● Produz com qualidade e valor para o PO
● Focado nos objetivos estabelecidos com o PO
● Busca aprender e melhorar continuamente seu trabalho
● O time é responsável pelas estimativas
Scrum
Product Backlog
● Lista com as funcionalidades para o produto
● O conteúdo é definido e priorizado pelo PO
● Não necessita estar completo
● Com o tempo o Product Backlog cresce ou diminui dependendo do
que o PO necessita
Scrum
Sprint Pré-Planning/Refinamento
● Reunião com o PO, Scrum Master e Scrum Team
● PO descreve as funcionalidades
● A equipe questiona e tira dúvidas
● Se necessário haverá um refinamento da(s) história(s)
● Time pontua as histórias, quebra as tasks, estima as tasks que
estiverem entendidas
Scrum
Sprint Planning Meeting
● Reunião com o P.O., Scrum Master e Scrum Team
● P.O. descreve as funcionalidades refinadas
● A equipe questiona, pontua e quebra as tasks com estimativas
● Reavalia as estimativas realizadas na Pre-Planning
● No final é gerado o Sprint Backlog
● Scrum Team e o P.O. definirão o objetivo
Scrum
Planning Poker
● Estimar o esforço das funcionalidades
● Números menores mais simples
● Números maiores são mais complexos
● Coringas:
○ Café - 15 minutos para uma pausa
○ ? - Não foi entendido alguma funcionalidade falada
Scrum
Sprint
● Funcionalidades escolhidas na Sprint Planning Meeting na Coluna À Fazer
● É definido um prazo para o Sprint (1, 2, 3 ou 4 semanas)
○ O prazo é mantido até o final do projeto
● Considera-se Sucesso:
○ Quando todas as tarefas estiverem na Coluna Finalizado
● Finalizado com Falha:
○ Quando o tempo estourar (2 semanas por exemplo) e/ou funcionalidades mal
implementadas e sem qualidade
Scrum
Quadro KANBAN
● No quadro é colocado as histórias da Sprint Backlog com suas tasks
● Os Post its são importantes
● Serve para avaliar o andamento e organizar a quantidade de itens restantes
● Pode utilizar as cores para definir o esforço facilitando a visualização dos
itens que devem ser atacados primeiro
Scrum
Daily Scrum
● Reunião em Pé com tempo MÁXIMO 15 minutos
● Deverá ser respondida apenas 3 perguntas:
○ O que você fez ontem?
○ O que você fará hoje?
○ Há algum impedimento no seu caminho?
● É uma reunião FOCADA
○ Não é para resolver problemas
○ Não é Status Report
Scrum
Sprint Review Meeting
● No final de cada Sprint é feito um Sprint Review Meeting
● É mostrado o que foi alcançado no Sprint
● Nesta reunião estará o P.O., Scrum Team, Scrum Master, Stakeholders e convidados
podem dar feedbacks
● Atualizar o Backlog
● O mais importante é que o objetivo esteja realizado
Scrum
Sprint Retrospective
● Ocorre ao final do Sprint
● Utilizado para avaliar:
○ O que está indo bem
○ O que está indo mal
○ E quais ações serão tomadas para melhorar
Scrum