Академический Документы
Профессиональный Документы
Культура Документы
Análise de Negócio
Objetivos
• Apresentar técnicas e práticas de análise de negócios com foco em requisitos
de software.
Agenda
• Técnicas de Levantamento de Requisitos
• Analista de Negócio
• Feature
• User Story e Critérios e Aceitação
• Relato de Bugs
• Requisitos Não Funcionais
• Fluxos
• Personas
• BPMn
• DoR e DoD
• Demo (Review)
• Rastreabilidade
• Product Backlog Building
• Ferramentas de Estratégia
Benefícios
• Estabelecer um ponto de equilíbrio, definir uma linguagem comum, que facilite
o entendimento e a comunicação entre o pessoal de negócio e os
desenvolvedores.
• Facilitar o entendimento entre os envolvidos
• Ter uma linguagem objetiva, simples e comum
• Usar diversas técnicas para melhorar a comunicação e o entendimento
• Otimizar o tempo de entendimento da solicitação
Técnicas de Levantamento de
Requisitos
Atividades macro
• Sommerville (2003) propõe um processo genérico de levantamento e análise que contém as
seguintes atividades:
• No final do workshop devemos ter uma visão mais clara do produto suas
funcionalidades e será mais fácil identificar, escrever e refinar as estórias do
usuário.
Prototipagem
• Protótipo tem por objetivo explorar aspectos críticos dos requisitos de um
produto, implementando de forma rápida um pequeno subconjunto de
funcionalidades deste produto.
• O protótipo é indicado para estudar as alternativas de interface do usuário;
problemas de comunicação com outros produtos; e a viabilidade de
atendimento dos requisitos de desempenho.
• As técnicas utilizadas na elaboração do protótipo são várias: interface de
usuário, relatórios textuais, relatórios gráficos, entre outras.
Prototipagem
• Alguns dos benefícios do protótipo são as reduções dos riscos na construção
do sistema, pois o usuário chave já verificou o que o analista captou nos
requisitos do produto.
• Para ter sucesso na elaboração dos protótipos é necessária a escolha do
ambiente de prototipagem, o entendimento dos objetivos do protótipo por
parte de todos os interessados no projeto, a focalização em áreas menos
compreendidas e a rapidez na construção.
Boas práticas
• Preparação: Prepare-se previamente e de forma adequada para as atividades
planejadas, as quais são geralmente realizadas através de entrevistas,
questionários, brainstorms e workshops.
• Stakeholders: Mapeie (com antecedência) quem serão os participantes do
processo, quais os seus papéis no projeto e na organização e quais são os seus
níveis de conhecimento e influência. É imprescindível que as pessoas corretas
sejam envolvidas o quanto antes.
• Postura: Busque sempre a efetividade nas comunicações, assim como procure
demonstrar ponderação durante as situações de conflito.
• Entendimento: Procure focar no entendimento do problema e evitar
conclusões precipitadas. Nesse primeiro momento o mais importante é saber
escutar.
Boas práticas
• Experiências passadas: Utilize de forma positiva as experiências vividas
anteriormente para ajudar a melhor compreender o problema. Evite
considerar que o problema atual é igual a algum outro que tenha sido
resolvido em um cliente ou projeto passado.
• Documentação: descreva o problema de forma clara e objetiva. Em caso de
dúvidas, consulte o cliente e evite inferências. Procure usar exemplos citados
pelos stakeholders. A adoção de diagramas e figuras sempre ajuda na
documentação e entendimento dos requisitos. A criação de protótipos
também contribui para o entendimento comum da solução proposta.
• Validação: Faça com que os stakeholders validem a documentação, verificando
o entendimento do problema e as melhorias desejadas e eventualmente façam
solicitações de mudanças.
Cenários
• Cenários contêm informações que podem ser extraídas mais detalhadamente
com o objetivo de detalhar os cenários.
• Além dos cenários, a análise do perfil dos usuário e das tarefas que eles
executam permitem um maior conhecimento do domínio, possibilitando uma
melhor especificação dos requisitos.
• Conhecer a situação atual e antecipar o impacto que um novo sistema deve ter
é fundamental para o seu sucesso.
• Cenários são uma maneira excelente de representar, para clientes e usuários,
os problemas atuais e as possibilidades que podem surgir.
• Em resumo, os cenários permitem compreensão dos problemas atuais pelos
analistas e antecipação da situação futura pelo clientes e desenvolvedores.
Cenários - Exemplos
Cenários - Exemplos
Exemplos
• Exemplo
Considere o seguinte cenário sobre um caixa eletrônico.
• Realiza-se um estudo dirigido sobre o escopo do sistema e seu contexto. Então, são realizados
estudos mais detalhados sobre o domínio do negócio para cada área a ser modelada. Após cada
estudo dirigido sobre o domínio, pequenos grupos são formados por membros do domínio do
negócio sendo estudado e por desenvolvedores, que comporão seus próprios modelos que
satisfaçam o domínio em questão. Os pequenos grupos apresentam seus modelos para serem
revisados por parceiros e para discussão. Um dos modelos propostos, ou uma combinação dos
modelos, é selecionada por consenso, tornando-se, assim, o modelo para aquela área do domínio do
negócio. Realiza-se, então, uma combinação do modelo da área do domínio dentro de um modelo
abrangente, ajustando a forma do modelo se for necessário.
http://heptagon.com.br/fdd1
FDD: Processo 2: CLF-Construir a Lista de
Funcionalidades
• É uma atividade inicial que abrange todo o projeto, para identificar todas as
funcionalidades que satisfaçam aos requisitos.
• Uma equipe, geralmente composta apenas por programadores-líderes do
processo nº 1, é formada para decompor funcionalmente o domínio em áreas
de negócio, atividades de negócio dentro delas e passos dentro de cada
atividade de negócio, formando assim a lista categorizada de funcionalidades.
A categorização de mais alto nível para a lista de funcionalidades vem da
divisão do domínio feita pelos especialistas do domínio no processo nº 1.
http://heptagon.com.br/fdd2
Explicação
• É um pedaço de funcionalidade que agregue valor aos negócios.
• Expressa na forma ARO <action> <result> <object>.
• Características:
• Ele deve fornecer o valor do negócio
• Deve ser estimável - ele deve ter definição suficiente para a equipe de
desenvolvimento para fornecer uma estimativa do trabalho envolvido na sua
implementação
• Ele deve ser pequeno o suficiente para caber dentro de uma iteração -
portanto, se for muito grande, deve ser subdividida
• Ele deve ser testável - você deve entender o que automatizado ou teste
manual uma característica deve passar a fim de ser aceitável para o cliente
Exemplo
• Calcular o total de uma venda
• Calcular a quantidade total vendida por um varejista para uma descrição de
produto.
• Imprimir comprovante de itens com descontos
• Registrar preço por EAN
• Solicitar número de autorização da finalizadora
• Limitar o peso máximo da balança
• Efetuar acréscimo em um item
• Mais exemplos
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo
Mapa de Funcionalidades
Exemplo
Exemplo
Exemplos
• Site Portal
• ClickPygg
User Story e Critérios de
Aceitação
Solução
O que é uma história de usuário?
• Uma história de usuário descreve funcionalidades que tragam valor para o
usuário de um sistema de software. Elas são compostas de três aspectos:
• Uma descrição por escrito da história que será usada para planejar e como um lembrete
• Conversas sobre a história que servem para aprofundar os detalhes da história
• Testes que transmitem e documentar detalhes e como ela será utilizada quando
implementada
Conceito 3C
• O conceito do 3C é baseado em iniciar com a escrita de uma ideia em um
cartão, para que possamos lembrar. O cartão é o primeiro C. E ele leva ao
próximo, gerando um “lembrete para a conversação”.
• Que é o que precisamos gerar, conversas. O objetivo com isto é validar as
ideias, com pessoas que podem ajudar no tópico. O melhor nestas conversas é
criar exemplos que ajudem a validar a mesma.
• Estes exemplos acabam virando depois cenários de aceitação da história. Se é
um cálculo, exemplos de cálculos. Através deste processo, criamos um “cartão
executável“. E este é o nosso segundo C.
Conceito 3C
• Estas conversas ajudam o time a identificar alguns atributos para os cartões,
exemplo?
• senso de valor
• prioridade
• risco associado
• qualquer-atributo-que-o-time-consiga-ver-valor
• O terceiro C é sobre confirmação. Através das conversas com o time e clientes
poderemos entender como validar o cartão e confirmar que o que temos
definido é o necessário para “fazer acontecer“. E então é isto que precisamos
buscar, confirmação! E dos nossos clientes! Eles irão confirmar sua ideia e
ajudar a mesma a crescer.
Características das histórias de usuário
• Colaboração com cliente: A história do Usuário é escrita em colaboração entre
os desenvolvedores e o cliente.
• A prioridade é satisfazer o cliente, entregando o mais rápido possível e de
forma contínua software que tenha valor: Para satisfazer o cliente é preciso
entendê-lo. A história ajuda a melhorar o entendimento da necessidade do
cliente para que ocorra a entrega de valor.
• Conversa é SEMPRE a melhor forma de comunicação: Converse com o seu
cliente, escreva a história do usuário e transmita para equipe na Reunião de
Planejamento (Planning Meeting).
História do Usuários x
Especificações de Requisitos
• A maior diferença está no nível de detalhe. História do Usuários só devem
fornecer detalhes suficientes para “chegar” no entendimento do que deve ser
feito e facilitar a estimativa de velocidade da equipe.
• Quando escrevemos uma História o foco é nas necessidades do usuário,
devemos evitar os detalhes técnicos, tais como descrição de tecnologia,
desenho das interfaces do usuário, wireframes, modelo de dados, algoritmos e
etc.
Boa Prática: Mantenha a História focada nas necessidades do usuário e nos
benefícios.
O Modelo
Padrão de escrita
• Existem 3 informações que são fundamentais nas histórias de usuário, são elas:
• Quem? Para quem estamos desenvolvendo a funcionalidade.
• O que? Uma descrição resumida da funcionalidade em si.
• Por que? O motivo pelo qual o cliente precisa desta funcionalidade. Se possível citando o
valor de negócio obtido.
• Repare que no SENDO nós identificamos o perfil do usuário que vai usar a
funcionalidade, no POSSO a funcionalidade em si que precisa ser desenvolvida
e no PARA QUE a motivação da funcionalidade, incluindo o valor de negócio.
Padrão de escrita
• Com estas informações, o desenvolvedor vai conseguir trabalhar “mais
armado”, e provavelmente vai criar uma funcionalidade mais bem elaborada
do que se recebesse apenas a necessidade do cliente, sem o detalhamento de
quem vai usar e por que vai usar.
História de Usuário Mínima
Exemplos
Conversas
• No SCRUM as conversas geralmente acontecem na Reunião de Planejamento
da Sprint (Planning Meeting)
• Também durante o desenvolvimento da Sprint.
• Mas, também elas podem ocorrer durante o Workshop de Requisitos e de
Escrita de História que é realizado antes da Reunião de Planejamento.
• Ela deve acontecer sempre que for necessário
Conversas
Equipe de Desenvolvimento
Testes de aceitação
• Toda história deve ser associada a pelo menos um Teste de Aceitação, o ideal é
ter um conjunto de testes. Estes testes definem as respostas que a
funcionalidade deve fornecer de acordo com a utilização por parte do usuário.
Estes testes se materializam na forma de “scripts” que indicam os resultados
desejados (esperados) bem como os resultados indesejados e que não devem
ser providos pelo sistema.
• Os Testes de Aceitação devem ser mais detalhados do que as histórias. Isto, por
duas razões:
• A primeira e mais importante: Para validar se a História do Usuário foi corretamente
implementada (codificada).
• E a segunda: Para prover o máximo de informações sobre a História.
BDD (Behavior Driven Development)
• É uma metodologia de desenvolvimento ágil que estimula a participação de todos os
membros da equipe, desenvolvedores, analistas e gestores do projeto.
• Utilizando o conceito de linguagem ubíqua onde o foco é o fluxo em que o código deve ser
escrito, não gerando a necessidade de conhecimentos técnicos, permitindo então que
qualquer pessoa com conhecimento técnico ou não possa montar os cenários de teste.
• Exemplo: Todos devem usar os mesmos termos tanto na linguagem falada quanto no código.
Isso significa que, se durante uma conversa com um cliente do sistema de cobrança, por
exemplo, ele disser: “Temos que emitir a fatura para o cliente antes da data limite”, vamos
ter no nosso código alguma coisa do tipo:
• Uma classe para a entidade Cliente;
• Uma classe para a entidade Fatura;
• Algum serviço que tenha um método emitir;
• Algum atributo com o nome de data limite.
• Essa linguagem ubíqua deve ser compreendida por todos e não pode haver ambiguidades.
Práticas de BDD
• Estimular a participação de todas as partes no processo.
• Enfatiza o detalhamento posterior
• Para desenvolver uma funcionalidade, utiliza-se exemplos de seu
comportamento.
• Automatização dos exemplos e das histórias de usuário.
Princípios e metodologia
• No BDD há um princípio, uma metodologia:
• Dado que (Given)
• Quando (When)
• Então (Then)
• ERRO:
• Mesmo após informar o desconto, o valor total do produto segue sendo o mesmo que
era antes (sem o desconto).
Exemplo
• SITUAÇÃO DESEJADA:
• Que o valor total do produto considere o desconto aplicado, ou seja:
Valor total do produto = (Valor unitário * Quantidade) – Desconto.
Exemplo: Se valor do produto é 90,00, a quantidade informada é 10, e o percentual de
desconto é informado é 10%, então o valor total do produto deve ser 810,00.
Requisitos não funcionais
Solução
Requisitos não funcionais
• Eles impactam a experiência do usuário, e influenciam decisões de arquitetura
e design.
• Diz respeito aos aspectos técnicos que o seu sistema deve cumprir, tais como
questões relacionadas com o desempenho, problemas de confiabilidade e
problemas de disponibilidade.
• Exemplos:
• Confluence
• Mantis
Product Backlog Building
Product Backlog Building
• Product Backlog Building
Ferramentas de Estratégia
5W2H
Exemplo
Outras ferramentas
• Ferramentas Visuais para Estrategistas
Referencias
• http://historiasdeusuario.com.br
• Escrevendo Histórias do Usuário Eficazes – Rildo Santos
• http://pt.slideshare.net/Ridlo/escrevendo-estrias-do-usurio-eficazes?qid=a25c01be-ac4c-42cf-935d-
c07c4ab2f6d1&v=default&b=&from_search=1
• Analista de Negócio Ágil 3.0 – Rildo Santos
• http://pt.slideshare.net/Ridlo/analista-de-negcio-gil-30
• Análise de Negócio com Métodos Ágeis
• http://pt.slideshare.net/Ridlo/anlise-de-negcio-com-mtodos-geis
• http://www.romanpichler.com/blog
• Livro: User Stories Applied For Agile Software Development by Mike Cohn
• www.agilealliance.org
• http://www.agilebrazil.com/
• http://pt.slideshare.net/aolchik/agile-brazil-2013-impact-mapping-uma-abordagem-lean-
para-alcancar-os-seus-objetivos-de-negocio?qid=1162c2f6-a221-4856-b130-
100503fcb27d&v=qf1&b=&from_search=1
Referencias
• http://pt.slideshare.net/EnfocusSolutions/the-agile-business-analyst-41231700
• http://blog.andrefaria.com/sessoes-de-backlog-grooming-organizacao-do-backlog
• http://guide.agilealliance.org/
• http://www.brunonardini.com.br/processos-ageis/3-tecnicas-para-definir-e-
priorizar-user-stories
• http://pt.slideshare.net/swissq/introduction-priority-poker-en
• http://barryoreilly.com/2013/10/21/how-to-implement-hypothesis-driven-
development/
• http://agilemodeling.com/artifacts/changeCase.htm
• http://www.matera.com/br/2013/06/10/conceito-de-ready-and-done/
• http://maypun.blogspot.com.br/2011/04/retrospectiva-estrella-de-mar.html
• http://pt.slideshare.net/Ridlo/reumo-do-guia-babok-3-v1
Referências
• http://pt.slideshare.net/fabiogr/user-story-mapping-9594695
• http://www.slideshare.net/Ridlo/tcnicas-de-gesto-para-anlise-de-
negcio?qid=784a54ae-1eb0-4c06-95d1-0bd21c83978c&v=&b=&from_search=3
• https://www.dimap.ufrn.br/~jair/ES/c4.html
• http://heptagon.com.br/fdd-oque
• https://prezi.com/wzrm_icbitk4/engenharia-de-software-fdd/
• https://www.ibm.com/developerworks/community/blogs/tlcbr/entry/boas_praticas
_para_a_elicitacao_de_requisitos?lang=en
• http://imasters.com.br/artigo/18032/gerencia-de-projetos/elicitacao-de-requisitos-
e-suas-tecnicas?trace=1519021197&source=single
• https://luizaugeane.wordpress.com/2015/10/23/guia-babok-3-boas-praticas-para-
analise-de-negocio/
Obrigado!
www.blpit.com.br
e-mail: gustavo.lima@blpit.com.br
Tel.: 55 16 3965-2324
Cel.: 55 16 99992-1678
Skype: gustavo.borges.lima
http://www.linkedin.com/company/blp-it-consultoria-e-solu-es-em-ti
br.linkedin.com/in/gustavolima