Please enable JavaScript.
Coggle requires JavaScript to display documents.
FDD(Feature-Driven Development) - Coggle Diagram
FDD(Feature-Driven Development)
Característica FDD:
Segundo Coad, uma funcionalidade (feature) “é uma função com valor para o cliente que pode ser desenvolvida em duas ou menos semanas”, pois uma das características do FDD é realizar a apresentação de todo um conjunto de features em um período de tempo fixo.
Processos básicos para o funcionamento:
Desenvolvimento de modelo abrangente (Análise orientada por objetos);
Construção de lista de funcionalidades;
Planejamento incremental por funcionalidade;
Projeção por funcionalidade;
Construção por funcionalidade.
Documentação FDD:
A documentação do FDD não é muito diferente das documentações que são comuns de serem utilizadas em metodologias ágeis. A ideia principal para a documentação é de que a feature deve entregar valor ao cliente, seguir as boas práticas e os processos básicos. Cada processo deve ser descrito em no máximo duas páginas, seguindo a estrutura: Entrada, Tarefas, Verificação e Saídas.
Documentação de funcionalidades:
Exemplos de features:
Verificar quantidade de caracteres;
Verificar se na senha possui número;
Verificar se na senha possui letra maiúscula;
Verificar se na senha possui letra minúscula;
Verificar se na senha possui símbolo.
Boas Práticas do FDD
Modelagem orientada a objetos de domínio: a modelagem deve ser básica, apenas algo ilustrativo para os envolvidos no projeto.
Desenvolvimento por feature: implementação orientada por funcionalidade.
Código proprietário: o código deve ser realizado apenas por um desenvolvedor, ou seja, iniciado e terminado pelo mesmos desenvolvedor, entretanto, não impede de ser realizado o pair programming com outro desenvolvedor da equipe.
Equipe: equipe destinada a desenvolver funcionalidades necessárias ao projeto.
Inspeções: deve ser realizado o code review, para garantir que o que está sendo enviado para o ambiente de uso não resultará em bugs e problemas futuros.
Integração regular: em um determinado período de tempo fixo devem ser integradas as características já terminadas, permitindo a verificação de erros e também criando uma versão atual que pode ser demonstrada ao cliente.
Gerência de configuração: ter ambientes diferentes com versões da funcionalidade desenvolvida, atualmente é muito utilizado um ambiente de desenvolvimento, um de homologação e outro que é o ambiente estável para que os clientes utilizem.
Reportar/Visibilidade dos resultados: todos os envolvidos devem saber o status de desenvolvimento das funcionalidades que foram desenvolvidas, pois isso é uma maneira de aprendizado.
Premissas para a estrutura do projeto
Desenvolvimento por funcionalidades
● Um único programador é responsável pela funcionalidade desenvolvida
● Controle de qualidade em todas as fases do projeto
● Gerenciamento de configurações
● Integração contínua das funcionalidades
● Planejamento incremental
● Teste de software