FDD - Edmilson Campos

Transcrição

FDD - Edmilson Campos
Luiz Fernando Maurício de Souza
Sidemar Fidelis Cezario
FDD
Desenvolvimento dirigido a funcionalidades
2
Agenda

FDD;

Melhores práticas do FDD;

Principais papéis;

Processos.
FDD

Metodologia
interativa
e
incremental
gerenciamento e engenharia de software;
de

Possui ênfase na qualidade em todo o processo e
um monitoramento de progresso direto, preciso e
intuitivo;

Entrega tangível e freqüente de software funcional.
Histórico

Criado em 1997 em projeto para um banco em
Singapura;

Inicialmente publicado em 1999;
O que o FDD pode proporcionar?

Inovação continua;

Adaptabilidade do produto;

Cronogramas reduzidos de entrega;

Adaptabilidade das pessoas e processos e;

Resultados confiáveis.
Características da FDD

Fornece a estrutura suficiente para equipes
maiores;

Enfatiza a produção de software de qualidade;

Entrega resultados freqüentes;

Realiza trabalho significativo desde do início;

Agrada cliente, gerentes e desenvolvedores.
O que é Feature?

Característica ou funcionalidade;

Mapeia passos em uma atividade de negócio;

Conceito muito próximo de requisito funcional.
Melhores práticas da FDD

Modelagem de objetos do domínio;

Desenvolvimento por funcionalidades;

Posse individual de classe;

Equipes de Features;
Melhores práticas da FDD

Inspeções;

Builds regulares;

Gerenciamento de configuração;

Relatório/Visibilidade de resultados.
Modelagem de objetos do domínio

Diagramas de classe com os principais tipos de
objetos no domínio do problema e suas relações;

Auxilia no levantamento e esclarecimento dos
requisitos;

Possibilita um entendimento comum e mais
completo sobre o domínio do problema;
Desenvolvimento por funcionalidade

Pensamento sistêmico, visando o resultado final;

Teste objetivo;

Garante
a
distribuição
organizada
responsabilidades por meio de classes;
de
Posse individual de classe

Estimula o responsável final pelo conteúdo de uma
classe;

Especialista para classes complexas ou críticas
para o negócio;
Equipes de Features

Formadas dinamicamente;

Múltiplas mentes projetando;

Membros são
relevantes;

Enfatiza o trabalho em equipe.
os
proprietários
de
classes
Inspeções

Quando bem feitas, são muito úteis na melhoria da
qualidade do design e do código;

Recomendadas desde de 1970;

Benefícios secundários.
Inspeções

Detecção antecipada de defeitos
Montagens freqüentes

Ajuda a antecipar erros de integração;

Garante que sempre haverá alguma coisa para
mostrar ao cliente;
Gerenciamento de configuração

Disciplina que suporta e controla as evoluções e
modificações em artefatos chaves;

Facilita o desenvolvimento de software;

Garantir a integridade dos produtos;

Controlar as modificações;
Gerenciamento de configuração

Tarefas rotineiras do gerenciamento de
configuração

Versionamento;

Gestão de mudanças;

Gestão de tarefas;
Gerenciamento de configuração

Tarefas rotineiras do gerenciamento de
configuração

Gerenciamento de processos;

Gerenciamento de montagens;

Gerenciamento de liberação.
Relatório /Visibilidade de resultados

Ter método simples, de baixa sobrecarga, para
coletar informações de progresso de forma
acurada e confiável;

Formatos de relatórios objetivos e intuitivos, para
todos interessados no projeto.
Principais papéis
Principais papéis

Gerente de Projeto

Coordena as ações da equipe do projeto;

Responsável pelo gerenciamento;

Responsável por todos os assuntos administrativos do
projeto.
Principais papéis

Gerente de Desenvolvimento

Possui habilidades técnicas e gerenciais para coordenar
as ações da equipe de desenvolvimento;

Lidera o desenvolvimento do produto;

Possui boa experiência no desenvolvimento de software
e nas tecnologias que estarão sendo
utilizadas no projeto.
Principais papéis

Especialista no domínio de negócio

Responsável por informar a equipe do projeto o que
deve ser feito para que o produto seja adequado às
necessidades dos usuários;

Compreende as regras e a dinâmica do domínio do
problema;
Principais papéis

Arquiteto Líder

Profissional com experiência em análise e modelagem
orientada a objetos;

Possui habilidade para atuar como facilitador na
absorção das regras de negócio;
Principais papéis

Programador Líder

Coordena o desenvolvimento das features, monta as
equipes de features e participa das definições técnicas;

Normalmente é atribuído ao programador líder a
propriedade das classes mais complexas do sistema;
Principais papéis

Proprietário de Classe

Desenvolvedor da equipe, ao qual foram atribuído
algumas classes do modelo;

Programa,
diagrama,
testa
e
documenta
as
funcionalidades a ele atribuídas pelo programador
chefes da equipe;
Fases da FDD

Concepção e planejamento
Pensar um pouco antes de fazer (tipicamente de 1 a 2
semanas);

Construção
Fazer de forma iterativa (tipicamente em iterações de 2
semanas).
Processos

Desenvolver um modelo abrangente;

Construir a lista de features;

Planejar por features;

Detalhar por features;

Construir por features.
Desenvolver um modelo abrangente

Modelagem do processos de negócio;

Levantamento de requisitos;

Análise orientada por objetos;

É uma atividade inicial de estudo, análise e
modelagem do sistema.
Desenvolver um modelo abrangente

Artefatos produzidos

Diagrama de classe, seqüência, atividade, estado e caso
de uso;
Desenvolver um modelo abrangente
Construir a lista de features

Decomposição funcional do domínio do negócio;

Categorizada em 3 níveis:

Áreas de negócio;

Atividades de negócio;

Passos da atividade de negócios.
Construir a lista de features

Artefatos produzidos

Lista de features

Requisitos mais detalhados
Planejar por features

Ordena
as
funcionalidades
implementadas, tendo como base:
que

Necessidades do usuário;

Dependências entre elas;

Carga de trabalho da equipe de desenvolvimento;

Complexidade
serão
Planejar por features

Artefatos produzidos

Plano de desenvolvimento;

Pacotes de trabalho;

Lista de classes com seus donos.
Detalhar por features

A equipe de feature será formada
proprietários das classes envolvidas.
pelos
Detalhar por features

Artefatos produzidos

Modelos detalhados;

Esqueletos de classes com métodos;

Pacote de trabalho detalhado;

Relatório de inspeção do design e relatório de
progresso atualizado.
Construir por features

Proprietários de classe desenvolvem o código
correspondente a cada feature;

Os testes de unidade e as inspeções são
realizadas;

O código final é promovido ao build atual;

O resultado são funções com valor para o
cliente (features).
Construir por features

Artefatos produzidos

Código fonte testado e integrado;

Relatórios de inspeção e testes;

Lista de alterações feitas ou necessárias;

Relatório de progresso atualiza.
Construir por features
Referências






FDD - Feature Driven Development. Disponível em:
http://www.sysevolution.com.br/metodologia-agil--software-de-colaboracao/agile--metodoagil--desenvolvimento-agil/feature-driven-development-desenvolvimento-guiado-porfuncionalidades Acesso em: 20/02/2012
Ericb. Projeto de Software com FDD. Disponível em: http://engenharia-desoftware.nuvvo.com/lesson/11129-projeto-de-software-com-fdd Acesso em: 20/02/2012
Métodologia ágil de desenvolvimento de software FDD. Disponível em:
http://htwojsystem.wordpress.com/2011/06/26/metodologia-agil-de-desenvolvimento-desoftware-fdd/ Acesso em: 21/02/2012
O que é FDD?. Disponível em: http://www.heptagon.com.br/fdd-oque Acesso em:
21/02/2012
CALETTI, Eduardo. Um breve estudo sobre a metodologia ágil FDD. Dispinível em:
http://www.webartigos.com/artigos/um-breve-estudo-sobre-a-metodologia-agil-fdd/32061/
Acesso em: 22/02/2012
RETAMAL, ADAIL MUNIZ. Metodologias de Desenvolvimento: UDP, FDD e XP.
Disponível em: http://adailmr.sites.uol.com.br/artigos/fdd-udp-xp.htm Acesso em:
24/02/2012
Luiz Fernando Maurício de Souza
Sidemar Fidelis Cezario
FDD
Desenvolvimento dirigido a funcionalidades
2

Documentos relacionados

FDD - WordPress.com

FDD - WordPress.com Gerente do domínio  Gerente de versão  Especialista (guru) de linguagem  Coordenador de construção

Leia mais

FDD – Processo

FDD – Processo FDD – Processo nº 4: Detalhar por Funcionalidade É uma atividade para cada funcionalidade, para produzir o pacote de projeto (design) para a funcionalidade. Certo número de funcionalidades são agen...

Leia mais