TEMA 04 Flashcards
O que é o Crystal?
Crystal é uma metodologia ágil que se concentra em
diferentes aspectos do desenvolvimento de software, dependendo das características do projeto e da
equipe. Ela oferece um conjunto de diretrizes flexíveis e adaptáveis que podem ser ajustadas para
diferentes contextos e objetivos.
Quando a metodologia Crystal foi criada? E por quê?
Crystal é uma família de metodologias com características similares. Foi criada, no fim dos anos
1990, por Alistair Cockburn, que antes estudou diversas metodologias de desenvolvimento de
software, mas identificou que abordagens como o XP, possuíam muitas regras e não eram compatíveis com
diferentes projetos e equipes.
Com isso, criou a metodologia Crystal, que salienta a simplicidade, o
trabalho em equipe, a comunicação entre equipe e cliente e a capacidade de adaptação.
A Crystal Methodology entende que cada projeto pode exigir um conjunto de políticas, práticas e
processos ligeiramente adaptados para atender às características exclusivas do projeto.
A família
de metodologias usa cores diferentes com base no “peso” para determinar qual metodologia usar.
O uso da palavra cristal vem da pedra preciosa, onde as várias “faces” representam os princípios e
valores fundamentais subjacentes.
As faces são uma representação de técnicas, ferramentas,
padrões e funções listadas.
Qual é o objetivo da Crystal?
Seu objetivo é disponibilizar uma coleção de princípios flexíveis e ajustáveis para o
desenvolvimento de software que possam ser empregados em variados contextos e projetos. A
metodologia fundamenta-se em sete pilares.
Quais são os sete pilares da Crystal?
Os sete pilares, também conhecidos como sete propriedades ou sete aspectos fundamentais da
metodologia Crystal, são:
- comunicação – muito valorizada na metodologia Crystal, a comunicação direta e objetiva entre
a equipe do projeto e o cliente ajuda a alinhar as expectativas e a reduzir a chance de erros e
mal-entendidos; - refinamento constante – a melhoria contínua do processo de desenvolvimento é primordial;
para isso, a metodologia Crystal propõe revisar e adaptar frequentemente as práticas
empregadas pela equipe e garantir que as metodologias utilizadas estejam de acordo com as
necessidades de cada projeto; - entrega frequente – realizar entregas frequentes e incrementais garante feedbacks rápidos,
identificação e correção de problemas rapidamente; - ambiente seguro – para garantir um ambiente de trabalho seguro e acolhedor, a equipe é
encorajada a expressar suas ideias e opiniões sem constrangimentos; - foco nas pessoas – as pessoas são o elemento central do processo de desenvolvimento de
software; a cooperação, a sinergia e o trabalho colaborativo são reconhecidos; - acesso fácil – as informações e ferramentas necessárias para o desenvolvimento do software
devem ser acessadas com facilidade pela equipe do projeto; - habilidade técnica – a capacitação contínua e a troca de experiências e conhecimentos
auxiliam na melhoria das habilidades técnicas dos membros da equipe do projeto.
Esses pilares ajudam a guiar a equipe de desenvolvimento de software na adoção de práticas
ágeis que possam melhorar a eficiência, a qualidade e a colaboração no desenvolvimento de
software.
Como é a família Crystal?
Cada um dos métodos da família Crystal é identificado por uma cor, de acordo com o número de
pessoas envolvidas.
Crystal Clear: indicada normalmente para equipes de até seis pessoas, mas, excepcionalmente,
pode chegar até 12 integrantes.
Crystal Yellow: recomendada para equipes com dez a vinte participantes.
Crystal Orange: indicada para equipes de vinte a cinquenta pessoas.
Crystal Red: ideal para equipes de cinquenta a cem membros.
Das metodologias da família Crystal, as mais utilizadas são a Clear e a Crystal Orange
O que é a Crystal Clear?
Crystal Clear é uma metodologia leve, projetada para projetos pequenos e equipes colocalizadas. É
altamente adaptável e enfatiza a comunicação cara a cara, com um foco na entrega de software
que seja útil e satisfatório para os usuários finais.
Crystal Clear se concentra em pessoas, não em
processos ou ferramentas, e promove a colaboração, a simplicidade e a qualidade técnica como
valores fundamentais.
As atividades executadas nos incrementos devem durar de um a três meses e a Crystal Clear
não possui estrutura para comportar mais de um time simultaneamente.
Crystal Clear ajuda a equipe a se organizar em torno de um conjunto de objetivos compartilhados,
fornecendo orientação para decidir quais práticas adotar e quais ferramentas usar para atingir
estes objetivos. Isso ajuda a equipe a manter a disciplina sem impor processos pesados e
burocráticos.
O que é a Crystal Orange?
A metodologia Crystal Orange é indicada para projetos de médio porte e agrega mais de um time
multifuncional simultaneamente.
Crystal Orange é uma metodologia ágil adaptativa que enfatiza a comunicação e a colaboração
como elementos fundamentais. Ele é projetado para equipes de desenvolvimento de software com
até 50 membros e é altamente adaptável e flexível.
O Crystal Orange incentiva o uso de
prototipagem rápida, testes frequentes e feedback contínuo como parte do processo de
desenvolvimento, e enfatiza a importância da qualidade técnica e do trabalho em equipe.
Qual é o ciclo de vida da família Crystal?
Encenação (staging): planejamento do próximo incremento do sistema; são definidos os
requisitos que serão implementados na iteração e seu prazo de entrega.
Edição e revisão: construção, demonstração e revisão dos objetivos do incremento.
Monitoramento: o processo de desenvolvimento é monitorado com relação ao avanço e à
segurança da equipe e é medido em marcos (milestones) e em estágios de estabilidade.
Paralelismo e fluxo: no Crystal Orange, o monitoramento da estabilidade e colaboração entre as
equipes possibilita que as diversas equipes trabalhem paralelamente sem que sejam impostos
limites.
Inspeções de usuários: geralmente são realizadas de duas a três inspeções por usuários a
cada incremento.
Workshops refletivos: são reuniões que ocorrem antes e depois de cada interação, com o
objetivo de analisar o progresso do projeto.
Assuntos locais (local matters): são os procedimentos a serem aplicados, que variam de
acordo com o tipo de projeto; por exemplo, templates de código, formatações e padrões para
interfaces.
Produtos de trabalho (work products): ordem planejada para a disponibilização das
funcionalidades; nas duas metodologias são disponibilizados manual do usuário, sequência de
releases, casos de testes, migração de código e modelos de objetos; o Crystal Orange
apresenta alguns artefatos que não existem no Crystal Clear, pois permite a operação em
múltiplas equipes.
Padrões (standards): padrões de notação, convenções de produto, formatação e qualidade
usados no projeto.
Ferramentas (tools): ferramentas mínimas utilizadas; para Crystal Clear, são ferramentas de
apoio menores, tais como compiladores, gerenciadores de versão e configuração e printing
whiteboards (quadros brancos que permitem a impressão); o Crystal Orange utiliza ferramentas
mais elaboradas, tais como ferramentas para testes, comunicação, programação,
monitoramento do projeto, desenho e medição de desempenho.
Quais são as vantagens da metodologia Crystal?
Adaptação à equipe: as equipes conseguem adaptar a metodologia as suas habilidades e
experiências específicas.
Flexibilidade: a metodologia é altamente adaptável às mudanças no projeto e nos requisitos do
cliente.
Foco em pessoas: enfatiza a importância das pessoas e da colaboração para o sucesso do
projeto.
Simplificação do processo: os processos e a documentação da metodologia são mais leves, o
que pode ser útil para equipes menores ou menos experientes.
Quais são as desvantagens da metodologia Crystal?
Falta de estrutura: o planejamento e a execução de projetos complexos podem ser
prejudicados pela flexibilidade da metodologia.
Menos documentação: o compartilhamento de conhecimento na equipe ou com o cliente pode
ficar prejudicado pela documentação menos criteriosa, já que o foco é o desenvolvimento do
software.
Necessidade de expertise: os membros da equipe devem possuir conhecimento técnico e
experiência em desenvolvimento de software, por isso equipes com menos experiência podem
ter dificuldades com esse método.
Pouco controle de qualidade: a qualidade do software pode ser comprometida devido à pouca
rigorosidade da metodologia quanto aos testes e verificações.