Descrição do método de Desenvolvimento Guiado por Funcionalidades para Atividade 1 da disciplina Projeto de Informatização.
Feature-Driven Development (FDD), ou Desenvolvimento Guiado por Funcionalidades, é uma metodologia ágil de desenvolvimento de software que se destaca por organizar o trabalho em torno da entrega incremental e iterativa de pequenas funcionalidades (“features”) que possuem valor claro para o cliente.
Foco na entrega contínua de funcionalidades pequenas e bem definidas, geralmente com ciclos de desenvolvimento de até duas semanas por feature.
Abordagem incremental e iterativa, permitindo entregas frequentes e feedback constante.
Ênfase na modelagem de domínio e design orientado a objetos.
Indicado principalmente para projetos de médio e grande porte, onde a clareza e rastreabilidade das funcionalidades são essenciais.
No FDD, o desenvolvimento não ocorre de maneira linear; funcionalidade (feature) passa por ciclos curtos de planejamento, design, implementação, teste e entrega, permitindo revisões e melhorias constantes com base no feedback e na experiência adquirida a cada iteração (CTC, 2024).
Esse processo iterativo garante que o produto evolua gradualmente, com entregas frequentes de partes funcionais do sistema, facilitando ajustes rápidos e alinhamento contínuo com as necessidades do cliente (Marques, 2019).
Desenvolvimento de Modelo Geral
Análise do sistema e do contexto que está inserido. Modelagem de cada domínio do sistema, em equipes. Uma equipe imparcial revisa os modelos, que depois são unificados em um modelo geral.
Decomposição do sistema em pequenas funcionalidades, agrupadas em conjuntos relacionados (feature sets).
Cada feature é descrita de forma simples, como "<ação> <resultado> <objeto>".
"Features" são entendidos como projetos de pequeno porte em estado completo (Singh, 2021).
Definição da ordem de implementação das features, considerando dependências, prioridades e capacidade da equipe.
Para cada feature, é realizado o detalhamento técnico e o design, seguido de inspeções para garantir a qualidade antes da implementação.
Implementação, testes e integração de cada feature ao sistema principal, com inspeções regulares para assegurar aderência aos requisitos e padrões de qualidade.
Criado por Jeff De Luca e Peter Coad entre 1997 e 1999, inicialmente para atender a um grande projeto bancário em Cingapura.
Baseado em práticas de modelagem orientada a objetos, especialmente o método Coad/Yourdon.
Tornou-se conhecido após publicações como “Java Modeling in Color with UML” (1999) e “A Practical Guide to Feature Driven Development” (2002).
Propriedade individual de classes: Cada parte do código tem um responsável, promovendo qualidade e integridade (Aftab et al, 2019).
Equipes dinâmicas: Pequenas equipes são formadas para cada feature, promovendo colaboração e diversidade de ideias (Gahyyur et al, 2018).
Inspeções de código e design: Revisões frequentes garantem a qualidade das entregas (Gahyyur et al, 2018; Kumari & Heena, 2013).
Gestão de configuração: Controle rigoroso das versões e histórico das alterações, facilitando integração contínua (Gahyyur et al, 2018).
Relatórios de progresso: Transparência e visibilidade do andamento do projeto para todas as partes interessadas (Gahyyur et al, 2018).