Você está na página 1de 17

METODOLOGIA ÁGEIS

FDD

FEATURE DRIVEN
DEVELOPMENT

Prof. Fabiano Papaiz


IFRN
FDD
 Feature Driven Development = Desenvolvimento Guiado
por Funcionalidades

 FDD é uma metodologia ágil para gerenciamento e


desenvolvimento de software, criada em 1997 durante um
grande projeto de um banco de Singapura, com uma
equipe de aproximadamente 50 pessoas e que estava
atrasado e condenado ao fracasso

 Esse projeto foi “salvo” graças a Peter Coad (Análise e


Projeto OO) e a Jeff De Luca (Gerência de Projetos)
FDD
 A FDD é focada na entrega regular de funcionalidades
valiosas para o cliente (já vimos isso em algum lugar!)

 Possui uma estrutura mais elaborada que o XP, podendo


ser aplicada a equipes maiores (entre 10 a 250 pessoas),
porém é mais “enxuta” que o RUP, não necessitando de
tantos artefatos, atividades e papeis

 É uma metodologia bastante objetiva, possuindo apenas:

 2 Fases

 5 Processos
FDD
 FDD - Visão Geral (Fases e Processos)
FDD
 FDD – Fases

 Concepção e Planejamento

 Planejar (pensar) um pouco antes de fazer (tipicamente de 1 a 2


semanas)

 Construção

 Implementar de forma iterativa e incremental, com ciclos de


aproximadamente 2 semanas
FDD
 FDD – Processos

 Concepção e Planejamento

 Desenvolver um Modelo Abrangente: Análise OO

 Construir a Lista de Funcionalidades: Decomposição Funcional

 Planejar por Funcionalidade: Planejamento Incremental

 Construção

 Detalhar por Funcionalidade: Design (Projeto) OO

 Construir por Funcionalidade: Implementação e Testes


FDD
 Processo #1: Desenvolver um Modelo Abrangente
 Este processo abrangerá todo o projeto, o que significa que ele
será executado uma única vez no projeto

 Será montado a Equipe de Modelagem (especialistas de


negócio, analistas, programadores e arquitetos experientes)

 Os especialistas de negócio realizarão apresentações focadas


em pequenas partes do negócio

 Após cada apresentação a equipe será dividida em pequenos grupos


que elaborarão um modelo (sem detalhamento) para aquela parte
específica do negócio que foi apresentada

 Os modelos elaborados serão apresentados e um deles, ou uma


combinação deles, será escolhido

 As atividades vão se repetindo até que se obtenha um modelo


que cubra todos os requisitos de negócio do software
FDD
 Processo #2: Construir a Lista de Funcionalidades

 Também será realizada apenas uma vez no início do projeto,


tendo o objetivo de identificar todas as funcionalidades que
satisfaçam aos requisitos definidos no processo anterior

 Será formado a Equipe da Lista de Funcionalidades, composta


pelos Programadores Chefes que participaram do 1º processo

 Cada requisito de negócio será decomposto em funcionalidades


(Decomposição Funcional), as quais formarão a Lista de
Funcionalidades do software

 Similar ao Product Backlog do Scrum

 A lista será agrupada por Área, Atividades de Negócio e


Funcionalidades
FDD
 Processo #3: Planejar por Funcionalidade
 Realizada apenas uma vez no início do projeto, tendo o objetivo de
produzir o Plano de Desenvolvimento do software

 Será formado a Equipe de Planejamento, composta pelo Gerente do


Projeto, o Gerente de Desenvolvimento e os Programadores Chefes,
que juntos irão planejar a ordem de implementação e o esforço
necessário para cada uma das funcionalidades

 Baseando-se nas dependências entre elas, na carga de trabalho da equipe


de desenvolvimento e na complexidade de implementação

 O Plano de Desenvolvimento será composto de:

 Cronograma de implementação das funcionalidades

 Programadores Chefes atribuídos às funcionalidades

 Lista das classes e seus respectivos desenvolvedores proprietários (Lista de


Proprietários de Classes) (o código não será de todos!)
FDD
 Processo #4: Detalhar por Funcionalidade
 Este processo será executado uma vez para cada
funcionalidade

 O Programador Chefe responsável irá formar a Equipe da


Funcionalidade, identificando os proprietários das classes que
provavelmente irão implementar as funcionalidades
selecionadas

 A equipe desenvolverá os Diagramas de Sequência referentes


às funcionalidades, os quais serão usados pelo Programador
Chefe para refinar e completar o Modelo de Classes (atributos,
métodos etc)

 Uma inspeção final da modelagem deverá ser realizada pela equipe

 Será gerado um Pacote de Trabalho inspecionado e pronto para


ser implementado
FDD
 Processo #5: Construir por Funcionalidade

 Este processo será executado uma vez para cada


funcionalidade

 A partir do Pacote de Trabalho, os programadores proprietários


das classes irão implementar os itens necessários para que
suas classes suportem o projeto (design) da funcionalidade

 O código desenvolvido deverá ser testado e inspecionado e,


somente depois, poderá ser um candidato a integrar a versão
atual do software (release)

 Ao final deste processo, uma funcionalidade com valor para o


cliente deverá ter sido criada
FDD
 Papeis Chaves do FDD

 Especialista do Negócio (Domain Experts)

 Gerente de Projetos (Project Manager)

 Arquiteto Chefe (Chief Architect)

 Gerente de Desenvolvimento (Development Manager)

 Programadores Chefes (Chief Programmers)

 Desenvolvedores (Class Owners)

 Outros papeis podem ser inseridos de acordo com a


complexidade do projeto
FDD
 Equipes/Times do FDD

 Equipe de Modelagem (Processo #1)

 Equipe da Lista de Funcionalidades (Processo #2)

 Equipe de Planejamento (Processo #3)

 Equipe da Funcionalidade (Processo #4)


FDD
 Organização da Lista de Funcionalidades (Features)
FDD
 Definição das Funcionalidades (Features)
FDD
 Trabalho:

 Pesquisar quais são as atividades que estão definidas dentro de


cada um dos 5 processos definidos pelo FDD. Ao final, crie um
documento contendo uma tabela com as seguintes informações:
Processo Atividade Responsável(eis)

Desenvolver um Modelo Atividade-1 Gerente de Projeto


Abrangente Atividade-n Programador Chefe

Construir a Lista de Atividade-1 Gerente de Desenv.


Funcionalidades Atividade-n Todos

 Em grupo com até 3 pessoas

 Enviar o documento em formato PDF para o e-mail do professor


(fabianopapaiz@gmail.com), contendo os integrantes do grupo
e com o assunto = “Trabalho sobre FDD”
FIM

Você também pode gostar