SlideShare uma empresa Scribd logo
1 de 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!

Mais conteúdo relacionado

Mais procurados

Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de bananaejedelmal
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareRobson Silva Espig
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Plano de gerenciamento das comunicações 1.0
Plano de gerenciamento das comunicações 1.0Plano de gerenciamento das comunicações 1.0
Plano de gerenciamento das comunicações 1.0Cassiano Ascimann
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de softwareYuri Garcia
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisDaniel Ferreira
 
IIS Unidad 2 Modelos de proceso del software
IIS Unidad 2 Modelos de proceso del softwareIIS Unidad 2 Modelos de proceso del software
IIS Unidad 2 Modelos de proceso del softwareFranklin Parrales Bravo
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e PráticaEduardo Pires
 
AGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSAGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSEder Nogueira
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 ModelDouglas Alonso
 
Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Thiago Sinésio
 
Aula 4 - Gestão de Projetos
Aula 4 - Gestão de ProjetosAula 4 - Gestão de Projetos
Aula 4 - Gestão de ProjetosFernando Dantas
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de RequisitosPaulo Furtado
 

Mais procurados (20)

Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de banana
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Scrum na Prática
Scrum na PráticaScrum na Prática
Scrum na Prática
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Plano de gerenciamento das comunicações 1.0
Plano de gerenciamento das comunicações 1.0Plano de gerenciamento das comunicações 1.0
Plano de gerenciamento das comunicações 1.0
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de software
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos Ágeis
 
IIS Unidad 2 Modelos de proceso del software
IIS Unidad 2 Modelos de proceso del softwareIIS Unidad 2 Modelos de proceso del software
IIS Unidad 2 Modelos de proceso del software
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
 
AGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSAGILE UNIFIED PROCESS
AGILE UNIFIED PROCESS
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 Model
 
Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)
 
Aula 4 - Gestão de Projetos
Aula 4 - Gestão de ProjetosAula 4 - Gestão de Projetos
Aula 4 - Gestão de Projetos
 
Modelo em Espiral
Modelo em EspiralModelo em Espiral
Modelo em Espiral
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
 

Destaque

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 FeaturesThiago Pereira
 
Desenvolvimento de software LEAN
Desenvolvimento de software LEAN Desenvolvimento de software LEAN
Desenvolvimento de software LEAN Venícios Gustavo
 
FDD (Feature Driven Development)
FDD (Feature Driven Development)FDD (Feature Driven Development)
FDD (Feature Driven Development)urumisama
 
Reuso de software
Reuso de softwareReuso de software
Reuso de softwarerebekinha
 
Apresentação dissertação
Apresentação dissertaçãoApresentação dissertação
Apresentação dissertaçãoDorgival Netto
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentKhanh Nguyen
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentHendrik Ebbers
 
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...Rafael Barbosa Camargo
 
Agile Software Development Scrum Vs Lean
Agile Software Development Scrum Vs LeanAgile Software Development Scrum Vs Lean
Agile Software Development Scrum Vs LeanAbdul Wahid
 
Lean product development implementation
Lean product development implementationLean product development implementation
Lean product development implementationITZHAK123
 

Destaque (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
 

Semelhante a Feature-Driven Development - Visão Geral

Fdd feature driven development (slide ) do trabalho
Fdd   feature driven development (slide ) do trabalhoFdd   feature driven development (slide ) do trabalho
Fdd feature driven development (slide ) do trabalhoLemon Lopes Leite
 
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 FuncionalidadesHiury Araújo
 
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 empresaHenrique Nunes Bez Fontana
 
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)Rennan Martini
 
1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCPFrank Coelho
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcpFrank 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 softwareJerô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 softwareRoberto Brandini
 
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.pptHurgelNeto
 
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!Daniel Carvalhinho
 
Visao geral TI02 2-0
Visao geral TI02 2-0Visao geral TI02 2-0
Visao geral TI02 2-0Ale Uehara
 
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)Ignacio Lizarralde
 

Semelhante a Feature-Driven Development - Visão Geral (20)

Fdd feature driven development (slide ) do trabalho
Fdd   feature driven development (slide ) do trabalhoFdd   feature driven development (slide ) do trabalho
Fdd feature driven development (slide ) do trabalho
 
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)
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
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
 

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