Você está na página 1de 37

FDD Feature-Driven Development

Manuela Xavier 05/11/2004

O estado atual dos projetos


Resultados pobres

Planejamento pobre ou incompleto Falta de entendimento das questes de negcio ou tcnico Falha em no colocar as necessidades dos clientes ou dos usurios finais em primeiro lugar

Estouro de cronograma, e entrega de produtos indesejveis

Feature Driven Development FDD


O que ?

um processo definido para produzir resultados freqentes, tangveis e que funcionem combina as principais vantagens de outras abordagens geis com tcnicas centradas no modelo possui iteraes curtas e altamente adaptativas introduzido em 1999 por Jeff DeLuca, Peter Coad e Steve Palmer num desenvolvimento de um projeto grande em Singapura descreve uma srie de passos a seguir desde a concepo at a implementao.

Introduzido aqui...

Expandido aqui...

Feature Driven Development FDD


Por que usar?

Clientes tm resultados rpidos e relatrio do status numa linguagem que eles entendem Gerentes de projeto tm uma viso completa e exata do status do projeto Desenvolvedores conseguem trabalhar em novas coisas em poucos dias e ficam mais envolvidos em anlise, projeto e codificao

Caracterstica O que ?
So blocos muito pequenos de funcionalidades So organizados em grupos de negcio relacionados:

Conjuntos de Caractersticas (atividades de negcio) Conjuntos de Caractersticas Principais (reas do domnio)

So expressadas na forma
<ao> <resultado> <objeto>

Caracterstica - exemplo
rea de Caractersticas Principal

Cliente
caclTotal
1

Gerenciamento de venda de produtos Vender para um cliente

Conjunto de Caractersticas

Caractersticas

0..*

Venda
caclTotal estimativaEntrega

Calcular o total de vendas Calcular o total de compras de um cliente Estimar o tempo de entrega de uma venda Calcular a taxa de uma venda

Os Papis
Papis principais

Gerente de projeto Arquiteto chefe Especialistas no domnio Gerentes de desenvolvimento Programadores chefes Proprietrios de classes

Melhores Prticas do FDD


Modelagem do objeto do domnio Desenvolver por caractersticas Propriedade individual de classes Equipes de caractersticas Inspees Construo de builds regulares Gerncia de configurao Comunicao dos resultados

Os 5 processos do FDD
1.Desenvolver um Modelo geral
Modelo de Objeto (mais formas do que contedo)

2. Construir uma lista de caractersticas


Uma lista de caractersticas categorizada

3. Planejar atravs de caracterstica


Um plano de desenvolvimento

4. Projetar atravs de caracterstica


Um pacote de projeto (seqncias)

5. Construir atravs de caracterstica


Uma funo do cliente completada

(mais contedo do que forma)

Descrio dos Processos de FDD


Cada processo descrito em no mais do que duas pginas de papel tamanho carta, frentee-verso Cada descrio do processo apresenta-se de acordo com a estrutura: Entrada, Tarefas, Verificao e Sadas (ETVX)

FDD Processo #1: Desenvolver um modelo geral


Adquirir conhecimento do domnio e construir o modelo geral

Estabelecimento do propsito de negcio do novo sistema Construo de um modelo conceitual do sistema

FDD Processo #1- Atividades


Formar a Equipe de Modelagem

Estudo dirigido sobre o Domnio Estudar Documentos Desenvolver pequenos Modelos de Grupo

Desenvolver um Modelo da Equipe

Refinar o Modelo Geral

Escrever Anotaes do Modelo

FDD Processo #1: Entradas e Sadas


Entrada

Especialistas no domnio, programadores e arquitetos chefes so selecionados


Modelo geral do domnio Diagrama das classes principais com alguns mtodos e atributos identificados Diagramas de seqncia de algumas funcionalidades mais complexas (se houver) Comentrio sobre o modelo

Sadas

FDD Processo #2: Construir lista de caractersticas


O domnio decomposto at chegar nas caractersticas Caractersticas so agrupadas e categorizadas Caractersticas so granuladas at ser necessrio menos de 2 semanas pro seu desenvolvimento

FDD Processo #2 - Atividades

Formar a Equipe da Lista de Caractersticas

Construir a lista de caractersticas

FDD Processo #2: Entradas e Sadas


Entrada

O processo #1 ter sido concludo com sucesso Uma lista das reas do domnio identificadas Para cada rea, uma lista de atividades de negcio (conjunto de caractersticas) Para cada atividade, os passos a serem realizados (caractersticas)

Sadas

FDD Processo #3: Planejar atravs de caractersticas


Uma data de lanamento estabelecida para o release inicial A lista de caractersticas priorizadas refinada O trabalho tcnico planejado e atribudo plano de desenvolvimento

FDD Processo #3 - Atividades


Formar a Equipe de Planejamento

Determinar a Seqncia de Desenvolvimento Atribuir Conjuntos de Caractersticas para Programadores Chefes Atribuir Classes para Desenvolvedores

FDD Processo #3: Entradas e Sadas


Entrada

O processo de construir a lista de caractersticas (processo #2) ter sido concludo com sucesso Atividades de negcio com datas de trmino Programadores-chefes atribudos a atividades de negcio A lista de classes e seus donos (desenvolvedores)

Sadas

FDD Processo #4: Projetar atravs de caractersticas


Regras e transaes so identificadas O modelo da interface do usurio esboado Diagramas de seqncia mais detalhados so produzidos Especialistas so consultados para descobrir qualquer necessidade especfica adicional

FDD Processo #4 - Atividades


Formar a Equipe de Caractersticas

Estudo do Domnio

Estudar Documentos de Referncias

Desenvolver Diagramas de Seqncia Refinar o Modelo Descrever os prefcios de classes e mtodos

FDD Processo #4: Entradas e Sadas


Entrada

O processo de planejado (processo #3) ter sido concludo com sucesso

Sadas

Diagramas de seqncia Projetos alternativos (caso exista) O modelo de objeto com classes, mtodos e atributos novos ou atualizados A documentao da API do sistema Lista de tarefas (calendrio/ To-Do)

FDD Processo #5: Construir atravs de caractersticas


Caractersticas so construdas implementando todas as classes e mtodos necessrios Testes de unidades Caractersticas so inseridas no build quando o teste resulta em sucesso

FDD Processo #5- Atividades


Codificar

Testar Unidades

Inspecionar Cdigo

Promover verso atual (Build)

Ponto de integrao para a funcionalidade inteira

FDD Processo #5: Entradas e Sadas


Entrada

O processo anterior ter sido concludo com sucesso Classe(s) e/ou mtodo(s) que passaram na inspeo de cdigo com sucesso Classes inseridas no build A concluso da funcionalidade do cliente

Sadas

Divulgando Resultados
Cada caracterstica uma unidade planejada de trabalho que pode ser devolvida A soma de caractersticas entregues igual ao status do projeto

Os seis marcos do FDD

Projetar pelas caractersticas


Anlise do domnio Projeto Inspeo do projeto

Construir pelas caractersticas


Cdigo Inspeo do cdigo Gerao de build

1%

40%

3%

45%

10%

1%

Relatando resultados

KEY:

Work In Progress

Attention

Completed

Not Started

Relatando resultados

Relatando resultados
Status Geral:
Trabalhos em progresso Ateno (ie, atrasado) Completo No iniciado

CP-1

Fazendo avaliao de produtos (14) 75% Dez 2001

Exemplo:
Conjunto de caractersticas: Fazendo avaliao de produtos Trabalho em progresso CP-1 o programador chefe inicial (14) esse conjunto de caractersticas possui 14 caractersticas Conjunto de caractersticas est 75% completado A concluso para dezembro de 2001

Porcentagem completa:
Barra de progresso

Status Completo:
Completo MY Ms de concluso

Relatando resultados
Product Sale Management (PS)
CP-1 CP-1 CP-3 CP-1 CP-2 CP-1

Selling Products (22) 99% Nov 2001

Shipping Products (19) 10% Dec 2001

Delivering Products (10) 30% Dec 2001

Invoicing Sales (33) 3% Dec 2001

Setting up Product Agreements (13)

Making Product Assessments (14) 75%

Dec 2001

Dec 2001

Customer A/C Mgmt (CA)


CP-2 Evaluating Account Applications (23) 95% Oct 2001
KEY:

Inventory Mgmt (IM)


CP-2 CP-3 Establishing Storage Units (26) 100% Nov 2001
Completed

CP-2 Opening New Accounts (11) 100% Oct 2001


Work In Progress

CP-3 Accepting Movement Requests (18) 97% Nov 2001


Progress Bar

CP-3 Moving Content (19) 82% Nov 2001


Not Started

Logging Account Transactions (30) 82% Nov 2001


Attention

Relatando resultados

Concluso
FDD

Fornece clareza Eleva o controle Facilita a comunicao reporta resultados Status do projeto completo determinado pelas caractersticas entregues Caractersticas quebram o trabalho em entregas menores e mais gerenciveis Builds regulares bom para os desenvolvedores, gerentes e clientes...

Referncias
A Practical Guide to Feature-Driven Development Stephen R. Palmer, John M. Felsing http://www.featuredrivendevelopment.com/ http://www.nebulon.com/fdd/ http://br.groups.yahoo.com/group/gufdd/ http://www.fddmanager.com/ http://fddtools.sourceforge.net/

Feature-Driven Development
Dvidas ??

Você também pode gostar