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

Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodologyAmit Verma
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
Agile cevik yaklasim ile scrum yontemi
Agile cevik yaklasim ile scrum yontemiAgile cevik yaklasim ile scrum yontemi
Agile cevik yaklasim ile scrum yontemiBurak COŞKUN
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Scrum ve Redmine ile yazılım projesi yönetimi
Scrum ve Redmine ile yazılım projesi yönetimiScrum ve Redmine ile yazılım projesi yönetimi
Scrum ve Redmine ile yazılım projesi yönetimiGokhan Boranalp
 
Introduction to Agile, by J.D. Meier
Introduction to Agile, by J.D. MeierIntroduction to Agile, by J.D. Meier
Introduction to Agile, by J.D. MeierJ.D. Meier
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile modelzoomers
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentRuhaim Izmeth
 
Agile software development
Agile software development Agile software development
Agile software development saurabh goel
 
Agile methodology
Agile methodologyAgile methodology
Agile methodologyTyler Rose
 
Agile software development compfest 13
Agile software development compfest 13Agile software development compfest 13
Agile software development compfest 13Panji Gautama
 

What's hot (20)

Agile Scrum Temel Egitimi
Agile Scrum Temel EgitimiAgile Scrum Temel Egitimi
Agile Scrum Temel Egitimi
 
Scrum em 15 minutos
Scrum em 15 minutosScrum em 15 minutos
Scrum em 15 minutos
 
Scrum 101
Scrum 101 Scrum 101
Scrum 101
 
Metodología agile scrum
Metodología agile scrum Metodología agile scrum
Metodología agile scrum
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Agile cevik yaklasim ile scrum yontemi
Agile cevik yaklasim ile scrum yontemiAgile cevik yaklasim ile scrum yontemi
Agile cevik yaklasim ile scrum yontemi
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Scrum ve Redmine ile yazılım projesi yönetimi
Scrum ve Redmine ile yazılım projesi yönetimiScrum ve Redmine ile yazılım projesi yönetimi
Scrum ve Redmine ile yazılım projesi yönetimi
 
TDD and BDD and ATDD
TDD and BDD and ATDDTDD and BDD and ATDD
TDD and BDD and ATDD
 
Introduction to Agile, by J.D. Meier
Introduction to Agile, by J.D. MeierIntroduction to Agile, by J.D. Meier
Introduction to Agile, by J.D. Meier
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile model
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Agile model
Agile modelAgile model
Agile model
 
Agile software development
Agile software development Agile software development
Agile software development
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
What Is Agile Scrum
What Is Agile ScrumWhat Is Agile Scrum
What Is Agile Scrum
 
Agile software development compfest 13
Agile software development compfest 13Agile software development compfest 13
Agile software development compfest 13
 

Viewers also liked

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
 

Viewers also liked (14)

Apresentação fdd
Apresentação fddApresentação fdd
Apresentação fdd
 
FDD
FDDFDD
FDD
 
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

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
 
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/4André Vidal
 

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

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

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