Família de Metodologias Crystal focada em Comunicação e Pessoas
1. Dalva Castro - Gabriel Monteiro - Gleicy Sterfanny - Jefferson Rodrigues - João Antonio - Madson Gustavo -
Patrícia de Oliveira - Paulo Henrique - Rogério Gonçalves
2. O conjunto de metodologia Crystal é
precursora no modo ágil de desenvolver
software, criadas em 2000 por Alistair
Cockburn. Cockburn foi contratado pela
IBM em 1991 para estudar metodologias e
criar uma metodologia para projetos que
usavam OO. Evitou falar apenas sobre sua
experiência, como a maioria dos
metodologistas fazem, entrevistou vários
metodologistas, inclusive Kent Beck
durante o C3, quando foi criado o XP. A
metodologia é voltada para a gestão de
pessoas, e se difere das outras
metodologias por ser uma família de
metodologias e não somente uma.
3. Por que uma “Família de Metodologias”?
Porque cada projeto tem suas particularidades.
Cada projeto precisaria de sua própria
metodologia. Não é um kit como o IRUP, do
qual você pode pegar pedaços e montar uma
metodologia Jogo de Celular x Controlador de
vôo: vocês acham que pode ser a mesma
metodologia?
O nome escolhido foi Crystal pois remete a
cristais, que existem com várias durezas na
natureza, do quartzo ao diamante.
4. Pessoas são Espontâneas, não lineares.
Boas em Comunicação, olhar ao
redor, olhar o todo, copiar e modificar.
Ruins em disciplina, consistência, mudar
seus hábitos (resistem muito), seguir
instruções. Não são componentes que
podem ser plugados ou desplugados
facilmente. Não são recursos, são
pessoas. Por isso, Crystal é focado em
comunicação e comunidade.
5. Coletaram exemplos de projetos de sucesso que utilizaram metodologias ágeis baseadas
em comunicação e comunidade para criar uma família de metodologias que possa ser
utilizada como ponto de partida em um processo de desenvolvimento de software.
Os membros da família dividem entre si:
Valores e princípios
Mudanças "on-the-fly“
Alistair considera pouco traumática a mudança de uma metodologia para outra: 4 pessoas
trabalhando em um projeto pequeno que cresce ao ponto de necessitar de 20 pessoas não
devem perguntar "como preservamos nossas convenções primárias?", e sim "qual é um
bom caminho para 20 pessoas trabalharem juntas neste projeto?"
Entre os valores, destacam-se:
Foco em comunicação e pessoas: ferramentas, produtos e processos estão lá apenas
para auxiliar as pessoas
Tolerância: reconhece a variedade da natureza humana.
6. A família Crystal possui dois valores que são seguidos por todas
as suas metodologias, são eles:
• Foco na comunicação entre as pessoas.(Mostrando que as ferramentas e processos,
só estão ali para dar suporte aos humanos)
• Alta tolerância. (Reconhecendo as diferentes culturas das pessoas)
A principal prioridade do projeto é a
Sobrevivência (e entrega do software).
As outras duas são conflitantes: um
processo eficiente pode ser intolerável
pelas pessoas (o time precisa aceitar o
processo).
7. As duas regras mais comuns para a família Crystal são:
• Os incrementos do projeto devem ter no máximo 4 meses, preferencialmente
de 1 a 3 meses.
• A equipe deve ter workshop para reflexão no pré e pós-incremento.
A diferença entre os métodos Crystal é:
•Quantidade de integrantes no projeto
•Carga de comunicação
•Criticidade do projeto
•Prioridade do projeto
8. As duas técnicas base:
técnicas de ajuste: utilizar workshops e entrevistas com os envolvidos
para converter uma metodologia base em algo que possa servir de ponto
de partida para o projeto
a técnica utilizada para administrar o "workshop de reflexão"
Você deve ficar à vontade para trocar estas técnicas por outras se você enxerga
uma maneira mais fácil de alcançar o mesmo objetivo, podendo “pegar
emprestado” práticas de outras metodologias/processos como XP ou Scrum.
As diferenças báscias entre os membros da família Crystal são essencialmente
estruturais.
9. Toda metodologia é um conjunto de
convenções aceitas por um grupo.
Tuning – Ajuste: A metodologia tem que
evoluir; a organização tem que aprender, tem
que criar a própria metodologia. Dois passos:
•Estude sua metodologia básica: use workshops
de reflexão sobre a metodologia.
•Não use a mesma metodologia para sempre:
reveja constantemente os seus problemas e atue
neles. Uma das palestras do Cockburn, de 2007,
chama "Crystal - como fazer metodologias se
encaixarem no seu projeto".
10. 1. Preparação: Passa por etapas como, seleção de requisitos a serem implantados,
planejamento para o próximo requisito, e o agendamento para sua entrega.
2. Características aplicadas: acepção de regras e práticas para adoção de padrões .
3. Padrões: definições de padrões, desde simples notações até contratos de um produto.
4. Regras: Regras bem definidas para execução de um incremento.
5. Matéria local: Considera alguns artificios a serem empregados na iteração sendo que
os mesmos se alteram de acordo com a metodologia utilizada.
6. Ferramentas: descrição das ferramentas que a equipe fará uso durante a iteração.
7. Produtos do trabalho: essa parte do processo, cuida de alguns produtos decorrentes do
desenvolvimento, tais como: manuais, casos de teste entre outros.
8. Atividades: Cuida das atividades básicas dos desenvolvedores.
11. 9. Paralelismo e fluxo: verifica e propões as operações em paralelismo, monitorando
estabilidade entre equipes – caso não seja equipe única
10. Monitoramento de progresso: mede a estabilidade da equipe, através de marcos ou
estágios de estabilidade.
11. Construção, demonstração, revisão: construção, demonstração, revisão em todos os
aspectos referentes ao incremento
12. Utilização por parte do usuário: Sugere a iteração com o usuário. Fase que é realizada
frequentemente.
12. “Projetos diferentes têm necessidades diferentes. Terrivelmente óbvio, exceto
(talvez) para os metodologistas...”
“... não é a minha intenção que você pegue estas descrições e as use sem alterá-
las, mas sim que você as pegue, critique-as, adicione e subtraia detalhes até que ela
atenda às suas necessidades. Modificação de metodologia é a essência do Crystal...”
“... e no fim das contas, é melhor entregar um software funcionando aceitavelmente
(agregando valor) do que não entregar um software perfeito.”