FDD: Processo 3: PPF-Planejar por Funcionalidade

É uma atividade inicial que abrange todo o projeto, para produzir o plano de desenvolvimento.

O gerente de projeto, o gerente de desenvolvimento e os programadores-líderes planejam a ordem na qual as funcionalidades serão implementadas, baseada nas dependências entre elas, na carga de trabalho da equipe de desenvolvimento e também na complexidade das funcionalidades a serem implementadas. As principais atividades neste processo não são uma seqüência estrita. Como muitas atividades de planejamento, elas são consideradas em conjunto, com refinamentos feitos a partir de uma ou mais atividades e então considerando os outros novamente.

Um cenário típico é levar em conta a seqüência de desenvolvimento, depois levar em conta a atribuição das atividades de negócio aos programadores-líderes e, ao fazê-lo, considerar quais das classes principais (apenas) são atribuídas a quais desenvolvedores (lembrar que o programador-líder também é um desenvolvedor).

Quando esse equilíbrio for alcançado, e a seqüência de desenvolvimento e a atribuição das atividades de negócio aos programadores-líderes estiver essencialmente completada, então a posse das classes estará completada (além das classes principais que já foram consideradas para posse).


Critérios de Entrada


Atividades


Formar a Equipe de Planejamento
Responsabilidade: Gerente do Projeto
Obrigatória

A equipe de planejamento é composta pelo gerente de desenvolvimento e pelos programadores-líderes.


Determinar Seqüência de Desenvolvimento
Responsabilidade: Equipe de Planejamento
Obrigatória

A equipe de planejamento deve atribuir uma data (mês e ano apenas) para o término de cada atividade de negócio. A identificação da atividade de negócio e a data de término (e dessa forma a seqüência de desenvolvimento) é baseada em:

  • Dependências entre as funcionalidades em termos de classes envolvidas;
  • Distribuição da carga de trabalho entre os proprietários das classes;
  • Complexidade das funcionalidades a serem implementadas;
  • Adiantamento das atividades de negócio de alto risco ou complexidade;
  • Consideração de qualquer marco externo (visível) do projeto, como versões “beta”, demonstrações, pontos de verificação e “todos os produtos” que satisfaçam tais marcos.


Atribuir Atividades de Negócio aos Programadores-Líderes
Responsabilidade: Equipe de Planejamento
Obrigatória

A equipe de planejamento deve atribuir programadores-líderes como proprietários de atividades de negócio. A atribuição é baseada em:

  • Seqüência de desenvolvimento;
  • Dependências entre as funcionalidades em termos de classes envolvidas;
  • Distribuição da carga de trabalho entre os proprietários das classes (lembrar que os programadores-líderes também são proprietários de classes);
  • Complexidade das funcionalidades a serem implementadas.


Atribuir Classes aos Desenvolvedores
Responsabilidade: Equipe de Planejamento
Obrigatória

A equipe de planejamento deve atribuir desenvolvedores como proprietários de classes. Os desenvolvedores são proprietários de várias classes. A atribuição das classes aos desenvolvedores é baseada em:

  • Distribuição da carga de trabalho entre os desenvolvedores;
  • Complexidade das classes;
  • Uso das classes (ex. alta utilização);
  • Seqüência de desenvolvimento.


Verificação


Auto-Avaliação
Responsabilidade: Equipe de Planejamento
Obrigatória

Como o planejamento é uma atividade de equipe, realiza-se uma auto-avaliação pela participação ativa dos programadores-líderes, gerente de desenvolvimento e gerente de projeto.


Critérios de Saída

O resultado do processo é o plano de desenvolvimento, consistindo em:

  • Atividades de negócio com datas de término (mês e ano);
  • Programadores-líderes atribuídos a atividades de negócio;
  • Áreas com datas de término (mês e ano), derivadas da data do último término de suas respectivas atividades de negócio;
  • Lista das classes e seus respectivos desenvolvedores proprietários (a lista de proprietários de classes).