Transcript
Page 1: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

METODOLOGIA ÁGEIS

FDD

FEATURE DRIVEN

DEVELOPMENT

Prof. Fabiano Papaiz

IFRN

Page 2: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Feature Driven Development = Desenvolvimento Guiado

por Funcionalidades

FDD é uma metodologia ágil para gerenciamento e

desenvolvimento de software, criada em 1997 durante um

grande projeto de um banco de Singapura, com uma

equipe de aproximadamente 50 pessoas e que estava

atrasado e condenado ao fracasso

Esse projeto foi “salvo” graças a Peter Coad (Análise e

Projeto OO) e a Jeff De Luca (Gerência de Projetos)

Page 3: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

A FDD é focada na entrega regular de funcionalidades

valiosas para o cliente (já vimos isso em algum lugar!)

Possui uma estrutura mais elaborada que o XP, podendo

ser aplicada a equipes maiores (entre 10 a 250 pessoas),

porém é mais “enxuta” que o RUP, não necessitando de

tantos artefatos, atividades e papeis

É uma metodologia bastante objetiva, possuindo apenas:

2 Fases

5 Processos

Page 4: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

FDD - Visão Geral (Fases e Processos)

Page 5: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

FDD – Fases

Concepção e Planejamento

Planejar (pensar) um pouco antes de fazer (tipicamente de 1 a 2

semanas)

Construção

Implementar de forma iterativa e incremental, com ciclos de

aproximadamente 2 semanas

Page 6: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

FDD – Processos

Concepção e Planejamento

Desenvolver um Modelo Abrangente: Análise OO

Construir a Lista de Funcionalidades: Decomposição Funcional

Planejar por Funcionalidade: Planejamento Incremental

Construção

Detalhar por Funcionalidade: Design (Projeto) OO

Construir por Funcionalidade: Implementação e Testes

Page 7: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Processo #1: Desenvolver um Modelo Abrangente

Este processo abrangerá todo o projeto, o que significa que ele será executado uma única vez no projeto

Será montado a Equipe de Modelagem (especialistas de negócio, analistas, programadores e arquitetos experientes)

Os especialistas de negócio realizarão apresentações focadas em pequenas partes do negócio

Após cada apresentação a equipe será dividida em pequenos grupos que elaborarão um modelo (sem detalhamento) para aquela parte específica do negócio que foi apresentada

Os modelos elaborados serão apresentados e um deles, ou uma combinação deles, será escolhido

As atividades vão se repetindo até que se obtenha um modelo que cubra todos os requisitos de negócio do software

Page 8: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Processo #2: Construir a Lista de Funcionalidades

Também será realizada apenas uma vez no início do projeto,

tendo o objetivo de identificar todas as funcionalidades que

satisfaçam aos requisitos definidos no processo anterior

Será formado a Equipe da Lista de Funcionalidades, composta

pelos Programadores Chefes que participaram do 1º processo

Cada requisito de negócio será decomposto em funcionalidades

(Decomposição Funcional), as quais formarão a Lista de

Funcionalidades do software

Similar ao Product Backlog do Scrum

A lista será agrupada por Área, Atividades de Negócio e

Funcionalidades

Page 9: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Processo #3: Planejar por Funcionalidade

Realizada apenas uma vez no início do projeto, tendo o objetivo de produzir o Plano de Desenvolvimento do software

Será formado a Equipe de Planejamento, composta pelo Gerente do Projeto, o Gerente de Desenvolvimento e os Programadores Chefes, que juntos irão planejar a ordem de implementação e o esforço necessário para cada uma das funcionalidades

Baseando-se nas dependências entre elas, na carga de trabalho da equipe de desenvolvimento e na complexidade de implementação

O Plano de Desenvolvimento será composto de:

Cronograma de implementação das funcionalidades

Programadores Chefes atribuídos às funcionalidades

Lista das classes e seus respectivos desenvolvedores proprietários (Lista de Proprietários de Classes) (o código não será de todos!)

Page 10: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Processo #4: Detalhar por Funcionalidade

Este processo será executado uma vez para cada funcionalidade

O Programador Chefe responsável irá formar a Equipe da Funcionalidade, identificando os proprietários das classes que provavelmente irão implementar as funcionalidades selecionadas

A equipe desenvolverá os Diagramas de Sequência referentes às funcionalidades, os quais serão usados pelo Programador Chefe para refinar e completar o Modelo de Classes (atributos, métodos etc)

Uma inspeção final da modelagem deverá ser realizada pela equipe

Será gerado um Pacote de Trabalho inspecionado e pronto para ser implementado

Page 11: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Processo #5: Construir por Funcionalidade

Este processo será executado uma vez para cada

funcionalidade

A partir do Pacote de Trabalho, os programadores proprietários

das classes irão implementar os itens necessários para que

suas classes suportem o projeto (design) da funcionalidade

O código desenvolvido deverá ser testado e inspecionado e,

somente depois, poderá ser um candidato a integrar a versão

atual do software (release)

Ao final deste processo, uma funcionalidade com valor para o

cliente deverá ter sido criada

Page 12: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Papeis Chaves do FDD

Especialista do Negócio (Domain Experts)

Gerente de Projetos (Project Manager)

Arquiteto Chefe (Chief Architect)

Gerente de Desenvolvimento (Development Manager)

Programadores Chefes (Chief Programmers)

Desenvolvedores (Class Owners)

Outros papeis podem ser inseridos de acordo com a

complexidade do projeto

Page 13: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Equipes/Times do FDD

Equipe de Modelagem (Processo #1)

Equipe da Lista de Funcionalidades (Processo #2)

Equipe de Planejamento (Processo #3)

Equipe da Funcionalidade (Processo #4)

Page 14: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Organização da Lista de Funcionalidades (Features)

Page 15: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Definição das Funcionalidades (Features)

Page 16: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FDD

Trabalho:

Pesquisar quais são as atividades que estão definidas dentro de

cada um dos 5 processos definidos pelo FDD. Ao final, crie um

documento contendo uma tabela com as seguintes informações:

Em grupo com até 3 pessoas

Enviar o documento em formato PDF para o e-mail do professor

([email protected]), contendo os integrantes do grupo

e com o assunto = “Trabalho sobre FDD”

Processo Atividade Responsável(eis)

Desenvolver um Modelo

Abrangente

Atividade-1 Gerente de Projeto

Atividade-n Programador Chefe

Construir a Lista de

Funcionalidades

Atividade-1 Gerente de Desenv.

Atividade-n Todos

Page 17: FEATURE DRIVEN DEVELOPMENT - IFRNdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:... · 2016-06-28 · FDD Feature Driven Development = Desenvolvimento Guiado por Funcionalidades

FIM


Recommended