Baixe o app para aproveitar ainda mais
Prévia do material em texto
Heloísa Furtado Jacobi Ícaro de Oliveira Cristofolini Vagner Santos de Andrade Vinícius Crespi SOFT Professora Rafaela Bosse Schroeder 05/04/2018 Metodologias Crystal Sumário Introdução Família Crystal Diagrama de Metodologia Ciclo de Desenvolvimento Características Jogo Econômico-cooperativo Prioridades e Princípios Propriedades Estratégias e Técnicas Crystal Orientada a Objetos Conclusão Bibliografia Introdução “Crystal” não seria uma metodologia, mas uma família de metodologias. Fazendo alusão a um cristal, que varia em cor e rigidez, a metodologia Crystal específica a ser aplicada em um projeto vai variar conforme seu tamanho, criticidade e número de pessoas envolvidas no mesmo. As “Metodologias Crystal” foram criadas por Alistair Cockburn, que ajudou a escrever o “Manifesto para o desenvolvimento ágil de software”. “Crystal é uma família de metodologias de desenvolvimento “human-powered”, adaptativas, “ultralight” e “stretch-to-fit”.” (COCKBURN, 2008, alistair.cockburn.us) Família Crystal Human-Powered: significa que o foco está em alcançar o sucesso do projeto através de aprimorar o trabalho das pessoas envolvidas. Ou seja, a metodologia gira em torno das pessoas, não dos processos, ferramentas ou arquitetura. Ultralight: significa que, indiferente do tamanho do projeto ou suas prioridades, a metodologia da “Família Crystal” escolhida para o projeto irá reduzir a papelada, despesas e burocracia, para o mínimo que for prático para os parâmetros do projeto. Stretch-to-fit: significa que você começa com algo menor do que você crê que precisa, e aumenta apenas o suficiente para alcançar a sua necessidade. Família Crystal Diagrama criado por “Alistair Cockburn” onde identifica o tamanho do time, que é o eixo principal para definição da metodologia a ser aplicada. Diagrama de Metodologia Características Crystal é uma abordagem adaptável para desenvolvimento de software, baseada em um “código genético”. Este código genético permite que, mesmo nas instâncias específicas, todas as implantações compartilhem semelhanças familiares. Este código genético consiste em: modelo de jogo econômico-cooperativo; conjunto de prioridades e princípios; conjunto de propriedades; exemplos de estratégias e técnicas. Jogo Econômico-cooperativo O desenvolvimento é uma séries 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 pensarem sobre seu trabalho em um projeto de uma forma específica, focada e efetiva. Prioridades e Princípios Sobre as prioridades: Segurança na entrega do projeto; Habitabilidade; Eficiência no desenvolvimento. Prioridades e Princípios Sobre os princípios: Quantidade de detalhes necessários nos requisitos, design e planejamento variável com as circunstâncias do projeto. Disponibilidade de meios de comunicação fácil, rica e informal entre o time. Versões do software funcional e testado entregues cedo e frequentemente. O time deve continuamente ajustar seus acordos de trabalho para se encaixar as personalidades específicas do time, o local de trabalho e ambiente, e as peculiaridades da tarefa específica. Propriedades (Commonality) Entrega Frequente; Melhora Reflexiva; Comunicação Osmótica; Segurança Pessoal; Foco; Acesso Fácil a Especialistas; Ambiente Técnico com Testes Automatizados, Gerenciamento de Configuração e Integração Frequente. Estratégias e Técnicas Alguns exemplos de estratégias: Vitória Antecipada: Ser vitorioso faz com que o time tenha auto confiança. Sendo a busca pela vitória antecipada é a primeira peça para a viabilidade de execução, teste do código. Esqueleto Andante: Minúscula implementação do sistema que resulta em uma pequena função end-to-end. Não é necessariamente o final da arquitetura, mas deve ser linkada juntamente com o componente principal da arquitetura. Rearquitetura Incremental: Revisar a infraestrutura ou a arquitetura, tambeḿ como a funcionalidades finais do sistemas. Estratégias e Técnicas Alguns exemplos de técnicas: Moldagem de Metodologia: Inicializa-se em duas etapas: Entrevistas de projeto Pode ser construído uma pequena biblioteca de experiências na organização que demonstram suas forças, fraquezas ou ramos específicos. Oficina de modelagem O time tem um lista de regras e convenções que são usadas, e refletem se utilizarão ou não. Reuniões Diárias: São curtas reuniões para dar status do processo, tanto sucesso como falhas. Não é discutido problemas, mas sim identificar que há um problema. Programação Lado-a-lado: Dois programadores trabalhando lado a lado perto suficiente para que um consiga ver a tela do outro, porém cada um trabalha em sua própria tarefa. Crystal Orientado a Objetos A equipe na qual utilizar das metodologias Crystal não tem limitações quanto utilizar programação Orientada a Objetos, ou qualquer estruturação de programação na qual optar. Isso se explica uma vez que família Crystal é “non-jealous”, como dito por Alistair Cockbur. Conclusão Concluímos que as Metodologias Crystal segue bem os valores do lado esquerdo, mas que também dá total liberdade aos usuários para definir como serão utilizados e implementados os valores do lado direito. COCKBURN, Alistair. Agile Software Development: The Cooperative Game. 2nd ed. Massachusetts: Addison-Wesley Professional, 2001. 278 p. COCKBURN, Alistair. Crystal Clear: A Human-powered Methodology for Small Teams. 1st ed. Massachusetts: Addison-Wesley Professional, 2004. 336 p. Alistair Cockburn. Disponível em: <http://alistair.cockburn.us/Crystal+methodologies>. Acesso em 02 de abril de 2018. Manifesto para Desenvolvimento Ágil de Software. Disponível em:<http://agilemanifesto.org/iso/ptbr/manifesto.html>. Acesso em 04 de abril de 2018. Bibliografia Obrigado! "Ágil é uma atitude, não uma técnica com limites. Uma atitude não tem limites, por isso não perguntaremos 'Posso usar agilidade aqui?', Mas sim 'Como atuar da maneira mais ágil aqui?' ou ‘Quão ágil nós podemos ser, aqui?’"
Compartilhar