FDD
O que é FDD?

Feature Driven Development
(Desenvolvimento Guiado por Funcionalidades)
é uma metodologia ágil para gerenciamento e
desenvolvimento de software.

O approach do FDD não abrange todo o
processo de desenvolvimento de software, mas
se concentra nas fases de design e construção.

Possui mais requisitos formais e passos que
outras metodologias ágeis como o XP.
Lema do FDD
"Resultados freqüentes, tangíveis e funcionais."
Adail Rentamal
Histórico
Princípios
“Estamos descobrindo maneiras melhores de desenvolver software
fazendo-o nós mesmos e ajudando outros a fazê-lo. Através
desse trabalho, passamos a valorizar:
 Indivíduos e interação entre eles mais que processos e
ferramentas;
 Software em funcionamento mais que documentação
abrangente;
 Colaboração com o cliente mais que negociação de contratos;
 Responder a mudanças mais que seguir um plano.
Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais
os itens à esquerda.”
Aplicabilidade

O FDD é a mais formal que todas as outras
metodologias ágeis e é recomendado para
projetos maiores com mais de dez
desenvolvedores.
Características






Fornece a estrutura suficiente para equipes maiores
Enfatiza a produção de software de qualidade
Entrega resultados freqüentes, tangíveis e funcionais
Realiza trabalho significativo desde o início, antes de
tornar-se altamente iterativa
Fornece informação de estado e progresso de forma
simples e compreensível
Agradam a clientes, gerentes e desenvolvedores.
Estrutura
Processos





DMA (Desenvolver um Modelo Abrangente): Análise
Orientada por Objetos
CLF (Construir a Lista de Funcionalidades):
Decomposição Funcional
PPF (Planejar por Funcionalidade): Planejamento
Incremental
DPF (Detalhar por Funcionalidade): Desenho
(Projeto) Orientado por Objetos
CPF (Construir por Funcionalidade): Programação e
Teste Orientados por objetos
Processos
Processo 1: DMA-Desenvolver um Modelo Abrangente
•Diagramas de classes com foco na
forma do modelo, isto é, quais classes
estão no domínio, como estão
conectadas umas às outras e sob quais
restrições;
•Métodos e atributos identificados são
colocados nas classes;
•Diagrama(s) de seqüência e/ou de
máquina de estados, se houver;
•Comentários sobre o modelo para
registrar o motivo pelo qual uma
forma de modelo foi escolhida e/ou
quais alternativas foram consideradas.
Processos
Processo 2: CLF-Construir a Lista de
Funcionalidades
•Uma lista de áreas de negócio;
•Para cada área, uma lista de atividades
de negócio dentro daquela área;
•Para cada passo da atividade de
negócio, uma funcionalidade que
satisfaça ao passo.
Processos
Processo 3: PPF-Planejar por Funcionalidade
•Atividades de negócio com datas de
término (mês e ano);
•Programadores-líderes atribuídos a
atividades de negócio;
•Áreas com datas de término (mês e
ano), derivadas da data do último
término de suas respectivas atividades
de negócio;
•Lista das classes e seus respectivos
desenvolvedores proprietários
Processos
Processo 4: DPF-Detalhar por Funcionalidade
•Uma capa com comentários, que completa e
descreve o pacote de projeto de tal forma a ser
suficiente para futuros revisores;
•Os requisitos referenciados (se houver) na
forma de documentos e de todos os
memorandos de confirmação relacionados, e
documentação de apoio;
•O(s) diagrama(s) de seqüência;
Alternativas de projeto (design) (se houver);
•O modelo de objetos com classes, métodos e
atributos novos/atualizados;
•A saída gerada pela <sua ferramenta>para os
prefácios de classes e métodos, criados ou
modificados por esse projeto (design);
•Lista de tarefas e agendamentos para itens de
ação nas classes afetadas para cada membro da
equipe.
Processos
Processo 5: CPF-Construir por Funcionalidade
•Classe(s) e/ou método(s) que
passaram na inspeção de código com
sucesso;
•Classe(s) que foi(ram) promovida(s)
à versão atual (build);
•O término de uma função com valor
para o cliente (funcionalidade).
Casos de sucesso
United Overseas Bank, em Singapura.
Após 2 anos de consultoria, 3500
paginas de casos de uso e um
modelo com centenas de casos de
uso, a entrega do projeto no prazo
que havia sido determinado foi
avaliado como impossível.
Mas após a implantação do FDD, em
15 meses a equipe entregou 2000
features por uma equipe de 50
pessoas, demonstrando a total
eficiência da metodologia.
Ferramentas

UML em cores
Ferramentas
FDD progress report
Ferramentas
Work Package Progress Report
Vantagens
1.
2.
3.
4.
5.
6.
Gerenciamento de projeto
Reporte de status do projeto
Estimativa
Controle de mudança
Uma metodologia ágil para aplicações críticas
Foco em “funcionalidades de valor para o cliente”
Detalhar por funcionalidade (DPF)
Construir por funcionalidade (CPF)
Walkthroug
h
Desenvolvime
nto
Inspeção do
desenvolvime
nto
Codificação
Inspeção de
codificação
Inspeção de
codificação
1%
40%
3%
45%
10%
1%
Download

O que é FDD? - ita-pog