De que se trata o artigo:

Mostra a motivação para a adoção da FDD em uma equipe de desenvolvimento e descreve, de maneira didática, como funciona o desenvolvimento iterativo e incremental de software através da metodologia FDD (Feature Driven Development). Também aborda brevemente uma forma de integrar as práticas ágeis de engenharia da FDD com as práticas de gestão ágil do Scrum.


Para que serve:

Gerenciar e desenvolver projetos de software através de um conjunto de atividades simplificadas, de maneira a estimular o compartilhamento do conhecimento acerca do software e da criação de bons códigos, permitindo então que o principal objetivo da FDD: “resultados frequentes, tangíveis e funcionais” seja alcançado num projeto de desenvolvimento de software.


Em que situação o tema é útil:

Para projetos de software que precisam dos benéficos de uma metodologia ágil de desenvolvimento, mas que necessitam também de algum grau de processo definido para gerar entregas constantes e de alto valor agregado para seus clientes.

FDD – O ponto de Equilíbrio Ágil:

A FDD (Feature Driven Development) é uma metodologia que foi criada num ambiente bancário na década de 90. Ela atua como uma excelente opção para organizações de diferentes tamanhos e segmentos, que necessitam balancear agilidade com práticas de engenharia de software um pouco mais definidas, visando auxiliar um melhor desenvolvimento e gestão de um projeto.

Portanto, se você quer adotar ou expandir o uso de Agile em sua equipe, leia esse artigo e descubra como funciona a UML em Cores, o modelo A.R.O., a FBS, o Parking Lot, a prática de Inspeção de Código e outras ideias oriundas da FDD. Veja também que a FDD, se adotada sozinha ou em conjunto com outras metodologias como o Scrum, pode lhe ajudar a gerar melhores resultados em seus projetos de desenvolvimento de software.

A filosofia Ágil é um grande guarda-chuva conceitual de valores e princípios que visam criar formas mais eficientes e eficazes para que times consigam desenvolver melhores softwares e, consequentemente, entregar de maneira constante melhores resultados aos clientes.

Essa filosofia pode ser realizada através de ferramentas que comumente chamamos de metodologias, frameworks e técnicas. Dentre esse arsenal podemos citar Extreme Programming (XP), Scrum, OpenUp e também FDD.

Dessa forma, exibindo mais um artigo Agile, que começou com O Diferencial Scrum (publicado na Java Magazine 73), você será apresentado agora a uma visão ampla e pragmática de experiências com a metodologia ágil FDD (Feature Driven Development) – Desenvolvimento Orientado a Funcionalidades, que oferece outra opção para organizações que gostariam de ter os benefícios de uma metodologia iterativa e incremental, mas precisam manter algum nível mínimo de processo definido.

História

Singapura, meados da década de 90, um grupo de experientes desenvolvedores de software fora contratado por uma importante instituição bancária para resolver um problema bem peculiar de um determinado projeto de desenvolvimento de software.

O referido problema consistia no fato que uma tradicional e grande consultoria de desenvolvimento havia sido contratada por cerca de dois anos para desenvolver um software crítico para o banco, sendo que durante esse período a única coisa que esta consultoria havia entregado foi aproximadamente 3.500 páginas de casos de uso.

Note que estamos falando que durante dois anos esse banco pagou uma considerável quantia em dinheiro por um software, para que fosse entregue apenas um montante de papel sobre o mesmo.

Mas voltando aos nossos amigos desenvolvedores que foram contratados para resolver o problema, como sua missão era entregar o software e, aquele montante de papéis não estava dizendo muita coisa sobre o que exatamente a instituição bancária estava precisando para o seu negócio, eles tiverem que tomar certas atitudes diferenciadas neste projeto.

A primeira atitude óbvia foi jogar fora aquele monte de papel que a outra consultoria havia entregado. Em seguida, eles foram gradualmente criando uma forma peculiar de aprender os requisitos e também construíram um processo mais efetivo de desenvolver e entregar software de acordo com os referidos requisitos que eram descobertos.

Foi dessa maneira que durante esse projeto, que durou 15 meses, foi criada a metodologia FDD. Nesse artigo, você entenderá a essência dessa metodologia e por que ela é mundialmente reconhecida como o ponto de equilíbrio na adoção de processo ágil por uma equipe, oferecendo práticas que atentem questões importantes da engenharia de software, aliadas ao comportamento iterativo e incremental peculiar aos processos ágeis.

O que é uma Feature?

Uma Feature é um desejo (requisito) do cliente sobre uma característica do negócio (representada por uma funcionalidade no software). Mas além de representar o desejo do cliente, é interessante também que uma Feature siga determinadas diretrizes, como:

...
Quer ler esse conteúdo completo? Tenha acesso completo