200 likes | 406 Views
FDD. O que é FDD?. Feature Driven Development (Desenvolvimento Guiado por Funcionalidades) é uma metodologia ágil para gerenciamento e desenvolvimento de software. O approach do FDD não abrange todo o processo de desenvolvimento de software, mas se concentra nas fases de design e construção.
E N D
O que é FDD? • Feature Driven Development (Desenvolvimento Guiado por Funcionalidades) é uma metodologia ágil para gerenciamento e desenvolvimento de software. • O approach do FDD não abrange todo o processo de desenvolvimento de software, mas se concentra nas fases de design e construção. • Possui mais requisitos formais e passos que outras metodologias ágeis como o XP.
Lema do FDD "Resultados freqüentes, tangíveis e funcionais." Adail Rentamal
Princípios “Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar: • Indivíduos e interação entre eles mais que processos e ferramentas; • Software em funcionamento mais que documentação abrangente; • Colaboração com o cliente mais que negociação de contratos; • Responder a mudanças mais que seguir um plano. Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.”
Aplicabilidade • O FDD é a mais formal que todas as outras metodologias ágeis e é recomendado para projetos maiores com mais de dez desenvolvedores.
Características • Fornece a estrutura suficiente para equipes maiores • Enfatiza a produção de software de qualidade • Entrega resultados freqüentes, tangíveis e funcionais • Realiza trabalho significativo desde o início, antes de tornar-se altamente iterativa • Fornece informação de estado e progresso de forma simples e compreensível • Agradam a clientes, gerentes e desenvolvedores.
Processos • DMA (Desenvolver um Modelo Abrangente): Análise Orientada por Objetos • CLF (Construir a Lista de Funcionalidades): Decomposição Funcional • PPF (Planejar por Funcionalidade): Planejamento Incremental • DPF (Detalhar por Funcionalidade): Desenho (Projeto) Orientado por Objetos • CPF (Construir por Funcionalidade): Programação e Teste Orientados por objetos
Processos • Processo 1: DMA-Desenvolver um Modelo Abrangente • Diagramas de classes com foco na forma do modelo, isto é, quais classes estão no domínio, como estão conectadas umas às outras e sob quais restrições; • Métodos e atributos identificados são colocados nas classes; • Diagrama(s) de seqüência e/ou de máquina de estados, se houver; • Comentários sobre o modelo para registrar o motivo pelo qual uma forma de modelo foi escolhida e/ou quais alternativas foram consideradas.
Processos • Processo 2: CLF-Construir a Lista de Funcionalidades • Uma lista de áreas de negócio; • Para cada área, uma lista de atividades de negócio dentro daquela área; • Para cada passo da atividade de negócio, uma funcionalidade que satisfaça ao passo.
Processos • Processo 3: PPF-Planejar por Funcionalidade • Atividades de negócio com datas de término (mês e ano); • Programadores-líderes atribuídos a atividades de negócio; • Áreas com datas de término (mês e ano), derivadas da data do último término de suas respectivas atividades de negócio; • Lista das classes e seus respectivos desenvolvedores proprietários
Processos • Processo 4: DPF-Detalhar por Funcionalidade • Uma capa com comentários, que completa e descreve o pacote de projeto de tal forma a ser suficiente para futuros revisores; • Os requisitos referenciados (se houver) na forma de documentos e de todos os memorandos de confirmação relacionados, e documentação de apoio; • O(s) diagrama(s) de seqüência; • Alternativas de projeto (design) (se houver); • O modelo de objetos com classes, métodos e atributos novos/atualizados; • A saída gerada pela <sua ferramenta>para os prefácios de classes e métodos, criados ou modificados por esse projeto (design); • Lista de tarefas e agendamentos para itens de ação nas classes afetadas para cada membro da equipe.
Processos • Processo 5: CPF-Construir por Funcionalidade • Classe(s) e/ou método(s) que passaram na inspeção de código com sucesso; • Classe(s) que foi(ram) promovida(s) à versão atual (build); • O término de uma função com valor para o cliente (funcionalidade).
Casos de sucesso United Overseas Bank, em Singapura. Após 2 anos de consultoria, 3500 paginas de casos de uso e um modelo com centenas de casos de uso, a entrega do projeto no prazo que havia sido determinado foi avaliado como impossível. Mas após a implantação do FDD, em 15 meses a equipe entregou 2000 features por uma equipe de 50 pessoas, demonstrando a total eficiência da metodologia.
Ferramentas • UML em cores
FDD progress report Ferramentas
Work Package Progress Report Ferramentas
Vantagens • Gerenciamento de projeto • Reporte de status do projeto • Estimativa • Controle de mudança • Uma metodologia ágil para aplicações críticas • Foco em “funcionalidades de valor para o cliente”