Please enable JavaScript.
Coggle requires JavaScript to display documents.
FDD (Feature-Driven Development) - Coggle Diagram
FDD (Feature-Driven Development)
1- Características e o que seria
é uma metodologia de desenvolvimento de software que se concentra na criação de funcionalidades de software de maneira iterativa e incremental. FDD possui várias características distintas que o diferenciam de outras abordagens de desenvolvimento.
Um dos objetivos do FDD é entregar para o cliente funcionalidades com rapidez, em um período fixo de tempo, em geral, duas semanas ou menos.
2- ETVX
O FDD é composto por cinco etapas, e é indicado que cada iteração siga o padrão de etapas chamado de ETVX, oriundo de
Entrada
especifica e define os critérios de entradas para as etapas
Tarefa
é composto por uma lista com as tarefas que deverão ser realizadas
Verificação
especifica tipos de avaliações (internas e externas) e inspeções de projeto e código
Saída
especifica os critérios de saída, definindo os produtos tangíveis
3- Papéis
1. Gerente de Projeto
É o líder administrativo e financeiro do projeto: tem a palavra final no que se trata de escopo,
cronograma e recursos do projeto.
É o responsável também por toda a equipe, assegurando boas condições de trabalho para aumentar o rendimento de todos os envolvidos, além de decidir o que será realizado durante a iteração definida.
2. Gerente de Desenvolvimento
É o líder nas atividades diárias do desenvolvimento. É responsável por resolver qualquer tipo de
conflito que venha a ocorrer dentro da equipe.
Caso não esteja, ele deverá apontar melhorias ou sugestões que colaborem no amadurecimento
da equipe, em relação ao código e também de time.
3. Arquiteto-chefe
É responsável pela modelagem do projeto. Deve auxiliar a equipe de desenvolvedores e contribuir na construção do software.
Busca facilitar a organização dos componentes de um software e melhorar a flexibilidade e
portabilidade do sistema, gerando mais facilidade de manutenção.
4. Proprietários de código (desenvolvedor)
São os responsáveis pela modelagem e desenvolvimento de novas funcionalidades de um
software.
No FDD, o código deve ser realizado apenas por um desenvolvedor, ou seja, iniciado e
terminado pelo mesmo programador.
5. Especialistas do Domínio (negócio)
Pode ser qualquer pessoa que tenha o melhor conhecimento sobre o software em
particular, e pode ajudar as Equipes a entendê-lo.
Podem ser usuários, clientes, patrocinadores (servem como base de conhecimento
dos desenvolvedores).
4- Fases e Processos do FDD
1- Desenvolver um Modelo Abrangente
Desenvolver um modelo abrangente no FDD é fundamental para garantir que a equipe de desenvolvimento tenha uma compreensão clara das características do sistema e de como elas se relacionam entre si. Isso ajuda a orientar o desenvolvimento incremental e a garantir que o sistema seja construído de maneira consistente e de acordo com as necessidades do cliente.
2- Construir a Lista de Funcionalidades
é um processo crucial, pois estabelece as bases para o desenvolvimento incremental no FDD. Ela fornece uma visão clara das metas do projeto, permite a priorização adequada e ajuda a equipe a entender o escopo do trabalho a ser realizado. Essa lista é frequentemente revisitada e atualizada à medida que o projeto evolui e os requisitos mudam.
3- Planejar por Funcionalidade
Essa fase é fundamental para o sucesso do FDD, pois permite que a equipe planeje, gerencie e implemente as funcionalidades de forma eficaz, mantendo um foco constante na entrega de valor para o cliente. Ela também promove uma abordagem iterativa e adaptativa, o que é uma característica central das metodologias ágeis.
4- Detalhar por Funcionalidade
Essa fase é essencial para garantir que as funcionalidades sejam implementadas de maneira precisa e eficiente, de acordo com as necessidades do cliente. Ela também promove uma abordagem iterativa e adaptativa, o que é uma característica fundamental das metodologias ágeis, como o FDD.
5. Construir por Funcionalidade
é repetida para cada funcionalidade planejada e detalhada, seguindo o modelo de desenvolvimento incremental do FDD. Isso ajuda a garantir que o software seja desenvolvido de forma iterativa, entregando valor aos clientes em etapas, permitindo ajustes com base no feedback e garantindo que as funcionalidades sejam implementadas com alta qualidade.