O Feature-Driven Development (FDD) é uma metodologia ágil que se concentra na entrega de funcionalidades incrementais e pequenas. No entanto, sua implementação requer uma compreensão aprofundada de suas etapas e princípios. Considere as seguintes afirmativas sobre o FDD e indique qual é a correta:
Questão
O Feature-Driven Development (FDD) é uma metodologia ágil que se concentra na entrega de funcionalidades incrementais e pequenas. No entanto, sua implementação requer uma compreensão aprofundada de suas etapas e princípios. Considere as seguintes afirmativas sobre o FDD e indique qual é a correta:
Alternativas
A) O FDD é uma metodologia estritamente linear, onde cada etapa deve ser concluída antes de passar para a próxima.
B) A etapa "Desenvolvimento do modelo geral" tem como objetivo identificar todos os requisitos funcionais do sistema de uma só vez.
C) Uma das principais características do FDD é a falta de ênfase na comunicação e colaboração da equipe.
D) Na etapa "Planejar por funcionalidade", são definidas as tarefas, estimativas de tempo e recursos necessários para cada funcionalidade.
E) O FDD é mais adequado para projetos de grande escala, devido à sua ênfase na visibilidade e clareza em projetos complexos.
Explicação
Vamos analisar as afirmativas com base nas etapas e princípios do Feature-Driven Development (FDD).
- Visão geral do FDD (para orientar a análise) O FDD é um processo ágil e iterativo, orientado a funcionalidades (“features”), com foco em entregas frequentes e mensuráveis. Ele costuma ser descrito por 5 processos principais:
- Desenvolver o modelo geral (overall model)
- Construir a lista de funcionalidades (feature list)
- Planejar por funcionalidade (plan by feature)
- Projetar por funcionalidade (design by feature)
- Construir por funcionalidade (build by feature)
- Avaliando as alternativas
A) “Estritamente linear” Falso. O FDD não é um modelo em cascata; embora tenha processos definidos, a execução é iterativa por conjunto de funcionalidades (ciclos curtos de design/build).
B) “Desenvolvimento do modelo geral” identifica todos os requisitos funcionais de uma só vez Falso. O “modelo geral” busca criar uma compreensão e modelagem de alto nível do domínio (visão/arquitetura conceitual). A identificação e detalhamento das funcionalidades fica mais associada à construção da lista de funcionalidades, e mesmo assim pode evoluir.
C) “Falta de ênfase na comunicação e colaboração” Falso. O FDD valoriza colaboração (modelagem por domínio, inspeções, interação entre papéis como Chief Programmer, class owners etc.). Não é uma metodologia que desestimula comunicação.
D) Em “Planejar por funcionalidade” definem-se tarefas, estimativas de tempo e recursos necessários para cada funcionalidade Parcialmente enganosa. Nessa etapa, normalmente se faz o planejamento do trabalho por funcionalidades (priorização, sequenciamento, atribuição de responsabilidades/ownership e cronograma por feature sets). Porém, a alternativa descreve isso como “tarefas, estimativas de tempo e recursos para cada funcionalidade” de forma genérica, mais típica de planejamento detalhado estilo WBS; no FDD o foco é planejar por conjuntos de features e atribuições (por classes/owners), não necessariamente decompor cada feature em um conjunto formal de tarefas como a frase sugere.
E) “Mais adequado para projetos de grande escala, devido à ênfase na visibilidade e clareza em projetos complexos.” Verdadeiro. O FDD é frequentemente apontado como particularmente útil em contextos maiores/mais complexos porque enfatiza organização por funcionalidades, papéis e responsabilidades claras (ex.: donos de classe), acompanhamento de progresso por features e boa visibilidade do andamento.
Alternativa correta: (E).