SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Requisitos em
Projetos Ágeis
    Saulo Arruda
O que são requisitos?


  Um requisito é definido como "uma
condição ou uma capacidade com a qual o
     sistema deve estar de acordo"


                                   [RUP2002]
http://www.flickr.com/photos/osucommons/3708635666/
Tipos de Requisitos
• Modelo FURPS+:
 • Funcionalidade (Funcionality)
 • Usabilidade (Usability)
 • Confiabilidade (Reliability)
 • Desempenho (Performance)
 • Suportabilidade (Supportability)
• + restrições de interface e físicos de
  implementação,
                  design, requisitos
                                           [RUP2002]
Especificação

• Formas de especificação:
 • SRS (Software Requirements
    Specification)
 • Use Cases
 • User Stories
• Projetos Ágeis fazem uso das 3 formas!
                           [RUP2002][AGILEMODELING2009]
SRS

• Relação de todos os requisitos de um
  projeto/módulo/release/componente etc.;
• Engloba requisitos funcionais e não-
  funcionais.
• Exemplo | Modelo
                                         [RUP2002]
Use Cases

• Descrição dos cenários de uso de
  determinada funcionalidade;
• Bastante detalhado, porém difícil de ser
  mantido.
• Exemplo
                                        [RUP2002]
[AGILEMODELING2009]
User Stories

• Lembrar que é necessário uma conversa
  com o cliente;
• Granularidade pequena, facilita a estimativa
  e planejamento, mas não é documentação;
• Devem ser escritas pelo cliente.
                                  [AGILEMODELING2009]
Escrevendo Histórias
• Modelo informal:
 • Alunos podem comprar tickets de
     estacionamento mensalmente;
 •   Tickets de estacionamento podem ser
     pagos via cartão de crédito;
 •   Estudantes podem se matricular em
     seminários se atenderem os pré-
     requisitos;                     [COHN2004]
Escrevendo Histórias

• Modelo Formal:
 • Como (papel do usuário)
 • Quero (alguma coisa)
 • Para (benefício/valor para o negócio)
                                     [COHN2004]
Critério de Aceite

• Testes de Aceitação da História;
• Focado na interface com o Usuário;
• Testes de usabilidade, performance, stress;
• Orienta o desenvolvedor;
                                       [COHN2004]
[AGILEMODELING2009]




Exemplo
Visão

• Para quem estamos trabalhando?
• Qual problema estamos resolvendo?
• O que meu cliente precisa?

• Exemplo | Modelo
Modelo de Domínio

• Modelo conceitual do domínio de negócio
  do cliente;
• Principais entidades e seus
  relacionamentos;
• Não se preocupe em deixá-lo completo ou
  detalhado, faça isso no seu código!
                                 [AGILEMODELING2009]
[AGILEMODELING2009]
Interface com o
          Usuário

• Mostrar como ficará as telas;
• Faça de forma que seu usuário entenda;
• Use ferramentas que te ajudem: Papel e
  Lapiseira, Balsamiq Mockups,Visio, HTML;

                                [AGILEMODELING2009]
Requisitos Em Projetos Ageis
A neura dos requisitos
• Não pense que você consiguirá “levantar”
  todos os requisitos no início do projeto;
• Deixe os requisitos evoluirem (e mudarem)
• Só existem 2 certezas:
 • Vai mudar!
 • Vai dar pau!
Mão na massa


Requisitos para software de
  rede social corporativa
Referências
•   Scott Ambler - Agile Modeling: Effective Practices for eXtreme
    Programming and the Unified Process

•   Dean Leffingwell, Don Widrig - Managing Software Requirements: A Use
    Case Approach, Second Edition

•   Mike Cohn - User Stories Applied: For Agile Software Development

•   Johanna Rothman, Esther Derby - BehindClosedDoors: Secrets of Great
    Management

•   Johanna Rothman - Manage It! Your Guide to Modern, Pragmatic Project
    Management

•   Alistair Cockburn - Escrevendo Casos de Uso Eficazes

Mais conteúdo relacionado

Mais de Saulo Arruda

Mande seu chefe pentear macaco
Mande seu chefe pentear macacoMande seu chefe pentear macaco
Mande seu chefe pentear macacoSaulo Arruda
 
Sthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e MobileSthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e MobileSaulo Arruda
 
Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?Saulo Arruda
 
Startups - É programando que se empreende
Startups - É programando que se empreendeStartups - É programando que se empreende
Startups - É programando que se empreendeSaulo Arruda
 
Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6Saulo Arruda
 
Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5Saulo Arruda
 
Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4Saulo Arruda
 
TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?Saulo Arruda
 
Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3Saulo Arruda
 
Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2Saulo Arruda
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Saulo Arruda
 
Empreendedorismo Agil
Empreendedorismo AgilEmpreendedorismo Agil
Empreendedorismo AgilSaulo Arruda
 
Minicurso Objective-C
Minicurso Objective-CMinicurso Objective-C
Minicurso Objective-CSaulo Arruda
 
Aprendendo a errar ou errando para aprender
Aprendendo a errar ou errando para aprenderAprendendo a errar ou errando para aprender
Aprendendo a errar ou errando para aprenderSaulo Arruda
 
Todo mundo nasce Agil
Todo mundo nasce AgilTodo mundo nasce Agil
Todo mundo nasce AgilSaulo Arruda
 

Mais de Saulo Arruda (20)

Mande seu chefe pentear macaco
Mande seu chefe pentear macacoMande seu chefe pentear macaco
Mande seu chefe pentear macaco
 
Sthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e MobileSthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e Mobile
 
Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?
 
Startups - É programando que se empreende
Startups - É programando que se empreendeStartups - É programando que se empreende
Startups - É programando que se empreende
 
SCRUM - Aula 2
SCRUM - Aula 2SCRUM - Aula 2
SCRUM - Aula 2
 
SCRUM - Aula1
SCRUM - Aula1SCRUM - Aula1
SCRUM - Aula1
 
Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6
 
Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5
 
Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4
 
TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?
 
Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3
 
Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Empreendedorismo Agil
Empreendedorismo AgilEmpreendedorismo Agil
Empreendedorismo Agil
 
Minicurso Ruby
Minicurso RubyMinicurso Ruby
Minicurso Ruby
 
Minicurso Objective-C
Minicurso Objective-CMinicurso Objective-C
Minicurso Objective-C
 
Rails nas Nuvens
Rails nas NuvensRails nas Nuvens
Rails nas Nuvens
 
Aprendendo a errar ou errando para aprender
Aprendendo a errar ou errando para aprenderAprendendo a errar ou errando para aprender
Aprendendo a errar ou errando para aprender
 
JBoss TRE - Aula1
JBoss TRE - Aula1JBoss TRE - Aula1
JBoss TRE - Aula1
 
Todo mundo nasce Agil
Todo mundo nasce AgilTodo mundo nasce Agil
Todo mundo nasce Agil
 

Requisitos Em Projetos Ageis

  • 2. O que são requisitos? Um requisito é definido como "uma condição ou uma capacidade com a qual o sistema deve estar de acordo" [RUP2002]
  • 4. Tipos de Requisitos • Modelo FURPS+: • Funcionalidade (Funcionality) • Usabilidade (Usability) • Confiabilidade (Reliability) • Desempenho (Performance) • Suportabilidade (Supportability) • + restrições de interface e físicos de implementação, design, requisitos [RUP2002]
  • 5. Especificação • Formas de especificação: • SRS (Software Requirements Specification) • Use Cases • User Stories • Projetos Ágeis fazem uso das 3 formas! [RUP2002][AGILEMODELING2009]
  • 6. SRS • Relação de todos os requisitos de um projeto/módulo/release/componente etc.; • Engloba requisitos funcionais e não- funcionais. • Exemplo | Modelo [RUP2002]
  • 7. Use Cases • Descrição dos cenários de uso de determinada funcionalidade; • Bastante detalhado, porém difícil de ser mantido. • Exemplo [RUP2002]
  • 9. User Stories • Lembrar que é necessário uma conversa com o cliente; • Granularidade pequena, facilita a estimativa e planejamento, mas não é documentação; • Devem ser escritas pelo cliente. [AGILEMODELING2009]
  • 10. Escrevendo Histórias • Modelo informal: • Alunos podem comprar tickets de estacionamento mensalmente; • Tickets de estacionamento podem ser pagos via cartão de crédito; • Estudantes podem se matricular em seminários se atenderem os pré- requisitos; [COHN2004]
  • 11. Escrevendo Histórias • Modelo Formal: • Como (papel do usuário) • Quero (alguma coisa) • Para (benefício/valor para o negócio) [COHN2004]
  • 12. Critério de Aceite • Testes de Aceitação da História; • Focado na interface com o Usuário; • Testes de usabilidade, performance, stress; • Orienta o desenvolvedor; [COHN2004]
  • 14. Visão • Para quem estamos trabalhando? • Qual problema estamos resolvendo? • O que meu cliente precisa? • Exemplo | Modelo
  • 15. Modelo de Domínio • Modelo conceitual do domínio de negócio do cliente; • Principais entidades e seus relacionamentos; • Não se preocupe em deixá-lo completo ou detalhado, faça isso no seu código! [AGILEMODELING2009]
  • 17. Interface com o Usuário • Mostrar como ficará as telas; • Faça de forma que seu usuário entenda; • Use ferramentas que te ajudem: Papel e Lapiseira, Balsamiq Mockups,Visio, HTML; [AGILEMODELING2009]
  • 19. A neura dos requisitos • Não pense que você consiguirá “levantar” todos os requisitos no início do projeto; • Deixe os requisitos evoluirem (e mudarem) • Só existem 2 certezas: • Vai mudar! • Vai dar pau!
  • 20. Mão na massa Requisitos para software de rede social corporativa
  • 21. Referências • Scott Ambler - Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process • Dean Leffingwell, Don Widrig - Managing Software Requirements: A Use Case Approach, Second Edition • Mike Cohn - User Stories Applied: For Agile Software Development • Johanna Rothman, Esther Derby - BehindClosedDoors: Secrets of Great Management • Johanna Rothman - Manage It! Your Guide to Modern, Pragmatic Project Management • Alistair Cockburn - Escrevendo Casos de Uso Eficazes

Notas do Editor