Métodos Ágeis – Parte 02

Jorge Santos, Leandro Lago Quintiliano, Lílian Barbosa, Paulo Roberto H. da Silva, Wanderley Giraldes Júnior

3.2 -  Família Crystal de Metodologia (Crystal Family of Methodologies)


Inclui grande número de métodos diferentes que são selecionados de acordo com as características do projeto a ser desenvolvido. Hoje em dia, apenas dois dos quatro métodos propostos mantêm o desenvolvimento de novas práticas para cobrir diferentes tipos de projetos.

Os membros da família Crystal são identificados por cores que indicam a intensidade do método. Neste caso, quanto mais escura a cor, maior é a complexidade do projeto.

Existem algumas características comuns à família Crystal, tais como o desenvolvimento incremental com ciclos de no máximo quatro meses, ênfase maior na comunicação e cooperação das pessoas, não limitação de quaisquer práticas de desenvolvimento, ferramentas ou produtos de trabalho e incorporação de objetivos para reduzir produtos de trabalho intermediários e desenvolvê-los como projetos evoluídos.

 

 net-26-06-2008pic01.JPG

 

O ciclo de vida desta família de metodologia é baseado nas seguintes práticas:

·                     Staging: Planejamento do próximo incremento do sistema. A equipe seleciona os

requisitos que serão implementados na iteração e o prazo para sua entrega;

·                     Edição e revisão: Construção, demonstração e revisão dos objetivos do incremento;

·                     Monitoramento: O processo é monitorado com relação ao progresso e estabilidade da equipe. É medido em marcos e em estágios de estabilidade;

·                     Paralelismo e fluxo: Em Crystal Orange as diferentes equipes podem operar com máximo paralelismo. Isto é permitido através do monitoramento da estabilidade e da sincronização entre as equipes;

·                     Inspeções de usuários: são sugeridas duas a três inspeções feitas por usuários a cada incremento;

·                     Workshops refletivos: são reuniões que ocorrem antes e depois de cada iteração com objetivo de analisar o progresso do projeto.

·                     Local matters: são os procedimentos a serem aplicados, que variam de acordo com o tipo de projeto.

·                     Work Products (Produtos de Trabalho): seqüência de lançamento, modelos de objetos comuns, manual do usuário, casos de teste e migração de código. Especificamente para o Clear: casos de uso e descrição de funcionalidade; Especificamente para o Orange: documento de requisitos.

·                     Standards (padrões): padrões de notação, convenções de produto, formatação e qualidade usadas no projeto.

·                     Tools: ferramentas mínimas utilizadas. Para Crystal Clear: compiladores, gerenciadores de versão e configuração, ferramentas de versão, programação, teste, comunicação, monitoramento de projeto, desenho e medição de performance.

 

 

3.3 - Desenvolvimento Voltado a Funcionalidades (FDD - Feature Driven Development)

 


Trata-se de um método ágil de abordagem adaptativa.

Não atende, porém a todo o processo de desenvolvimento, sendo elaborado para ser trabalhado junto com outros métodos de desenvolvimento. É um método iterativo que enfatiza tópicos de qualidade e inclui entregas freqüentes de artefatos para monitorar o progresso do projeto.

O desenvolvimento é voltado à funcionalidade. É definido como sendo mais apropriado a projetos iniciais, à atualização de código existente, à criação de uma segunda versão, ou ainda à substituição de um sistema inteiro em partes. Diferentemente de outros métodos ágeis, o FDD possui características específicas para desenvolver sistemas críticos.

 

 

net-26-06-2008pic02.JPG 

 

- Desenvolver um modelo geral (Develop an overall model): Definição do domínio do sistema, contexto e requisitos para a construção, assim como uma documentação em forma de casos de uso ou uma especificação das funcionalidades. O domínio do projeto é dividido em domínios menores e mais específicos, que serão modelados por um grupo de desenvolvedores.

- Construir uma lista de funcionalidades (Build a features list): Construção de uma lista de funcionalidades. Cada conjunto de funcionalidades é uma função para uma área de domínio estudado. A lista é revisada pelos usuários e patrocinadores do sistema para sua aprovação.

- Planejar por funcionalidade (Plan By Feature): Criação de um plano de alto nível, no qual as funções são seqüenciadas de acordo com a prioridade e a dependência de cada uma, e então designadas ao líder de programadores.

- Projetar por funcionalidade (Design by feature) e Construir por funcionalidade (Build by feature): Consistem a parte iterativa do método. Um pequeno grupo de funcionalidade é selecionado, assim como as funções necessárias para o desenvolvimento desse grupo. Esses processos podem levar alguns dias, no máximo 2 semanas para serem realizados.