Please enable JavaScript.
Coggle requires JavaScript to display documents.
FDD (Feature-Driven Development), Cinco processos do FDD =, Cinco etapas…
-
Cinco processos do FDD =
-
-
-
-
-
-
Características do FDD
FDD, o Desenvolvimento Dirigido por Funcionalidades (Feature-Driven Development), é uma metodologia ágil de desenvolvimento de software que se concentra na entrega de funcionalidades específicas de um sistema. Ela foi criada por Jeff De Luca e Peter Coad na década de 1990 e é uma abordagem iterativa e incremental para o desenvolvimento de software. Aqui estão algumas das principais características do FDD:
Ênfase em funcionalidades: O FDD se concentra na identificação, planejamento e desenvolvimento de funcionalidades individuais do software. Cada funcionalidade é uma unidade de trabalho independente e bem definida.
Modelagem de domínio: Antes de iniciar o desenvolvimento, o FDD enfatiza a modelagem do domínio do problema, o que ajuda a entender os requisitos e as relações entre as funcionalidades.
Desenvolvimento por iterações: O FDD adota uma abordagem iterativa e incremental, onde o sistema é construído em iterações curtas. Cada iteração se concentra em desenvolver algumas funcionalidades específicas.
Equipes pequenas: O FDD sugere equipes pequenas e altamente colaborativas, cada uma responsável por uma ou mais funcionalidades. Isso promove uma comunicação eficaz e facilita o acompanhamento do progresso.
Listas de funcionalidades: O processo começa com a criação de uma lista de funcionalidades, que são as unidades de trabalho do projeto. Cada funcionalidade é detalhada em termos de sua descrição, prazo e responsável.
Design orientado por objeto: O FDD promove o uso de técnicas de design orientado por objetos para criar modelos de domínio e projetar as funcionalidades. Isso ajuda na manutenção e extensibilidade do sistema.
Inspeções regulares: A equipe realiza inspeções regulares das funcionalidades completas para garantir que atendam aos requisitos e padrões de qualidade estabelecidos.
Relatórios de progresso: O FDD enfatiza a geração de relatórios de progresso para manter as partes interessadas informadas sobre o andamento do projeto.
Entregas frequentes: Como o desenvolvimento é dividido em iterações curtas, o FDD promove a entrega regular de funcionalidades, permitindo que os clientes vejam o progresso do projeto e façam ajustes conforme necessário.
Foco na qualidade: O FDD coloca uma ênfase significativa na qualidade do software, com testes contínuos e inspeções para garantir que as funcionalidades atendam aos padrões de qualidade estabelecidos.
Padrão ETVX
O padrão ETVX é uma parte central da metodologia FDD (Feature-Driven Development), e é usado para organizar o desenvolvimento de funcionalidades em um projeto. A sigla ETVX representa as quatro fases do ciclo de vida de uma funcionalidade:
O padrão ETVX é uma estrutura que ajuda a garantir que as funcionalidades sejam desenvolvidas de maneira organizada, rastreável e de alta qualidade. Ele auxilia a equipe a manter o foco em cada funcionalidade individual e a garantir que elas atendam aos critérios de aceitação estabelecidos. Isso contribui para o sucesso do desenvolvimento de software no contexto da metodologia FDD.
Tracking (Acompanhamento): Esta fase envolve o acompanhamento do progresso da funcionalidade. É onde a equipe acompanha o desenvolvimento da funcionalidade, garantindo que ele esteja dentro do prazo e seguindo as especificações.
Verification (Verificação): Aqui, a funcionalidade é verificada quanto à qualidade e conformidade com os requisitos. Testes e inspeções são realizados para garantir que a funcionalidade atenda aos padrões de qualidade estabelecidos.
eXit (Saída): A fase de saída é onde a funcionalidade é considerada concluída e pronta para ser integrada ao sistema. Ela é entregue e disponibilizada para uso, e qualquer documentação necessária é finalizada.
Entry (Entrada): Nesta fase, a funcionalidade é identificada e definida. Isso envolve a coleta de requisitos, a compreensão dos objetivos da funcionalidade e a atribuição de um líder de desenvolvimento responsável por supervisionar o processo.
Papéis do FDD
Na metodologia FDD (Feature-Driven Development), os membros da equipe desempenham papéis específicos para garantir um desenvolvimento eficaz e organizado das funcionalidades do software. Os principais papéis na metodologia FDD incluem:
Esses papéis ajudam a dividir as responsabilidades e garantir que o processo de desenvolvimento seja eficiente, com foco na entrega de funcionalidades de alta qualidade. A colaboração entre esses papéis desempenha um papel fundamental no sucesso do FDD.
Arquiteto Chefe (Chief Architect): O Arquiteto Chefe é encarregado de definir a arquitetura do sistema, garantindo que as funcionalidades se encaixem de maneira eficiente e cumpram os padrões de design. Eles auxiliam na tomada de decisões técnicas importantes.
Gerente de Equipe de Desenvolvimento (Development Team Manager): O Gerente de Equipe de Desenvolvimento supervisiona as equipes de desenvolvimento individuais que trabalham nas funcionalidades. Eles auxiliam na distribuição de tarefas, asseguram a colaboração eficaz e monitoram o progresso.
Líder Técnico da Funcionalidade (Feature Lead): Cada funcionalidade tem um Líder Técnico da Funcionalidade que é responsável por coordenar o desenvolvimento dessa funcionalidade específica. Eles trabalham em estreita colaboração com os desenvolvedores e garantem que a funcionalidade seja implementada conforme especificado.
Analista de Domínio (Domain Expert): Os Analistas de Domínio são especialistas no domínio do problema e ajudam a definir as funcionalidades, trabalhando em conjunto com os desenvolvedores e os líderes técnicos.
Desenvolvedores (Developers): Os desenvolvedores são responsáveis por escrever o código e implementar as funcionalidades conforme especificado. Eles trabalham sob a orientação do Líder Técnico da Funcionalidade.
Testadores (Testers): Os testadores garantem que as funcionalidades desenvolvidas atendam aos padrões de qualidade estabelecidos. Eles realizam testes, identificam problemas e relatam qualquer não conformidade.
Gerente de Configuração (Configuration Manager): O Gerente de Configuração é responsável por gerenciar a configuração do software, incluindo controle de versões, rastreamento de mudanças e garantia de que os artefatos sejam mantidos adequadamente.
Gerente de Projeto (Project Manager): O Gerente de Projeto é responsável por coordenar as atividades gerais do projeto, incluindo o planejamento, agendamento, alocação de recursos e monitoramento do progresso. Eles garantem que as metas do projeto sejam alcançadas dentro do prazo e do orçamento.
Fases e processos
A metodologia FDD (Feature-Driven Development) envolve várias fases e processos para o desenvolvimento eficaz de software. As fases e processos do FDD incluem:
Essas fases e processos no FDD são projetados para garantir que o desenvolvimento de software seja organizado, eficiente e focado na entrega de funcionalidades específicas de alta qualidade. A metodologia é caracterizada por ciclos iterativos e incrementais, com ênfase na colaboração e na qualidade do software.
Construção de Listas de Funcionalidades (Develop an Overall Model): Nesta fase, as funcionalidades a serem desenvolvidas são identificadas e listadas. Cada funcionalidade é descrita em detalhes, incluindo seu nome, descrição e prazo de entrega.
Projeto de Funcionalidade (Design by Feature): Cada funcionalidade é projetada individualmente. Isso envolve o design detalhado das classes e estruturas de dados necessárias para implementar a funcionalidade.
Construção (Build by Feature): Nesta fase, os desenvolvedores começam a escrever o código para implementar cada funcionalidade. Cada funcionalidade é construída de forma independente e, uma vez concluída, passa para a próxima fase.
Inspeções (Inspect): Após a construção de uma funcionalidade, ocorrem inspeções para verificar se atende aos requisitos e padrões de qualidade estabelecidos. Problemas identificados são corrigidos.
Integração da Funcionalidade (Integrate): Após a aprovação nas inspeções, a funcionalidade é integrada ao sistema em desenvolvimento.
Preparação para a Implementação (Prepare for Deployment): Nesta fase, as funcionalidades integradas são revisadas e preparadas para a implantação no ambiente de produção.
Implantação (Deploy): As funcionalidades concluídas são implantadas no ambiente de produção. Isso pode ocorrer em várias iterações, à medida que novas funcionalidades são desenvolvidas e implantadas.
Relatórios e Gerenciamento (Reporting and Management): Durante todo o processo, a equipe gera relatórios de progresso para acompanhar o andamento do projeto. Isso ajuda a manter as partes interessadas informadas.
Ciclo de Feedback: Ao longo do processo, o feedback dos usuários e das partes interessadas é incorporado para fazer ajustes e melhorias contínuas nas funcionalidades e no sistema.
Desenvolvimento de Modelo de Domínio (Domain Modeling): Esta é a fase inicial em que a equipe cria um modelo de domínio que representa as principais entidades, relacionamentos e conceitos do sistema. Isso ajuda a entender o contexto e os requisitos do projeto.
-
-
-