2. Desenvolvimento Ágil
❖ Chegamos em tempos onde a interação passou a ser de
evidente importância, a colaboração com o cliente, onde este
quase faz parte da equipe, deixar de lado processos
pesados e cansativos, ser sempre adepto a mudanças, entre
outras características que vieram com a abordagem da
metodologia ágil.
2
3. Desenvolvimento Ágil
❖ Desta forma, surgiram diversos métodos para se construir
software seguindo essa nova linha de raciocínio, tais como:
➢ Scrum
➢ Xp
➢ Tdd
➢ Crystal
➢ e muitos outros...
3
5. Contexto Histórico
❖ Criada em 1990 por Alistair Cockburn e Jim Highsmith a fim de conseguir
uma abordagem de desenvolvimento de software que premia a
“manobrabilidade” durante o que Cockburn caracteriza como “um jogo
cooperativo de invenções e comunicação de recursos limitados, com o
principal objetivo de entregar softwares úteis funcionando e com o objetivo
secundário de preparar-se para o jogo seguinte”.
5
6. Contexto Histórico
❖ A criação desse método se deu pelo resultado da pesquisa feita por
Couckburn que mostrava que o resultado dos projetos feitos por equipes
que não seguiam métodos formais era mais bem sucedido do que as que
seguiam.
6
7. Porque Crystal?
❖ Crystal é uma família de metodologias de desenvolvimento
de software e, como os cristais, possuem diferentes cores e
rigidez, referindo-se ao tamanho e ao nível crítico do projeto.
7
8. A metodologia Crystal
❖ Crystal é uma série de metodologias ágeis que são bastante flexíveis que
tem o foco nos seguintes pilares :
– Pessoas
– Interação
– Comunidade
– Habilidade
– Talentos
– Comunicação
8
9. A metodologia Crystal
❖ Utiliza dois parâmetros para adequar-se ao projeto de software, sendo a
primeira métrica o número de pessoas envolvidas e a segunda métrica o
nível crítico.
❖ É preciso analisar três fatores para o entendimento de como proceder na
adaptação e classificação por cor:
– a coordenação e comunicação(representada pelo número de
pessoas);
– criticidade do sistema;
– prioridade do projeto.
9
10. Conforme o
Tamanho
❖ Crystal Clear: 2-8/12
❖ Yellow: 10-20
❖ Orange: 20-75
❖ Red: 75-100
Gerenciamento e de
comunicação ajustados de
acordo com o tamanho da
equipe.
10
11. Conforme o
Nível Crítico
Além das cores, o Crystal
utiliza-se de algumas
letras para representar
potenciais perdas
causados por uma falha no
sistema de
desenvolvimento de
software.
11
12. Nível Crítico
❖ C de Confort (Conforto)
– Ex.: o serviço de um aparelho celular;
❖ D de Discretionary money
– Ex.: o sistema de um caixa de um supermercado;
❖ E de Essencial money
– Ex.: o sistema de reserva de uma companhia aérea;
❖ L de Life (vida)
– Ex.: um software de piloto automático;
12
14. Crystal
❖ Esta família de metodologias tem um código genético em comum, que
podem ser adaptados de acordo com o projeto ou o número de
integrantes da equipe.
14
15. Código Genético
❖ O código genético da Família Crystal baseia-se em:
– Jogo Econômico-Cooperativo;
– Prioridades;
– Propriedades;
– Princípios;
– Estratégias e Técnicas.
15
16. Jogo Cooperativo
❖ Desenvolvimento de software é uma “série” de jogos;
❖ Possui dois objetivos, entrega de software funcional e preparação para a
próxima etapa do jogo;
❖ O jogo nunca se repete;
❖ O modelo de jogo econômico-cooperativo leva as pessoas a pensarem
sobre seu trabalho em um projeto de uma forma muito específica.
16
17. Prioridades
❖ Segurança no resultado do projeto(entrega do software);
❖ Eficiência no desenvolvimento;
❖ Habitabilidade das convenções(o time precisa aceitar o processo).
17
18. Propriedades
❖ Entrega frequente:
– Os desenvolvedores mantém o foco;
– A equipe se mantém motivada através de realizações;
– O cliente recebe feedback constante.
❖ Comunicação Cara a Cara (Comunicação Osmótica):
– Surge naturalmente entre a equipe;
– A maneira mais barata e rápida de trocar informações.
18
19. Propriedades
❖ Melhoria Reflexiva:
– Equipe reúne para discutir o que pode funcionar melhor;
– Realizar tais mudanças para a próxima iteração;
❖ Foco:
– Saber em que trabalhar (Patrocinador);
– Tranquilidade para trabalhar;
19
20. Propriedades
❖ Fácil acesso a especialistas:
– Permite realizar testes e entregas freqüentes;
– Facilita a tomada de decisões.
❖ Segurança pessoal:
– Dizer livremente o que está incomodando;
– Descobrir e trabalhar fraquezas;
20
21. Princípios
❖ Mais feedback reduz a necessidade de entregas intermediárias:
– Considera-se feedback entrega de software funcionando.
❖ Excesso de metodologia é custo:
– Evitar burocracia desnecessária;
– Redução de custo com o tempo, ferramentas, etc.
❖ Diferentes projetos precisam de metodologias distintas:
– Dois fatores influenciam na escolha: Número de pessoas na equipe e
criticidade no projeto;
21
22. Princípios
❖ Desenvolvimento simultâneo e em série reduz custos e promove aumento
de velocidade e flexibilidade;
❖ A eficiência é dispensável em atividades que não possuem gargalo:
– Não adianta otimizar o que não há gargalo.
22
23. Estratégias e Técnicas
❖ Exploratório 360°
– Analisar o projeto em todas as direções;
❖ Vença cedo
– Trabalha com a entrega de algo de valor logo no início do projeto
para ganhar auto-confiança;
❖ Radiadores de informação
– Deixar as informações do projeto em um lugar visível, possibilitando a
equipe sanar todas as dúvidas.
23
24. Estratégias e Técnicas
❖ Oficina de Reflexão (Reflection Workshop)
❖ Planejamento Relâmpago (Blitz Planning)
– semelhante ao “planning game” do XP, porém deve-se fazer uma lista
de dependência entre as tarefas.
❖ Reuniões Diárias (Daily Stand-ups Meetings)
❖ Design Ágil de Interfaces (Agile Interaction Design)
24
25. Estratégias e Técnicas
❖ Programação lado-a-lado (Side-by-Side Programming)
❖ Burn Charts
– Maneira de dar visibilidade ao andamento do projeto, através de
relatórios.
25
27. Características
❖ Os incrementos do projeto devem ter no máximo 4 meses,
preferencialmente de 1 a 3 meses.
❖ Você encontrará sete princípios-chave em cada um, independente de qual
implementação Crystal for utilizada:
27
29. Ferramentas
29
Ferramentas que podem ser utilizadas:
❖ Agileplatform
– Solução unificada que suporta todo o processo de construção para a
Web com recurso a ‘Métodos Ágeis’.
❖ VisionProject
– Permite a gestão de projetos, gestão dos tickets, controle de versões,
visualização de durações e custos, e etc.
❖ Pivotaltracker
– Mesmas funções que o VisionProject, porém mais simples quanto a
sua usabilidade.
30. Ferramentas
30
❖ TargetProcess
– Mesmas funções que o VisionProject e Pivotaltracker, porém mais
completo que os mesmos com presença de recursos de plugins,
automatização de inputs e output, entre outros.
❖ Axosoft
– Divide tarefas, proporciona uma visualização do fluxo de trabalho
mais dinâmica, notifica atividades importantes e etc.
❖ VersionOne
– Gerenciador de ciclo de vida ágil e soluções de integração .
31. Ciclo de Vida
São 10 fases:
❖ Staging
– Planejamento do próximo incremento;
– Requisitos a serem implementados e o prazo são selecionados;
❖ 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;
31
32. Ciclo de Vida
❖ 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 interação, com
objetivo de analisar o progresso do projeto;
32
33. Ciclo de Vida
❖ Local matters
– São os procedimentos a serem aplicados, que variam de acordo com
o tipo de projeto;
❖ Produtos de Trabalho
– Sequê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, são casos de uso e descrição de funcionalidade e,
especificamente para o Orange, são documentos de requisitos;
❖ Padrões
– Padrões de notação, convenções de produto, formatação e qualidade
usadas no projeto;
33
34. Ciclo de Vida
❖ Ferramentas
– Ferramentas mínimas utilizadas. Para Crystal Clear, são
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 desempenho.
34
37. Núcleo da equipe
A equipe possui os seguintes papéis:
❖ Executive Sponsor (patrocinador);
❖ Lead Designer: deve ser um especialista, com conhecimento de todo o
projeto, dentre suas atribuições ele deve:
– Conversar com o patrocinador;
– Treinar membros da equipe menos experientes.
❖ Ambassador User: é um desenvolvedor especialista que a equipe pode
consultar quando precisar.
37
38. Núcleo da equipe
❖ A Crystal Clear específica somente os três papéis no slide anterior, os
outros papéis são de acordo com a necessidade do projeto e podem ser:
– Designer-Programmer;
– Business Expert;
– Coordinator (deve ser alguém com boa comunicação, geralmente o
Lead Designer);
– Tester;
– Writer.
38
39. O Processo
A Crystal Clear utiliza processos cíclicos de diferentes tamanhos:
desenvolvimento, iteração, prazo de entrega e o projeto como um todo.
O ciclo do projeto tem três partes:
1. Mapeamento de atividades
Esta atividade leva de alguns dias a algumas semanas e é constituída por
quatro passos:
a. Construir o núcleo da equipe;
b. Realizar a estratégia Exploratório 360º;
c. Definir como a metodologia será aplicada;
d. Construir o plano inicial do projeto.
39
40. O Processo
2. Uma série de dois ou mais ciclos de entrega
O ciclo de entrega possui três ou quatro partes.
a. Fazer uma reavaliação do plano de entregas;
b. Uma ou mais iterações com código testado e integrado;
c. Entrega real para usuários;
d. Realizar um ritual de conclusão, incluindo reflexão sobre o processo e
sobre o produto que está sendo criado.
40
41. O Processo
3. Conclusão do ritual: reflexão sobre a entrega
Neste ritual deve-se, além de realizar uma reflexão sobre o projeto, o
processo e deixar claro o que funcionou bem e o que não funcionou. A
equipe deve ter um momento feliz no final do projeto, uma espécie de
comemoração.
41
42. Exemplo Prático
❖ Cenário:
– Empresas de pequeno porte e startups;
– Equipe experiente ou parcialmente experiente;
– Construção de softwares em geral ( apps, sistemas web, entre
outros).
42
44. Conclusão
❖ O Crystal é uma família de modelos ágeis de processo que podem ser
adotados para as características específicas de um projeto.
❖ Como outras abordagens ágeis, o Crystal adota uma estratégia iterativa,
mas se ajusta processo de modo a definir projetos de diferentes tamanhos
e complexidades.
44
45. Conclusão
❖ Pontos Positivos:
– Entregas freqüentes das etapas do projeto, reduzindo o retrabalho;
– Reduz possíveis falhas de entrega, pois o usuário está diretamente
envolvido no projeto;
– Possibilita ser adaptada de acordo com o projeto;
❖ Pontos Negativos:
– A metodologia não foi desenvolvida para trabalhar com projetos
longos.
– Até o presente momento não foi bem difundida no Brasil.
45