Site Campus - Feature Driven Development - Artigo 1 de 2

Feature Driven Development – Artigo 1 de 2

Feature Driven Development - Artigo 1 de 2Criada em 1997, em Singapura, o Feature Driven Development (FDD) é uma metodologia ágil para gerenciamento e desenvolvimento de software.

O surgimento desta metodologia é mérito de Peter Coad, em um grande projeto em Java para o United Overseas Bank, a partir de seus conhecimentos em análise e modelagem orientadas por objetos, e de Jeff De Luca, por seu conhecimento em gerenciamento de projetos.

O principal lema da metodologia é “resultados frequentes, tangíveis e funcionais”.  O FDD (Desenvolvimento Guiado por Funcionalidades) oferece um conjunto de princípios e práticas tanto para engenharia de software quanto para o gerenciamento de projetos. Situa-se em uma posição intermediária entre abordagens tradicionais e clássicas. Também convive bem com a metodologia Scrum.

A primeira publicação onde o FDD figurou foi no livro Java Modeling in Color with UML, de autoria de Peter Coad, Eric Lefebvre e Jeff De Luca. A versão completa e atualizada da metodologia foi publicada definitivamente em 2002, no livro A Pratical Guide to Feature Driven Development.

Black Week Site Campus

Entre todas as práticas oferecidas pela metodologia, não existem regras que definam quais são as mais apropriadas. Cabe ao gerente do projeto e a equipe definirem quais se adequam mais a cada situação.

A FDD é descrita por cinco processos:

• Desenvolver um Modelo Abrangente: pode envolver desenvolvimento de requisitos, análise orientada por objetos, modelagem lógica de dados e outras técnicas para entendimento do domínio de negócio em questão. O resultado é um modelo de objetos (e/ou de dados) de alto nível, que guiará a equipe durante os ciclos de construção.

• Construir uma Lista de Funcionalidades: decomposição funcional do modelo do domínio, em três camadas típicas: áreas de negócio, atividades de negócio e passos automatizados da atividade (funcionalidades). O resultado é uma hierarquia de funcionalidades que representa o produto a ser construído (também chamado de product backlog, ou lista de espera do produto).

• Planejar por Funcionalidade: abrange a estimativa de complexidade e dependência das funcionalidades, também levando em consideração a prioridade e valor para o negócio/cliente. O resultado é um plano de desenvolvimento, com os pacotes de trabalho na seqüência apropriada para a construção.

• Detalhar por Funcionalidade: já dentro de uma iteração de construção, a equipe detalha os requisitos e outros artefatos para a codificação de cada funcionalidade, incluindo os testes. O projeto para as funcionalidades é inspecionado. O resultado é o modelo de domínio mais detalhado e os esqueletos de código prontos para serem preenchidos.

• Construir por Funcionalidade: cada esqueleto de código é preenchido, testado e inspecionado. O resultado é um incremento do produto integrado ao repositório principal de código, com qualidade e potencial para ser usado pelo cliente/usuário.

Detalhamento dos Cinco Processos do FDD

Desenvolver um Modelo Abrangente

Requer a orientação de um modelador de objetos experiente, que irá incorporar o papel de arquiteto líder. Representa a atividade inicial na metodologia e abrange todo o projeto. É realizada tanto por desenvolvedores quanto por representantes do negócio.

É realizado então, pela equipe do projeto, um estudo sobre os domínios do negócio. São criados diversos grupos, se necessário, para as diferentes áreas do contexto do projeto. Cada grupo, ou par, faz sua proposição de modelo que será posteriormente comparada e revisada por todo o grupo. Os modelos, ou o modelo, que forem eleitos para orientar o trabalho a partir de então será utilizado por todos durante o desenvolvimento do projeto. Em seu conteúdo, o modelo de objetos definido como central tem seu conteúdo atualizado pelo processo “Detalhar por Funcionalidade”, que será estudado ainda neste mesmo documento.

Critérios de Entrada

A seleção do arquiteto líder, dos desenvolvedores e dos representantes/especialistas do negócio.

Atividades

• Formar a Equipe de Modelagem

É uma atividade obrigatória que deve ser conduzida pelo Gerente do Projeto. A equipe é composta por membros das áreas do domínio do desenvolvimento e do negócio, incluindo nesta lista programadores líderes e especialistas do domínio. Outros integrantes do projeto podem e devem participar das sessões de modelagem de objetos, assim todos podem tomar conhecimento dos procedimentos e processos em andamento adotados no projeto.

• Estudo Dirigido Sobre o Domínio

Atividade obrigatória e dirigida pela equipe de modelagem. É apresentada uma visão geral da área de domínio que deverá ser modelada por um especialista do negócio, então, as informações relacionadas a esta área de domínio são absorvidas pela equipe de desenvolvimento.

• Desenvolver o Modelo

A equipe é dividida em duplas ou trios de desenvolvedores/modeladores. Cada pequena célula deve desenvolver um modelo de objetos para o domínio de negócios em questão. Posteriormente, o arquiteto líder seleciona junto da equipe os melhores modelos, ou a combinação dos mesmos, para adotar no desenvolvimento daquele módulo específico.

Verificação

O processo de verificação é obrigatório e deve ser feito por representantes do negócio e pela equipe de modelagem de objetos. É feita uma auto-avaliação por meio da participação dos especialistas do domínio do negócio. O objetivo é esclarecer questões que possam afetar de alguma forma o modelo e o resultado final do trabalho, por isso podem também estar presentes consultores externos ao projeto.

Critérios de Saída

O resultado final do processo é o modelo de objetos. Diagramas de classe dentro do domínio do negócio, como estes diagramas e quais classes estão conectadas umas as outras. Métodos e atributos identificados, diagramas de sequência e comentários sobre o modelo para registrar o motivo de sua escolha.

Clique aqui e veja uma aula sobre certificações em agile do nosso curso preparatório para as certificações PSM e PSPO da Scrum.org – faça esta aula gratuitamente e aprenda mais!


#
Compartilhe!
Fale com o Site Campus

Tags: , , , , ,