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 ...
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 recurs...
Especialista de Negócios
●   Conhecedor das regras de negócio e apresenta
    as necessidades à equipe;

●   Disponibiliza...
Arquiteto de Software
●   Bastante experiente em modelagem orientada
    a objetos - UML;

●   Atua como facilitador no en...
Gerente de Desenvolvimento
●   Responsável pelo desenvolvimento diário do
    produto;

●   Resolve os conflitos técnicos ...
Programadores-chefes
●   Responsável por liderar pequenos grupos de
    desenvolvedores;

●   Atua, também, como desenvolv...
Programadores (Class-owners)
●   Compõem as pequenas equipes de
    funcionalidades;

●   Realiza programação, modelagem, ...
Outras funções
●   Gerente de Release    ●   Guru da linguagem

●
    Testadores            ●
                            ...
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 c...
Ciclo de Vida
Construir um modelo abrangente
●   Formar time de modelagem: especialistas,
    programadores e arquiteto;

●   Apresentar...
Construir lista de funcionalidades
●   Formar o time de funcionalidades, com os
    programadores-chefes;

●   Construir u...
Planejar por funcionalidades
●   Formar o time de planejamento: gerente,
    gerente de desenvolvimento e programadores-
 ...
Detalhar por funcionalidade
●   Apresentação detalhada da funcionalidade com
    especialista de negócio;

●   Estudar doc...
Desenvolver por Funcionalidade
●   Implementar classes e métodos;

●   Inspecionar código: o desenvolvedor “convida”
    o...
Vantagens
Por que usar FDD?
●   Planejamento e modelo na medida certa. Sem
    exageros, mas também sem ausência.

●   Os processos ...
Referências
●   MAGNO, Alexandre. FDD Numa casca de
    banana. 2007.

●   Heptagon: www.heptagon.com.br

●   Nebulon – Je...
Obrigado!
Feature-Driven Development - Visão Geral
Upcoming SlideShare
Loading in...5
×

Feature-Driven Development - Visão Geral

2,155

Published on

Uma visão geral sobre o FDD.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,155
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Feature-Driven Development - Visão Geral

  1. 1. Feature-Driven Development Jaime Barroso Isabela Maia Ruan Carvalho
  2. 2. Roteiro ● O que é FDD? ● O que o FDD não é? ● A equipe... ● O que é Feature ● Ciclo de Vida ● Vantagens
  3. 3. O que é FDD??!
  4. 4. Feature-Driven Development (FDD) é uma metodologia ágil para o processo de engenharia de software.
  5. 5. Foi elaborada com foco na entrega freqüente de “software funcionando” e na utilização de boas práticas durante o desenvolvimento.
  6. 6. O FDD é um processo de desenvolvimento iterativo e incremental.
  7. 7. O FDD abstrai o melhor de dois mundos: programação e modelagem
  8. 8. e foca em um desenvolvimento bem equilibrado.
  9. 9. O que o FDD não é??!
  10. 10. O FDD não é uma metodologia descrita em trinta volumes de livros.
  11. 11. O FDD não é uma metodologia de gerenciamento de projetos de software.
  12. 12. O FDD não é uma bala de prata, portanto, ela não resolverá todos os problemas do mundo, ou da sua empresa.
  13. 13. A equipe...
  14. 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. 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. 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. 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. 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. 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. 20. Outras funções ● Gerente de Release ● Guru da linguagem ● Testadores ● Administrador de Sistema ● Escritores técnicos ● Implantadores ● Marketing ● Entre outros...
  21. 21. O que é Feature
  22. 22. Features são as funcionalidades que representam algum valor para o cliente.
  23. 23. Features são nomeadas através da forma: <ação><resultado><objeto>
  24. 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
  25. 25. Ciclo de Vida
  26. 26. 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.
  27. 27. 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;
  28. 28. 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)
  29. 29. 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;
  30. 30. 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;
  31. 31. Vantagens
  32. 32. 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.
  33. 33. 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
  34. 34. Obrigado!

×