SlideShare a Scribd company logo
1 of 35
Feature-Driven Development
                 Jaime Barroso
                   Isabela Maia
                 Ruan Carvalho
Roteiro
●   O que é FDD?

●   O que o FDD não é?

●   A equipe...

●   O que é Feature

●   Ciclo de Vida

●   Vantagens
O que é FDD??!
Feature-Driven Development (FDD) é
uma metodologia ágil para o processo
    de engenharia de software.
Foi elaborada com foco na entrega
freqüente de “software funcionando”
   e na utilização de boas práticas
      durante o desenvolvimento.
O FDD é um processo de desenvolvimento
        iterativo e incremental.
O FDD abstrai o melhor de dois mundos:
programação e modelagem
e foca em um desenvolvimento bem equilibrado.
O que o FDD não é??!
O FDD não é uma metodologia descrita em
       trinta volumes de livros.
O FDD não é uma metodologia de
gerenciamento de projetos de software.
O FDD não é uma bala de prata, portanto, ela não
resolverá todos os problemas do mundo, ou da
                sua empresa.
A equipe...
Gerente de Projeto
●   O Gerente do Projeto é responsável pelos
    assuntos administrativos;

●   Gerenciamento de recursos, orçamentos,
    equipamentos, entre outros;

●   A principal meta é garantir que nenhum fator
    externo atrapalhe a equipe.
Especialista de Negócios
●   Conhecedor das regras de negócio e apresenta
    as necessidades à equipe;

●   Disponibiliza os detalhes das funcionalidades;

●   Membro fixo da equipe e sempre fornece
    feedbacks sobre as entregas.
Arquiteto de Software
●   Bastante experiente em modelagem orientada
    a objetos - UML;

●   Atua como facilitador no entendimento das
    regras de negócio;

●   Responsável pela última palavra em toda a
    arquitetura do sistema;
Gerente de Desenvolvimento
●   Responsável pelo desenvolvimento diário do
    produto;

●   Resolve os conflitos técnicos – software,
    hardware - entre programadores-chefes;

●   Deve possuir experiência em desenvolvimento
    de software e nas tecnologias utilizadas no
    projeto;
Programadores-chefes
●   Responsável por liderar pequenos grupos de
    desenvolvedores;

●   Atua, também, como desenvolvedor e
    implementa as classes mais complexas;

●   Papel fundamental nas fases de análise do
    negócio e planejamento de features;
Programadores (Class-owners)
●   Compõem as pequenas equipes de
    funcionalidades;

●   Realiza programação, modelagem, testes e
    documentação das suas funcionalidades;

●   São os “donos” das classes que realizam as
    features atribuídas por Programadores-chefes
Outras funções
●   Gerente de Release    ●   Guru da linguagem

●
    Testadores            ●
                              Administrador de
                              Sistema
●
    Escritores técnicos
                          ●
                              Implantadores
●
    Marketing
                          ●
                              Entre outros...
O que é Feature
Features são as funcionalidades que
  representam algum valor para o
              cliente.
Features são nomeadas através da forma:

      <ação><resultado><objeto>
Exemplos de features
●   Calcular o desconto de uma venda

●   Listar os clientes ativos de uma empresa

●   Destacar os clientes devedores

●   Imprimir a nota fiscal de uma venda

●   Validar a senha de um usuário
Ciclo de Vida
Construir um modelo abrangente
●   Formar time de modelagem: especialistas,
    programadores e arquiteto;

●   Apresentar a visão geral do produto e estudar
    documentação existente;

●   Desenvolver modelos de pequenos grupos e
    unir para formar o modelo abrangente;

●   Executado uma única vez no projeto.
Construir lista de funcionalidades
●   Formar o time de funcionalidades, com os
    programadores-chefes;

●   Construir uma lista de features, separada por
    áreas de negócio;

●   Identificar as atividades de cada área;
Planejar por funcionalidades
●   Formar o time de planejamento: gerente,
    gerente de desenvolvimento e programadores-
    chefes;

●   Determinar a seqüência do desenvolvimento,
    baseado nas dependências de cada
    funcionalidade;

●   Atribuir áreas de negócios aos programadores-
    chefes, e classes aos desenvolvedores (class-
    owners)
Detalhar por funcionalidade
●   Apresentação detalhada da funcionalidade com
    especialista de negócio;

●   Estudar documentos e refinar modelos:
    diagramas, descrições, casos de uso;

●   Escrever prólogos de métodos e classes, sem
    implementação ainda;

●   Inspeção do design, ou modelo, da
    funcionalidade;
Desenvolver por Funcionalidade
●   Implementar classes e métodos;

●   Inspecionar código: o desenvolvedor “convida”
    outro para verificar seu código;

●   Testes unitários, realizados pelo próprio
    desenvolvedor;

●   Promover a build, se a classe estiver testada e
    inspecionada;
Vantagens
Por que usar FDD?
●   Planejamento e modelo na medida certa. Sem
    exageros, mas também sem ausência.

●   Os processos favorecem a aproximação de
    especialistas, gerentes e desenvolvedores.

●   Permite realizar entregas freqüentes ao cliente.

●   A inspeção de código e de design permite obter
    qualidade no produto final.
Referências
●   MAGNO, Alexandre. FDD Numa casca de
    banana. 2007.

●   Heptagon: www.heptagon.com.br

●   Nebulon – Jeff De Luca: www.nebulon.com

●   Oficial Site: featuredrivendevelopment.com
Obrigado!

More Related Content

What's hot

XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Rodrigo Branas
 

What's hot (20)

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Apresentação Metodologia Ágil: Família Crystal de Cockburn
Apresentação Metodologia Ágil: Família Crystal de CockburnApresentação Metodologia Ágil: Família Crystal de Cockburn
Apresentação Metodologia Ágil: Família Crystal de Cockburn
 
Crystal Clear
Crystal ClearCrystal Clear
Crystal Clear
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Crystal method
Crystal methodCrystal method
Crystal method
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
mÉTODO CRYSTAL CLEAR.pdf
mÉTODO CRYSTAL CLEAR.pdfmÉTODO CRYSTAL CLEAR.pdf
mÉTODO CRYSTAL CLEAR.pdf
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
 
Scrum
ScrumScrum
Scrum
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
 
Aula 1 - Qualidade de Software - Introdução e História.pptx
Aula 1 - Qualidade de Software - Introdução e História.pptxAula 1 - Qualidade de Software - Introdução e História.pptx
Aula 1 - Qualidade de Software - Introdução e História.pptx
 
Scrum - evolução contínua
Scrum - evolução contínuaScrum - evolução contínua
Scrum - evolução contínua
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 

Viewers also liked

Reuso de software
Reuso de softwareReuso de software
Reuso de software
rebekinha
 
Agile Software Development Scrum Vs Lean
Agile Software Development Scrum Vs LeanAgile Software Development Scrum Vs Lean
Agile Software Development Scrum Vs Lean
Abdul Wahid
 

Viewers also liked (12)

Reuso de Software - Síntese do Modelo de Features
Reuso de Software - Síntese do Modelo de FeaturesReuso de Software - Síntese do Modelo de Features
Reuso de Software - Síntese do Modelo de Features
 
Reúso
ReúsoReúso
Reúso
 
Desenvolvimento de software LEAN
Desenvolvimento de software LEAN Desenvolvimento de software LEAN
Desenvolvimento de software LEAN
 
FDD (Feature Driven Development)
FDD (Feature Driven Development)FDD (Feature Driven Development)
FDD (Feature Driven Development)
 
Reuso de software
Reuso de softwareReuso de software
Reuso de software
 
Apresentação dissertação
Apresentação dissertaçãoApresentação dissertação
Apresentação dissertação
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
 
Agile Software Development Scrum Vs Lean
Agile Software Development Scrum Vs LeanAgile Software Development Scrum Vs Lean
Agile Software Development Scrum Vs Lean
 
Lean product development implementation
Lean product development implementationLean product development implementation
Lean product development implementation
 
Ejemplo de fdd
Ejemplo de fddEjemplo de fdd
Ejemplo de fdd
 

Similar to Feature-Driven Development - Visão Geral

Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de banana
ejedelmal
 
1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP
Frank Coelho
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de software
Jerônimo Medina Madruga
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
Roberto Brandini
 

Similar to Feature-Driven Development - Visão Geral (20)

Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de banana
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresa
 
ES - 02
ES - 02ES - 02
ES - 02
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcp
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de software
 
DDD
DDDDDD
DDD
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.pptTexto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 
PLM Summit 2019 - A05 - Matheus Terra
PLM Summit 2019 - A05 - Matheus TerraPLM Summit 2019 - A05 - Matheus Terra
PLM Summit 2019 - A05 - Matheus Terra
 
Visao geral TI02 2-0
Visao geral TI02 2-0Visao geral TI02 2-0
Visao geral TI02 2-0
 
Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
 

Recently uploaded

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Recently uploaded (6)

Certificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfCertificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdf
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Apresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfApresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdf
 

Feature-Driven Development - Visão Geral

  • 1. Feature-Driven Development Jaime Barroso Isabela Maia Ruan Carvalho
  • 2. Roteiro ● O que é FDD? ● O que o FDD não é? ● A equipe... ● O que é Feature ● Ciclo de Vida ● Vantagens
  • 3. O que é FDD??!
  • 4. Feature-Driven Development (FDD) é uma metodologia ágil para o processo de engenharia de software.
  • 5. Foi elaborada com foco na entrega freqüente de “software funcionando” e na utilização de boas práticas durante o desenvolvimento.
  • 6. O FDD é um processo de desenvolvimento iterativo e incremental.
  • 7. O FDD abstrai o melhor de dois mundos: programação e modelagem
  • 8. e foca em um desenvolvimento bem equilibrado.
  • 9. O que o FDD não é??!
  • 10. O FDD não é uma metodologia descrita em trinta volumes de livros.
  • 11. O FDD não é uma metodologia de gerenciamento de projetos de software.
  • 12. O FDD não é uma bala de prata, portanto, ela não resolverá todos os problemas do mundo, ou da sua empresa.
  • 14. Gerente de Projeto ● O Gerente do Projeto é responsável pelos assuntos administrativos; ● Gerenciamento de recursos, orçamentos, equipamentos, entre outros; ● A principal meta é garantir que nenhum fator externo atrapalhe a equipe.
  • 15. Especialista de Negócios ● Conhecedor das regras de negócio e apresenta as necessidades à equipe; ● Disponibiliza os detalhes das funcionalidades; ● Membro fixo da equipe e sempre fornece feedbacks sobre as entregas.
  • 16. Arquiteto de Software ● Bastante experiente em modelagem orientada a objetos - UML; ● Atua como facilitador no entendimento das regras de negócio; ● Responsável pela última palavra em toda a arquitetura do sistema;
  • 17. Gerente de Desenvolvimento ● Responsável pelo desenvolvimento diário do produto; ● Resolve os conflitos técnicos – software, hardware - entre programadores-chefes; ● Deve possuir experiência em desenvolvimento de software e nas tecnologias utilizadas no projeto;
  • 18. Programadores-chefes ● Responsável por liderar pequenos grupos de desenvolvedores; ● Atua, também, como desenvolvedor e implementa as classes mais complexas; ● Papel fundamental nas fases de análise do negócio e planejamento de features;
  • 19. Programadores (Class-owners) ● Compõem as pequenas equipes de funcionalidades; ● Realiza programação, modelagem, testes e documentação das suas funcionalidades; ● São os “donos” das classes que realizam as features atribuídas por Programadores-chefes
  • 20. Outras funções ● Gerente de Release ● Guru da linguagem ● Testadores ● Administrador de Sistema ● Escritores técnicos ● Implantadores ● Marketing ● Entre outros...
  • 21. O que é Feature
  • 22. Features são as funcionalidades que representam algum valor para o cliente.
  • 23. Features são nomeadas através da forma: <ação><resultado><objeto>
  • 24. Exemplos de features ● Calcular o desconto de uma venda ● Listar os clientes ativos de uma empresa ● Destacar os clientes devedores ● Imprimir a nota fiscal de uma venda ● Validar a senha de um usuário
  • 26.
  • 27. Construir um modelo abrangente ● Formar time de modelagem: especialistas, programadores e arquiteto; ● Apresentar a visão geral do produto e estudar documentação existente; ● Desenvolver modelos de pequenos grupos e unir para formar o modelo abrangente; ● Executado uma única vez no projeto.
  • 28. Construir lista de funcionalidades ● Formar o time de funcionalidades, com os programadores-chefes; ● Construir uma lista de features, separada por áreas de negócio; ● Identificar as atividades de cada área;
  • 29. Planejar por funcionalidades ● Formar o time de planejamento: gerente, gerente de desenvolvimento e programadores- chefes; ● Determinar a seqüência do desenvolvimento, baseado nas dependências de cada funcionalidade; ● Atribuir áreas de negócios aos programadores- chefes, e classes aos desenvolvedores (class- owners)
  • 30. Detalhar por funcionalidade ● Apresentação detalhada da funcionalidade com especialista de negócio; ● Estudar documentos e refinar modelos: diagramas, descrições, casos de uso; ● Escrever prólogos de métodos e classes, sem implementação ainda; ● Inspeção do design, ou modelo, da funcionalidade;
  • 31. Desenvolver por Funcionalidade ● Implementar classes e métodos; ● Inspecionar código: o desenvolvedor “convida” outro para verificar seu código; ● Testes unitários, realizados pelo próprio desenvolvedor; ● Promover a build, se a classe estiver testada e inspecionada;
  • 33. Por que usar FDD? ● Planejamento e modelo na medida certa. Sem exageros, mas também sem ausência. ● Os processos favorecem a aproximação de especialistas, gerentes e desenvolvedores. ● Permite realizar entregas freqüentes ao cliente. ● A inspeção de código e de design permite obter qualidade no produto final.
  • 34. Referências ● MAGNO, Alexandre. FDD Numa casca de banana. 2007. ● Heptagon: www.heptagon.com.br ● Nebulon – Jeff De Luca: www.nebulon.com ● Oficial Site: featuredrivendevelopment.com