SCRUM Gregório Baggio Tramontina (RA 014864) Ricardo Ribeiro dos Santos (RA 030060) IC - UNICAMP MO409 1 Roteiro Motivação/Foco Metodologia SCRUM Métodos de Controle do SCRUM Prós e contras Exemplos de utilização Conclusões IC - UNICAMP MO409 2 Motivação/Foco Processo de desenvolvimento de software é caótico Imprevisibilidade e incertezas fazem parte desse processo Requisitos de usuário, pressões de tempo, competição, qualidade e recursos (base inicial do projeto) podem sofrer alterações Problema de modelos lineares (cascata, CMM): assumir o processo como não sujeito a mudanças e incertezas SCRUM: Processo ágil de gerenciamento Leva em conta o caráter evolutivo dessas variáveis Encoraja flexibilidade no desenvolvimento Operar o mais próximo possível do caos, mantendo ainda a ordem Usa um mecanismo de controle para manter o projeto em ordem IC - UNICAMP MO409 3 Metodologia Três fases: Planejamento / Design da Arquitetura Sprints Fechamento (Closure) Plan. / Design Arq. Sprint s Fechamento Atividades durante o planejamento/design da arquitetura Análise e projeto primários (irão mudar no decorrer do projeto) Análise de riscos, definição das equipes de desenvolvimento, estimativas de custo e fixação dos prazos Desenvolvimento de um backlog inicial backlog: lista de tarefas a serem executadas durante o desenvolvimento do sistema, em ordem de prioridade Identificação das alterações para implementar o backlog IC - UNICAMP MO409 4 Metodologia Equipes de desenvolvimento no SCRUM Pequenas (máx. 6 a 10) Gerenciadas pelo Scrum Master Alta Interatividade Desenvolvimento (Sprints) Seqüência de sprints Sprint: Ciclo de trabalho de desenvolvimento Cada sprint: 1 a 4 semanas Aloca-se parte do backlog, em ordem de prioridade, para uma equipe Backlog não muda durante o sprint (não há interferência externa) Atividades durante os sprints Desenvolvimento Wrap Revisão Ajustes Desenvolvimento produz artefatos Documentação, código, protótipos,... IC - UNICAMP MO409 5 Metodologia Equipes de desenvolvimento no SCRUM Pequenas (máx. 6 a 10) Gerenciadas pelo Scrum Master Alta Interatividade Desenvolvimento (Sprints) Seqüência de sprints Sprint: Ciclo de trabalho de desenvolvimento Cada sprint: 1 a 4 semanas Aloca-se parte do backlog, em ordem de prioridade, para uma equipe Backlog não muda durante o sprint (não há interferência externa) Atividades durante os sprints Desenvolvimento Wrap Revisão Ajustes Definir as mudanças necessárias no software Analisar, projetar, implementar, testar e documentar as mudanças Desenvolvimento produz artefatos Documentação, código, protótipos,... IC - UNICAMP MO409 6 Metodologia Equipes de desenvolvimento no SCRUM Pequenas (máx. 6 a 10) Gerenciadas pelo Scrum Master Alta Interatividade Desenvolvimento (Sprints) Seqüência de sprints Sprint: Ciclo de trabalho de desenvolvimento Cada sprint: 1 a 4 semanas Aloca-se parte do backlog, em ordem de prioridade, para uma equipe Backlog não muda durante o sprint (não há interferência externa) Atividades durante os sprints Desenvolvimento Wrap Revisão Ajustes Fechar os pacotes modificados Gerar executáveis dos pacotes Desenvolvimento produz artefatos Documentação, código, protótipos,... IC - UNICAMP MO409 7 Metodologia Equipes de desenvolvimento no SCRUM Pequenas (máx. 6 a 10) Gerenciadas pelo Scrum Master Alta Interatividade Desenvolvimento (Sprints) Seqüência de sprints Sprint: Ciclo de trabalho de desenvolvimento Cada sprint: 1 a 4 semanas Aloca-se parte do backlog, em ordem de prioridade, para uma equipe Backlog não muda durante o sprint (não há interferência externa) Atividades durante os sprints Desenvolvimento Wrap Revisão Ajustes Interna ao sprint Apresentação dos resultados entre as equipes Levantamento e resolução de problemas Desenvolvimento produz artefatos Documentação, código, protótipos,... IC - UNICAMP MO409 8 Metodologia Equipes de desenvolvimento no SCRUM Pequenas (máx. 6 a 10) Gerenciadas pelo Scrum Master Alta Interatividade Desenvolvimento (Sprints) Seqüência de sprints Sprint: Ciclo de trabalho de desenvolvimento Cada sprint: 1 a 4 semanas Aloca-se parte do backlog, em ordem de prioridade, para uma equipe Backlog não muda durante o sprint (não há interferência externa) Atividades durante os sprints Desenvolvimento Wrap Revisão Ajustes Consolidação das informações apreendidas na fase de revisão: implementação de correções, etc Desenvolvimento produz artefatos Documentação, código, protótipos,... IC - UNICAMP MO409 9 Metodologia SCRUM Meetings Reuniões freqüentes (diárias) da equipe Rápidas (15/20 min.) de pé! Desenvolvedores devem responder a 3 perguntas: O que você fez nas últimas 24h (desde a última reunião)? O que está dificultando a continuação de seu trabalho? O que você vai fazer nestas próximas 24h (até a próxima reunião)? Socialização da equipe e da informação Sprints terminam com uma revisão geral Demonstração das funcionalidades implementadas no sprint Pode incluir os gerentes, desenvolvedores, clientes, patrocinadores, vendedores, gerentes de marketing, etc. Novos itens podem ser acrescentados ao backlog Atividades durante o Fechamento Preparação do produto para a entrega de uma versão operacional Ocorre quando as variáveis de tempo, competição, recursos, etc, determinam o fim do processo IC - UNICAMP MO409 10 Metodologia • Visão geral Fonte: Scrum Website - http://www.controlchaos.com/about/ IC - UNICAMP MO409 11 Controles em Scrum Risco é o controle primordial Os controles são usados nas diferentes fases do Scrum Outros pontos de controle na metodologia são: Backlog requisitos não obtidos na versão atual do produto Melhorias/Atualização itens do backlog que podem estar disponíveis de acordo com os requisitos de tempo, qualidade, competitividade, etc. Pacotes objetos que devem ser modificados para implementar um item do backlog Riscos constantemente avaliados Mudanças alterações necessárias para implementar itens do backlog Garantia de qualidade está relacionada com os controles realizados IC - UNICAMP MO409 12 Prós e Contras - Scrum Flexível às mudanças de requisitos Fornece mecanismos de controle para planejar uma atualização de produto e gerenciar variáveis a medida do progresso do projeto Suporte limitado para ambientes de desenvolvimento distribuído Desenvolvimento de software safetycritical Dificuldade de adaptação Equipes pequenas = maior compartilhamento de informações Ferramentas específicas A base da metodologia é a orientação a objetos Adaptável com outras metodologias IC - UNICAMP MO409 13 Exemplos de utilização de Scrum AG Communication Systems Simulador Multiplataforma Call center Advanced Development Methods Softwares para automação de processos VMARK Software Ambientes de desenvolvimento de software Trans Canada Pipeline Ltda XP@Scrum IC - UNICAMP MO409 14 Conclusões Existem escopos bem definidos para o emprego de metodologias de processos ágeis como Scrum Assume que o processo de desenvolvimento de software é empírico e não-definido Conhecimento sobre o sistema aumenta com o progresso do trabalho e compartilhamento de informação Interatividade e controle são as principais características Factível de ser utilizado com outras metodologias de desenvolvimento de software Como todo processo, tem prós e contras IC - UNICAMP MO409 15 Referências Schwaber, K. SCRUM Development Process. 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM/SIGPLAN October, 1995. Schwaber, K., Controlled Chaos: Living on the Edge. American Programmer, April, 1996. Beedle M., Devos, M., Sharon, Y., Schwaber, K., Sutherland, J., SCRUM: An Extension Pattern Language for Hyperproductive Software Development, Pattern Languages of Program Design 4, N. Harrison, B. Foote, and H. Rohnert, eds., Addison-Wesley, Reading, Mass., 2000, p. 637-651. ADM, Inc. Controlled-Chaos Software Development. Disponível em http://www.controlchaos.com/download/. Data do último acesso 09/09/2004. Rising, L. and Janoff, N. S. The Scrum Software Development Process for Small Teams, IEEE Software, v. 7, n. 04, p. 26-32 July/August, 2000. D. Turk, R. France, and B. Rumpe. Limitations of Agile Software Processes. In Proceedings of the Third International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP2002), pages 43--46, Alghero, Italy, May 2002. SCRUM – Site oficial: http://www.controlchaos.com. Data do último acesso 17/09/2004. IC - UNICAMP MO409 16