sexta-feira, maio 25, 2012

FDD

 

FDD (Feature Driven Development) é uma metodologia utilizada no gerenciamento e desenvolvimento de softwares. Essa metodologia combina as melhores práticas do gerenciamento ágil de projetos com uma abordagem completa para Engenharia de Software orientada por objetos
O foco dessa metodologia está na auto-organização da equipe e, para isso, são necessários analistas seniores. Têm características fundamentais das metodologias (RUP, SCRUM e FDD) que são consideradas ágeis pois são iterativas e incrementais. No entanto, o RUP não pertence à família ágil, por ter seu foco em documentação abrangente, processos e ferramentas mas o FDD  assim como o RUP  também possui características de uma metodologia de gerenciamento de projetos. apresenta oito melhores práticas para um projeto de Software que justificam o seu sucesso: 
·         Modelagem do Domínio de Objetos - descrever um mapa geral do software que será desenvolvido.
·         Desenvolvimento por Feature - desenvolver o sistema de forma iterativa e incremental e por pequenos blocos de funcionalidade que forneçam uma nova e valorada experiência para o usuário;
·         Propriedade das Classes - esta prática é muito utilizada na técnica de encapsulamento quando se desenvolve orientado-objetos.
·         FeaturesTeams - o FDD não prega a propriedade coletiva sobre o código desenvolvido.
·         Inspeções - foco em identificar defeitos e não em intimidar o programador que desenvolve determinada feature.
·         Agenda regular de Construção (Build) - as equipes codificarão as features baseadas em intervalos regulares de tempo.
·         Gerenciamento da Configuração - os códigos necessitam ser armazenados e versionados em um determinado nível que reúna todas as demandas do time.
·         Visibilidade dos Resultados - o status do projeto deve ser regularmente atualizado e de fácil entendimento para que possa guiar o projeto.

Como o FDD é uma abordagem utilizada para o paradigma de sistemas orientados a objetos, não é de se estranhar que alguns papéis previstos na metodologia requeiram habilidades de UML e cheguem a ser parecidos com o framework RUP. Em sua estrutura, o FDD define seis papéis principais, que estão envolvidos diretamente com a realização dos processos da metodologia.
Sendo eles:
·         Programadores: Aloca as propriedades das classes, lidera o time de features, garante a qualidade de todos os releases
·         Proprietários das Classes: Pode estar simultaneamente em mais de uma feature
·         Gerente de projeto:  líder administrativo do projeto, gerencia orçamentos, relata os processos do projeto;
·         Arquiteto Chefe: responsável por toda a modelagem do sistema.
·         Gerente de desenvolvimento: responsável pelo dia a dia das atividades desenvolvidas.
·         Especialista do domínio: qualquer pessoa que conheça do produto pelo qual o esta sendo desenvolvido.
A maior prioridade do é FDD satisfazer por completo o cliente, seu desenvolvimento e incremental e interativo características das metodologias ágeis. Tem datas e papeis definidos dentro do desenvolvimento onde cada pessoas realiza uma determinada tarefa.

 

 

 

4 comentários: