Anda di halaman 1dari 43

Mini-Curso: FDD Feature-Driven Development

Roteiro
Introduo O Manifesto gil A Histria da FDD Principais Caractersticas Os 5 Processos Relatrios de Progresso Laboratrio de FDD

Sampa, 16/07/2005

Adail Muniz Retamal

Introduo

Eficcia Eficincia

Sampa, 16/07/2005

Pe ss oa s

Capacitao Habilidades Motivao

Gesto do Conhecimento Gesto de Processos Melhoria de Processos Boas Prticas

Tecnologia Produtos comprovadamente efetivos para gesto e construo de software


Adail Muniz Retamal 3

s s so sso es ce oc Pro Pr

Os 5 Ps
Projeto
Por que precisamos gerenciar?

Pessoas
Quem precisamos gerenciar?

Prticas
O que precisamos gerenciar?

Processo
Como gerenciamos?

Progresso
Como medimos e monitoramos?

Sampa, 16/07/2005

Adail Muniz Retamal

Para que serve um Processo?


O propsito de um processo de desenvolvimento de software :
capacitar e reforar a entrega repetvel de software que funciona, no prazo adequado e eficiente em relao ao seu custo... fornecendo informao precisa e significativa a todos os papis principais, dentro e fora de um projeto... com o mnimo de interrupo para os desenvolvedores

Coad, De Luca (JMCU)

Sampa, 16/07/2005

Adail Muniz Retamal

Caractersticas de Um Bom Processo


bem delimitado Claramente define tarefas, que so focadas nos resultados Produz progresso e informao de status precisos Rapidamente torna-se uma questo de hbito Ajuda a equipe a manter a qualidade e administrar a complexidade Otimiza comunicao dentro e fora da equipe

Sampa, 16/07/2005

Adail Muniz Retamal

O Manifesto gil
Estamos descobrindo melhores maneiras de desenvolver software, fazendo-o e ajudando outros a faz-lo. Atravs deste trabalho passamos a valorizar: Indivduos e interaes mais que processos e ferramentas. Software que funciona mais que documentao detalhada. Colaborao do cliente mais que negociaes contratuais. Responder s mudanas mais que seguir um plano. Isto , embora haja valor nos itens do lado direito, ns valorizamos mais os do lado esquerdo. http://www.agilemanifesto.org
Sampa, 16/07/2005 Adail Muniz Retamal 7

Histria da FDD
1997-1998, Singapura Contexto: Desenvolvimento de um grande sistema de emprstimos para um banco internacional Anteriormente, aps 2 anos de consultoria, 3.500 pginas de casos de (in)uso e um modelo de objetos com centenas de classes, foi avaliado como impossvel Deciso: Implantao das metodologias de OOAD de Peter Coad e de gerncia de projetos de Jeff De Luca Resultado: 15 meses aps a contratao de Jeff e Coad, 2.000 features entregues por uma equipe de 50 pessoas
Sampa, 16/07/2005 Adail Muniz Retamal 8

Os Pioneiros

Jeff De Luca

Peter Coad

Autores do Guia Prtico da FDD Stephen Palmer


Sampa, 16/07/2005

John Mac Felsing


Adail Muniz Retamal 9

Caractersticas da FDD
Fornece a estrutura suficiente para equipes maiores Enfatiza a produo de software de qualidade Entrega resultados freqentes, tangveis e funcionais Realiza trabalho significativo desde o incio, antes de tornarse altamente iterativa Fornece informao de estado e progresso de forma simples e compreensvel Agrada a clientes, gerentes e desenvolvedores

Sampa, 16/07/2005

Adail Muniz Retamal

10

O Que Feature ?
Caracterstica ou funcionalidade Pequena o suficiente para ser implementada no mximo em 2 semanas Oferece valor para o cliente Mapeia passos em uma atividade de negcio Modelo: <ao> <resultado> <objeto>
Calcular o total de uma venda Autorizar uma transao com carto de um cliente

Sampa, 16/07/2005

Adail Muniz Retamal

11

As Melhores Prticas da FDD


Modelagem de Objetos do Domnio Desenvolvimento por feature Posse individual de classe (cdigo) Equipes de features Inspees Builds regulares Gerenciamento de configurao Relatrio/Visibilidade de Resultados

Sampa, 16/07/2005

Adail Muniz Retamal

12

CMMI
Nvel 5: Otimizado Nvel 4: Gerenciado Quantitativamente Deteco e Preveno de Defeitos Inovao e Implantao Organizacional Desempenho do Processo Organizacional Gerncia Quantitativa do Projeto Desenvolvimento de Requisitos Soluo Tcnica Integrao do Produto Verificao Validao Foco no Processo Organizacional Definio do Processo Organizacional Treinamento Organizacional Gerenciamento de Risco Anlise e Tomada de Deciso Ambiente Organizacional para Integrao Gerncia de Requisitos Planejamento do Projeto Monitoramento e Controle do Projeto Gerncia de Subcontratao Medio e Anlise Garantia de Qualidade do Processo e do Produto Gerncia de Configurao
Adail Muniz Retamal 13

Nvel 3: Definido

Nvel 2: Gerenciado

Sampa, 16/07/2005

Os 5 Processos
Requisitos

Concepo e Planejamento
Mais forma que contedo

Desenvolver um Modelo Abrangente

Construir uma Lista de Features

Planejar por Feature


Plano de Desenvolvimento

Modelo de Objetos

Construo
Detalhar por Feature Construir por Feature

Mais contedo na forma

Produto
Pacotes de Trabalho
Sampa, 16/07/2005 Adail Muniz Retamal 14

O Porqu de Cada Processo


Desenvolver um Modelo Abrangente
Modelagem dos Processos de Negcio (BPM) Anlise Orientada por Objetos (OOA)

Construir a Lista de Features


Decomposio Funcional

Planejar por Feature


Plano de Desenvolvimento Prioridade, Dependncia, Distribuio de Trabalho

Detalhar por Feature


Projeto OO (OOD), Estudo Detalhado

Construir por Feature


Programao OO (OOP) Inspeo, Testes, Integrao
Sampa, 16/07/2005 Adail Muniz Retamal 15

Disciplinas Envolvidas
Concepo e Planejamento
Anlise OO
Decomposio Funcional Planejamento

Construo

Projeto OO

Programao OO

Sampa, 16/07/2005

Adail Muniz Retamal

16

Escopo da FDD
Discusses Iniciais Sobre Requisitos Obter Patrocnio da Gerncia Escolha da Linguagem de Programao Planejamento Geral Preparao de Oramento Alocao de Pessoal Gerenciamento de Recursos

Feature-Driven Development
Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por Feature Detalhar por Feature
Escolha da Plataforma Tecnolgica Prottipo Tcnico Prottipo da Interface com o Usurio Limpeza de Dados

Gerenciamento de Problemas

Construir por Feature


Converso de Dados Teste do Sistema Teste de Carga Sistema Piloto Desenvolvimento em Fases

Gerenciamento das Alteraes nos Requisitos

Teste de Aceitao do Usurio

Sampa, 16/07/2005

Adail Muniz Retamal

17

Principais Papis
Gerente de Projeto Arquiteto-Chefe Especialistas no Domnio de Negcio Gerente de Desenvolvimento Programadores-Chefes Proprietrios de Classes

Sampa, 16/07/2005

Adail Muniz Retamal

18

Funes de Apoio
Gerente de Verso Guru da Linguagem Engenheiro de Desenvolvimento Produtor de Ferramentas e Utilitrios Administrador de Sistemas Testadores Implantadores Escritores Tcnicos

Sampa, 16/07/2005

Adail Muniz Retamal

19

Equipes de Features
Formadas dinamicamente
nica forma de desenvolver por feature e manter a posse de cdigo Sob a coordenao de um Programador-Chefe

Mltiplas mentes projetando


Comparao entre alternativas e escolha da mais apropriada

Membros so os Donos de Classes relevantes


Benefcio da Posse de Cdigo

Enfatiza o trabalho em equipe


Ningum termina enquanto a equipe de features no terminar

Sampa, 16/07/2005

Adail Muniz Retamal

20

Viso Arquitetural
Apresentao Apresentao

(Vises e Controladores de Interface) (Vises e Controladores de Interface)

Negcio Negcio (Domnio do Problema) (Domnio do Problema)

Persistncia Persistncia

Interface com Interface com outros sistemas outros sistemas


21

Sampa, 16/07/2005

Adail Muniz Retamal

Medindo o Progresso

DMA

CLF

PPF

DPF

CPF

N 4: Detalhar por Feature


Estudo Dirigido Sobre o Domnio Design (Projeto) Inspeo do Design

N 5: Construir por Feature


Codificar Inspeo do Cdigo Promoo ao Build

1%

40%

3%

45%

10%

1%

No ciclo iterativo (processos 4 e 5), o progresso medido com base em 6 marcos (milestones) bem definidos A cada etapa cumprida, o percentual respectivo agregado ao total de progresso da feature
Sampa, 16/07/2005 Adail Muniz Retamal 22

Monitorando as Features

Legenda:

Atividade em andamento

Requer ateno

Completada

No iniciada

Sampa, 16/07/2005

Adail Muniz Retamal

23

Reportando o Progresso
Iniciais PC

Status da Atividade:
Em andamento Requer ateno (ex.: atraso) Completada Ainda no iniciada

Nome da Atividade de Negcio (n features) 75% Ms/Ano

Porcentagem Completada:
Barra de Progresso

Prazo de Entrega:
Completada MA Ms e Ano para entrega

Sampa, 16/07/2005

Adail Muniz Retamal

24

Relatrio de Progresso
Gerenciamento de Vendas de Produtos (VP)
PC-1 PC-1 PC-3 PC-1 PC-2 PC-1

Venda de Produtos (22) 99% Abr 2004

Envio de Produtos (19) 10% Abr 2004

Entrega de Produtos (10) 30% Abr 2004

Entrada de Pedidos (33) 3% Abr 2004

Controle de Contratos (13)

Relatrios de Vendas (14) 75%

Abr 2004

Abr 2004

Ger. Contas de Clientes (CC)


PC-2 Anlise de Propostas de Contas (23) 95% Fev 2004 PC-2 Abertura de Novas Contas (11) 100% Fev 2004 PC-2 Registro de Transaes das Contas (30) 82% Mar 2004

Gerenciamento de Estoque (GE)


PC-3 Definio de Unidades de Estoque (26) 100% Mar 2004 PC-3 Aceite de Requisies de Movimento (18) 97% Mar 2004 PC-3 Movimentao de Mercadorias (19) 82% Mar 2004

Legenda:

Em andamento

Ateno

Completada

Barra de Progresso

No iniciada

Sampa, 16/07/2005

Adail Muniz Retamal

25

Visibilidade do Projeto
Diagrama de Fluxo Acumulado

Legenda: Features No iniciada Em andamento Completada

Tempo (semanas)

Sampa, 16/07/2005

Adail Muniz Retamal

26

Bibliografia Recomendada

www.featuredrivendevelopment.com br.groups.yahoo.com/group/gufdd
Sampa, 16/07/2005 Adail Muniz Retamal 27

Algumas Diferenas
FDD Planejamento inicial Refactoring exceo Programadores-Chefes e Proprietrios de Classes Projeto formal e inspees de cdigo XP Planejamento durante o desenvolvimento Refactoring a norma Posse coletiva do cdigo Programao em pares

Sampa, 16/07/2005

Adail Muniz Retamal

28

Espectro de Metodologias
Rigorosidade Rigorosidade

Agilidade Agilidade

UP

FDD
Quero apenas o Processo Suficiente Escalvel para Equipes Mdias e Pequenas

XP

Quero Controle Equipes Grandes Rigor Necessrio

Quero Liberdade Equipes Pequenas (<= 12)

Sampa, 16/07/2005

Adail Muniz Retamal

29

A FDD...
um mtodo gil e altamente adaptativo, que produz resultados freqentes, tangveis e funcionais Oferece vantagens dos mtodos prescritivos (rigorosos), pois implementa o conceito importante de planejamento, mas sem os exageros de documentao e controle Oferece vantagens dos mtodos extremamente geis, onde a preocupao maior com a produo de cdigo, mas toma o cuidado de planejar o suficiente e controlar o andamento do projeto orientada s necessidades dos clientes, gerentes e desenvolvedores
Sampa, 16/07/2005 Adail Muniz Retamal 30

Laboratrio de FDD

Sampa, 16/07/2005

Adail Muniz Retamal

31

Processo N 1: Desenvolver um Modelo Abrangente


uma atividade inicial de estudo, anlise e modelagem do sistema Realizada em grupos O modelo gerado suficientemente abrangente, mas no detalhado O objetivo ter uma definio a priori do que ser feito, para guiar a equipe durante a fase de construo

Sampa, 16/07/2005

Adail Muniz Retamal

32

Processo N 1: Desenvolver um Modelo Abrangente


Formar a Equipe de Modelagem (Gerente do Projeto) Conduzir um Estudo Dirigido Sobre o Domnio de Negcio (Ger. Projeto, Especialistas) Desenvolver Modelos em Pequenos Grupos (Equipe de Modelagem em pequenos grupos) Refinar o Modelo de Objetos Completo (Arquiteto-Chefe, Equipe de Modelagem)

opcional

Estudar Documentos (Equipe de Modelagem)

Desenvolver um Modelo como Equipe (Equipe de Modelagem)

Escrever Comentrios Sobre o Modelo (Arquiteto-Chefe, Programador-Chefe)


Sampa, 16/07/2005 Adail Muniz Retamal 33

Processo N 2: Construir a Lista de Features


Com o modelo bsico criado, deve-se agora criar uma lista de features uma decomposio funcional do domnio do negcio Categorizada em 3 nveis:
reas de Negcio (Business Areas, Major Feature Sets) Atividades de Negcio (Business Activities, Feature Sets) Passos da Atividade de Negcio (Activity Steps, Features)

Sampa, 16/07/2005

Adail Muniz Retamal

34

Apenas 3 Nveis de Decomposio Funcional

Empresa // Sistema Empresa Sistema


rea de Negcio 1
Atividade de Negcio 1
Feature 1 Feature 2 Feature 3 Feature 4

rea de Negcio 2
Atividade de Negcio 3
Feature 8 Feature 9 Feature 10

Atividade de Negcio 2
Feature 5 Feature 6 Feature 7

Atividade de Negcio 4
Feature 11 Feature 12

Sampa, 16/07/2005

Adail Muniz Retamal

35

Processo N 2: Construir a Lista de Features


Formar a Equipe de Lista de Features (Gerente do Projeto, Gerente de Desenvolvimento)

Construir a Lista de Features (Equipe de Lista de Features)

Sampa, 16/07/2005

Adail Muniz Retamal

36

Processo N 3: Planejar por Feature


Com a lista e o modelo, deve-se agora planejar a ordem na qual as funcionalidades sero implementadas, tendo como base:
a necessidade do usurio (importncia, prioridade) as dependncias entre elas a carga de trabalho da equipe de desenvolvimento a complexidade das funcionalidades

As responsabilidades so distribudas para a equipe O resultado ser o plano de desenvolvimento

Sampa, 16/07/2005

Adail Muniz Retamal

37

Processo N 3: Planejar por Feature

Formar a Equipe de Planejamento (Gerente do Projeto)

Determinar a Sequncia de Desenvolvimento (Equipe de Planejamento)

Atribuir Conjuntos de Features para Programadores-Chefes (Equipe de Planejamento)

Atribuir Classes para os Desenvolvedores (Equipe de Planejamento)

Sampa, 16/07/2005

Adail Muniz Retamal

38

Processo N 4: Detalhar por Feature


Agora na fase de construo propriamente dita, deve-se refinar o projeto (design) para cada feature ou conjunto de features relacionadas A equipe de features ser formada pelos proprietrios das classes envolvidas O resultado ser um pacote de trabalho, sob a responsabilidade de um programador-chefe

Sampa, 16/07/2005

Adail Muniz Retamal

39

Processo N 4: Projetar por Feature


Formar a Equipe de Features (Programador-Chefe)

opcional

Conduzir um Estudo Dirigido Sobre o Domnio de Negcio (Especialista no Domnio)

opcional

Estudar Documentos de Referncia (Equipe de Features)

Desenvolver os Diagramas de Sequncia (Equipe de Features)

Refinar o Modelo de Objetos (Programador-Chefe)

Escrever Prlogos de Classes e Mtodos (Equipe de Features)

Inspecionar o Projeto (Design) (Equipe de Features)


Sampa, 16/07/2005 Adail Muniz Retamal 40

Processo N 5: Construir por Feature


Os proprietrios de classes desenvolvem o cdigo correspondente a cada feature Os testes de unidade e as inspees so realizados O cdigo final (aprovado) promovido ao build atual O resultado uma funo com valor para o cliente (feature)

Sampa, 16/07/2005

Adail Muniz Retamal

41

Processo N 5: Construir por Feature

Implementar Classes e Mtodos (Equipe de Features)

Conduzir uma Inspeo no Cdigo (Equipe de Features)

Testes de Unidade (Equipe de Features)

Promover para o Build (Programador-Chefe, Equipe de Features)

Sampa, 16/07/2005

Adail Muniz Retamal

42

Valeu!

Adail Muniz Retamal aretamal@borland.com


Sampa, 16/07/2005 Adail Muniz Retamal 43