O documento descreve a metodologia Crystal para desenvolvimento de software. A metodologia define três tipos de projetos (tamanho, prioridade e criticidade) e fornece orientações sobre como adaptar a metodologia ao projeto. A família Crystal inclui metodologias como Crystal Clear para projetos não críticos e Crystal Orange para projetos críticos, mas não de vida ou morte.
3. CRYSTAL
• Alistair Cockburn - 1997
• Uma metodologia não pode ser adequada para
todos os projetos
• A metodologia precisa ser adaptada ao projeto
• Orienta sobre o que é necessário adaptar
• Orienta sobre quais tipos de práticas utilizar
4. CRYSTAL
• Três tipos de projeto:
• Tamanho:
• Medido pelo número máximo de
desenvolvedores.
• O tamanho do projeto NÃO É medido
pelo número de linhas de código ou
pontos de função.
5. CRYSTAL
• Três tipos de projeto:
• Prioridade:
• Medida pela pressão do tempo sobre o
projeto.
• Projetos com alta pressão requerem
metodologias otimizadas para
produtividade.
• Outros projetos otimizam para
rastreabilidade em detrimento da
produtividade.
6. CRYSTAL
• Três tipos de projeto:
• Criticalidade:
• Medida pelas perdas que um mau
funcionamento causaria.
• Quatro níveis referentes à qualidade e
complexidade dos projetos:
• Vida: problemas de mau funcionamento
que podem causar dano FÍSICO a uma
pessoa
7. CRYSTAL
• Três tipos de projeto:
• Criticalidade:
• Quatro níveis:
• Dinheiro Essencial: problemas de
maus funcionamento que podem
causar perda de dinheiro essencial
para a sobrevivência da organização
8. CRYSTAL
• Três tipos de projeto:
• Criticalidade:
• Quatro níveis:
• Dinheiro Excedente: problemas de
maus funcionamento que podem
causar perda de dinheiro NÃO
essencial para a sobrevivência da
organização
9. CRYSTAL
• Três tipos de projeto:
• Criticalidade:
• Quatro níveis:
• Conforto: problemas de maus
funcionamento que NÃO causam
perda monetária mensurável, mas não
proporcionam conforto e prazer aos
usuários.
10. CRYSTAL
• Define princípios básicos para metodologias
de software
• Descreve como adaptar a metodologia ao
projeto
• Três metodologias definidas:
• Crystal Clear (Transparente): projetos não
críticos (nível do risco: desconforto),
dinheiro excedente, equipes de 6 a 8
pessoas (1992)
11. CRYSTAL
• Três metodologias definidas:
• Crystal Yellow: Equipe de 20 pessoas
direcionado a projetos de perdas
financeiras.
• Crystal Orange: projetos críticos, mas não
para a vida, equipes de até 40 pessoas
(grandes perdas financeiras)
12. CRYSTAL
• Crystal Red: Equipe de 100 de pessoas para
projetos com risco de morte.
• Quanto mais escura a cor, mais pesada seria a
metodologia.
• Não cobrem a gama completa de tipos de
projetos.
• Os métodos ficam mais formais conforme o
tamanho da equipe, e o risco do projeto,
aumentam
13. CRYSTAL
• Design de metodologias para a família Crystal:
• Métodos básicos para o processo:
• Empregar metodologias mais
abrangentes para equipes maiores.
• Empregar metodologias mais pesadas
para projetos mais críticos.
14. CRYSTAL
• Design de metodologias para a família Crystal:
• Métodos básicos para o processo:
• Dar preferência a metodologias mais
leves – peso é dispendioso
• Dar preferencia a comunicação
interativa, cara a cara.
15. CRYSTAL
• Design de metodologias para a família Crystal:
• Métodos básicos para o processo:
• O comportamento das pessoas varia
dentro de uma equipe e ao longo do
tempo.
• Processos de alta disciplina são mais
difíceis de adotar e tem mais
probabilidade de serem abandonados.
16. CRYSTAL
• Design de metodologias para a família Crystal:
• Métodos básicos para o processo:
• As pessoas desejam ser boas cidadãs.
• As pessoas podem tomar iniciativas.
• As pessoas podem se comunicar
informalmente.
• Usufruir destas características.
17. CRYSTAL
• Sete propriedades para complementar os
princípios
• Fornecem orientação adicional
• As três primeiras são as mais importantes
1. Liberações Frequentes: Liberar código
testado e funcional para usuários reais
com a maior frequência possível, no
mínimo em intervalos de poucos meses.
18. CRYSTAL
1. Liberações Frequentes:
1. O sistema é liberado para o grupo
completo de usuários.
2. O sistema é liberado para um grupo
limitado de usuários que somente testará o
sistema.
3. Visualização pelo usuário, ou
demonstração do sistema
4. Utilização do sistema por um curto período
de tempo em um ambiente controlado.
19. CRYSTAL
2. Aprimoramento Reflexivo:
• Antes, durante e após o projeto, deve-se
parar para pensar no processo e no que
pode ser aprimorado.
• No meio de um projeto, melhorias
podem ser implementadas no processo.
20. CRYSTAL
3. Comunicação estreita:
• Encorajar a comunicação estreita entre
os membros da equipe.
• Pode ser informal.
• Membros da equipe devem estar na
mesma sala.
• Rapidez na obtenção de respostas à
perguntas.
21. CRYSTAL
4. Segurança Pessoal:
• Encorajar os membros da equipe a se
manifestarem sem medo de represálias.
• Manifestar insatisfações com práticas
• Reconhecer erros
• Incapacidade de concluir tarefas
• Segurança psicológica
• Capacidade de fornecer feedback honesto
22. CRYSTAL
5. Foco:
• Trata da questão de minimizar
interrupções e permitir concentrar-se na
tarefa em mãos.
• Conhecimento das prioridades da tarefa
• Concentração na prioridade mais alta
23. CRYSTAL
5. Foco:
• Cone do silêncio:
• Usado quando um membro da equipe é
constantemente interrompido por ser o mais
experiente ou por obter um nível de
conhecimento maior que os outros
• É um horário definido em que esse membro
não poderá ser interrompido por ninguém.
24. CRYSTAL
6. Fácil Acesso a usuários experientes:
• Obter rapidamente feedback de usuários
experientes a respeito do produto,
design, requisitos e mudanças.
• Há um espaço de alguns dias entre a
pergunta e a resposta.
25. CRYSTAL
7. Bom ambiente técnico:
• Estabelecer um ambiente que inclua
testes automatizados, gestão de
configuração e integração frequente.
26. CRYSTAL
• Semelhanças entre as metodologias CRYSTAL
e XP:
• O progresso é monitorado através das
liberações de software ou por decisões
importantes
• Envolvimento direto do usuário
• Ajustes de metodologia são organizados no
inicio e meio de cada liberação
27. CRYSTAL
• Semelhanças entre as metodologias CRYSTAL
e XP:
• Padrões de políticas são obrigatórios
• Padrões locais de equipe para codificação,
modelos, interface, etc.
28. CRYSTAL
Característica Crystal Clear Crystal Orange
Equipe Uma equipe
Uma mesa
Equipes diferentes para:
• Planejamento do sistema
• Monitoramento do projeto
• Arquitetura
• Tecnologia
• Funções
• Infraestrutura
• Teste externo
29. CRYSTAL
Característica Crystal Clear Crystal Orange
Funções
Pessoal
separado
Quatro pessoas exercem
funções de:
• Responsável
• Designer sênior
• Programador
• Usuário
Outras funções podem
ser exercidas pelo
mesmo pessoal
14 funções
desempenhadas por
diferentes pessoas,
incluindo:
• Gerente de projeto
• Especialista de
negócios
• Arquiteto
• Mentor de design
• Testador
• Designer de interface
de usuário
30. CRYSTAL
Característica Crystal Clear Crystal Orange
Produtos de
Trabalho
9 itens incluindo:
Cronograma
• Situações de
uso
• Esboços de
design
• Situações de
teste
• Manuais de
usuário
13 itens incluindo os princípios
do Crsytal Clear, mais:
• Documentos de requisitos
• Relatórios de status
• Documentos de design de
UI
• Especificações intraequipe
Produtos de trabalho são
desenvolvidos até serem
compreensíveis, precisos e
estáveis para serem revisados
32. CRYSTAL CLEAR
• Equipe:
• designer líder
• dois a sete
programadores
• Radiadores de
Informações:
• quadros e murais à
vista de toda a
equipe
• Acesso fácil a
especialistas de
domínio
• Eliminação de
distrações
33. CRYSTAL CLEAR
• Ciclo de Vida do
Crystal Clear:
• Iteração:
• estimação
• desenvolvimento
• celebração
• poucas semanas
• Entrega:
• várias iterações
• a cada dois meses
são entregues
funcionalidades
uteis ao cliente
• Projeto:
• conjunto de todas
as entregas
34. CRYSTAL CLEAR
• Características
• Centrada em pessoas:
• o foco par ao sucesso de um projeto está
em melhorar o trabalho das pessoas
envolvidas
• Ultraleve:
• Faz o possível para reduzir a burocracia e
a papelada
35. CRYSTAL CLEAR
• Na Medida:
• Design começa com algo menor do que se
pensa que seja preciso
• Aumenta-se o suficiente para suprir as
necessidades
• É mais fácil e mais barato aumentar um
sistema do que cortas coisas desnecessária
que já foram feitas
36. REFERÊNCIAS
1. TSUI, Frank; KARAM, Orlando. Fundamentos
da Engenharia de Software. Tradução e
Revisão Técnica de Edson Tanaka. 2.ª Edição.
Rio de Janeiro: LTC, 2013.
2. WAZLAWICK, Raul Sidnei. Engenharia de
Software: Conceitos e Práticas. 1.ª edição.
Rio de Janeiro: Elsevier, 2013.
37. REFERÊNCIAS
3. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de
Software: Uma Abordagem Profissional. Tradução:
João Eduardo Nóbrega Tortello. Revisão Técnica:
Reginaldo Arakaki, Julio Arakaki, Renato Manzan de
Andrade. 8.ª Edição. Porto Alegre: AMGH, 2016.
4.FILHO, W. P. P. Engenharia de Software:
Fundamentos, Métodos e Padrões. 3.ª Edição.Rio
de Janeiro: LTC, 2015