FDD -  Feature Driven Development (Desenvolvimento Guiado por Funcionalidades)
Autor: Nayandro Moreira | Publicado: 2011-11-04T19:25:00-03:00



1. Histórico

A FDD&nbsp;Feature Driven
Development (Desenvolvimento Guiado por Funcionalidades) nasceu num
projeto em&nbsp;Cingapura, entre 1997
e 1999, a partir do Método Coad (uma metodologia completa para Análise, Desenho
e Programação Orientados por Objetos, desenvolvida por Peter Coad nas décadas
de 1980 e 1990) e das técnicas de gerenciamento iterativo, incremental e enxuto
de projetos utilizadas por Jeff De Luca, um gerente de projetos australiano.

A primeira descrição oficial
dos processos foi publicada no livro "Java Modeling in Color with
UML", por Peter Coad, Eric Lefebvre e Jeff De Luca, em 1999.



2.Definição do
processo

A FDD é uma metodologia ágil
para gerenciamento e desenvolvimento de software, e possui 05 processos para
que ela seja bem sucedida estes são: 

<!--[if !supportLists]-->§&nbsp; <!--[endif]-->Desenvolver
um Modelo Abrangente: através das analises de requisitos, analise
orientada a objetos, modelos de dados lógicos.

<!--[if !supportLists]-->§&nbsp; <!--[endif]-->Construir
uma Lista de Funcionalidades: decomposição
funcional do modelo do domínio, em três camadas típicas: áreas de negócio,
atividades de negócio e passos a passo das atividades.

<!--[if !supportLists]-->§&nbsp; <!--[endif]-->Planejar
por Funcionalidade: abrange a estimativa de complexidade e
dependência das funcionalidades, também levando em consideração a prioridade e
valor para o negócio/cliente. 

<!--[if !supportLists]-->§&nbsp; <!--[endif]-->Detalhar
por Funcionalidade: já dentro de uma iteração de construção, a equipe
detalha os requisitos e outros artefatos para a codificação de cada
funcionalidade, incluindo os testes. O projeto para as funcionalidades é
inspecionado. 



<!--[if !supportLists]-->§&nbsp;&nbsp; <!--[endif]-->Construir por Funcionalidade: desenvolvendo o código, testando e aplicando.

Seguindo estes processos faz
com que o desenvolvimento do software acorra mais rápido, tem-se uma margem de
erros bem mais baixa que muitas outras formas de processos de analise de
projeto. E a cada estudo ou analise e entregue ao cliente um escopo onde o
mesmo poderá verificar se o seu software esta sendo desenvolvido para atender
as suas necessidades.



3.Caracteristicas

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Estudo de caso

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Analise de sistema

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Interesse em entregar software livre de falhas

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->O cliente acompanha o desenvolvimento de seu sistema

Este tipo de processo e
muito requisitado quando se quer um desenvolvimento limpo e de fácil
entendimento, pois antes do processo entrar na fase de desenvolvimento e feito
todo estudo do mesmo com isso facilita o lado do desenvolvedor e do cliente,
por que depois do estudo feito e de fácil entendimento saber o que se vai
realmente fazer. 

4.Utilização

Pode ser muito bem utilizado
em projetos de grande porte, pois sua tolerância a falhas e muito grande o que
pode (e) facilita e muito em grandes execuções de projetos e processos.



5.Vantagens

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Trabalho em conjunto com o cliente

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Entendimento claro do software a ser desenvolvido(depois do estudo
feito)

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->A cada entrega de um escopo ou protótipo ao cliente o&nbsp; desenvolvedor fica sabendo se o que esta
fazendo realmente atende a necessidade do cliente

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Mantem o prazo de entrega

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Requisitos formais



6.Desvantagens

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Se o estudo de caso não for bem elaborado o projeto pode ter
falhas

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Manutenção

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Questionamento sobre a eficácia /aplicabilidade de FDD

<!--[if !supportLists]-->·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<!--[endif]-->Duvidas sobre o tamanho mínimo de um time FDD