FEATURE DRIVEN DEVELOPMENT - 2016-06-28آ  FDD Feature Driven Development = Desenvolvimento Guiado por

  • View
    0

  • Download
    0

Embed Size (px)

Text of FEATURE DRIVEN DEVELOPMENT - 2016-06-28آ  FDD Feature Driven Development = Desenvolvimento Guiado...

  • METODOLOGIA ÁGEIS

    FDD

    FEATURE DRIVEN

    DEVELOPMENT

    Prof. Fabiano Papaiz

    IFRN

  • 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)

  • 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

  • FDD

     FDD - Visão Geral (Fases e Processos)

  • 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

  • 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

  • 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

  • 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

  • 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!)

  • 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

  • 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

  • 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

  • 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)

  • FDD

     Organização da Lista de Funcionalidades (Features)

  • FDD

     Definição das Funcionalidades (Features)

  • 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

    (fabianopapaiz@gmail.com), 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

    mailto:fabianopapaiz@gmail.com mailto:fabianopapaiz@gmail.com mailto:fabianopapaiz@gmail.com

  • FIM