TEMA 02 Flashcards
O que é o FDD?
O FDD é uma abordagem mais estruturada e orientada a processo para o desenvolvimento ágil. Ele
define um processo de cinco etapas para o desenvolvimento de software e oferece orientação
detalhada sobre cada etapa. O FDD é uma metodologia altamente adaptável, que pode ser usada
em projetos de qualquer tamanho ou complexidade.
O FDD (Feature-Driven Development) é um processo iterativo e incremental que se concentra em
desenvolver funcionalidades incrementais, pequenas e tangíveis, em vez de desenvolver grandes
sistemas em uma única vez. O FDD enfatiza a importância das etapas de planejamento, design e
construção em pequenas iterações, o que ajuda a garantir que o sistema seja desenvolvido com
alta qualidade e entregue dentro do prazo estipulado
O Feature-Driven Development (FDD) foi criado por Jeff De Luca e Peter Coad na década de
1990. Baseia-se em práticas específicas que enfatizam a entrega rápida
de funcionalidades de valor para o cliente.
Quais são as etapas do FDD?
O processo do Feature-Driven Development (FDD) é dividido em cinco etapas, sendo elas:
Etapa 1 – Desenvolvimento do modelo geral
O objetivo desta etapa é conhecer o sistema; para isso, a equipe de desenvolvimento:
constrói um modelo que apresenta a estrutura geral do sistema e os relacionamentos dos
objetos de negócio;
identifica os requisitos funcionais do sistema.
Etapa 2 – Criar lista de funcionalidades
Nesta etapa deve-se elaborar, em conjunto com o cliente, a lista de funcionalidades do sistema e
fazer sua priorização. Essa lista é atualizada no decorrer do projeto.
Etapa 3 – Planejar por funcionalidade
Nesta etapa, devem ser planejadas as tarefas, a estimativa de tempo e os recursos necessários
para execução de cada uma das funcionalidades.
Etapa 4 – Modelar por funcionalidade
Neste momento, deve ser construído o design detalhado de cada uma das funcionalidades.
Nessa documentação deve ser incluída a especificação da arquitetura, diagramas de classe e de
sequência.
Etapa 5 – Construir por funcionalidade
Na última etapa, as funcionalidades são implementadas e testadas em pequenos incrementos.
Esta etapa se repete até que todas as funcionalidades tenham sido implementadas, testadas e
integradas ao sistema.
Quais são as características do FDD?
foco nas funcionalidades – desenvolver pequenas funcionalidades que agreguem valor ao
cliente e a cada iteração complementar as funcionalidades do produto;
equipes multidisciplinares – a equipe deve ser composta de vários perfis diferentes para
garantir uma visão completa das necessidades do projeto;
processo iterativo e incremental – define ciclos de desenvolvimento curtos e que fazem com
que o sistema evolua a cada entrega;
ênfase no planejamento – o FDD enfatiza a importância do planejamento, especialmente
quanto à definição de funcionalidades, design e construção;
inspeções de código – para garantir a qualidade do software são realizadas inspeções no
código e, com isso, os problemas são encontrados e solucionados proativamente;
ênfase na comunicação – realização de reuniões diárias e outras formas de interação da
equipe certificam que todos os integrantes da equipe estão trabalhando em sintonia e com os
mesmos objetivos;
entrega contínua – garantir que as entregas forneçam um produto funcional.
Quais são as vantagens do FDD?
Abordagem orientada a objetos: com a abordagem orientada a objetos do FDD é possível criar
a modelagem dos objetos de negócio com maior eficiência e adaptar o desenvolvimento às
expectativas e necessidades do cliente.
Equipe multidisciplinar: encoraja o trabalho em conjunto de profissionais de diferentes áreas de
especialização para entregas de software com qualidade e no prazo definido.
Entrega contínua de recursos: ressalta a entrega contínua de versões testáveis do projeto; com
isso é possível realizar os ajustes de acordo com os feedbacks do cliente constantemente.
Adaptabilidade: a metodologia pode ser adaptada às necessidades do projeto.
Quais são as desvantagens do FDD?
O FDD pode ser menos adequado para projetos de grande escala, já que pode haver dificuldades
em manter a visibilidade e a clareza em projetos complexos com muitas equipes e recursos. Algumas desvantagens do FDD incluem:
Falta de foco em documentação: apesar de a documentação ser clara e objetiva, não é
detalhada, o que pode causar alguns problemas em projetos que demandem uma
documentação com mais informação.
Dependência de habilidades técnicas: a equipe do projeto deve possuir as habilidades técnicas
necessárias para modelar os objetos de negócio e implementar os recursos com qualidade e
eficiência.
Necessidade de planejamento detalhado: ter um planejamento detalhado, em um projeto que
os requisitos podem mudar com frequência, é o desafio da metodologia.
Potencial para conflitos: como a equipe do projeto e o cliente estão em contato constante,
podem ocorrer desentendimentos entre eles, principalmente quando o cliente tiver expectativas
equivocadas quanto ao tempo ou custo do projeto.