Please enable JavaScript.
Coggle requires JavaScript to display documents.
FDD Feature Driven Development - Coggle Diagram
FDD
Feature Driven Development
O que é?
Assim como o RUP e o XP, o FDD é uma metodologia de desenvolvimento de software.
Desenvolvimento orientado a
funcionalidades.
Objetivo é entregar ao cliente um software funcional em tempo hábil.
Modelo iterativo e incremental.
Características
Surgiu em Singapura, entre 1997 e 1999.
Criada por Peter Coad e Jeff De Luca em 1999 no livro “Java Modeling in Color with UML”.
Anterior ao Manifesto Ágil (mas este foi alterado posteriormente).
Equilíbrio entre filosofias tradicionais e ágeis.
Para projetos iniciais, com grandes equipes, ou codificações já existentes.
"Resultados frequentes e funcionais"
Cada iteração deve seguir o padrão de etapas chamado de ETVX.
As 4 etapas (
ETVX
)
Entrada (Entry):
Especifica e define os critérios de entradas para as etapas.
Tarefa (Task):
É composto por uma lista com as tarefas que deverão ser realizadas.
Verificação (Verification):
Especifica tipos de avaliações (internas e externas) e inspeções de projeto e código.
Saída (Exit):
Especifica os critérios de saída, definindo os produtos tangíveis.
Papéis
Uma pessoa pode desempenhar mais de um papel e um papel pode ser desempenhado por mais de uma pessoa.
Gerente de Projeto:
É o líder administrativo e financeiro do projeto: tem a palavra final no que se trata de escopo, cronograma e recursos do projeto.
Gerente de Desenvolvimento:
É o líder nas atividades diárias do desenvolvimento. É responsável por resolver qualquer tipo de conflito que venha a ocorrer dentro da equipe.
Arquiteto-chefe:
É responsável pela modelagem do projeto. Deve auxiliar a equipe de desenvolvedores e contribuir na construção do software.
Proprietários de código/classe (Desenvolvedores):
São os responsáveis pela modelagem e desenvolvimento de novas funcionalidades de um software
Especialistas do Domínio (negócio):
Pode ser qualquer pessoa que tenha o melhor conhecimento sobre o software em particular, e pode ajudar as Equipes a entendê-lo.
Fases
Fase 1:
Concepção e Planejamento
Processos
DMA (Desenvolver um Modelo Abrangente):
Conhecer para analisar o sistema e o contexto em que ele está inserido.
Criar uma modelagem superficial para cada área de domínio do sistema.
CLF (Construir a Lista de Funcionalidades):
Criar uma lista de funcionalidades do sistema, descrevendo e identificando a área de domínio de cada uma delas.
Os itens de funcionalidade não devem levar mais de duas semanas para serem concluídos.
Devem ser ordenados por ordem de prioridade no desenvolvimento.
PPF (Planejar por Funcionalidade):
De acordo com a lista de funcionalidades é feito o planejamento de desenvolvimento delas.
Para cada funcionalidade são designados programadores chefe que ficarão responsáveis por algumas classes ou códigos.
Pensar um pouco antes de fazer (tipicamente de 1 a 2 semanas).
Fase 2:
Construção
Processos
DPF (Detalhar por Funcionalidade):
Nessa etapa é criada uma modelagem com as funcionalidades a serem desenvolvidas.
A diferença dessa modelagem é que o programador chefe a cria de acordo com uma funcionalidade específica e a divide em classes, métodos e atributos.
CPF (Construir por Funcionalidade):
O código começa a ser implementado no sistema.
Implementação das regras de negócio.
Inspeção/revisão do código.
Condução dos testes unitários.
Release da funcionalidade.
Fazer de forma iterativa (tipicamente em iterações de 2 semanas).