SCRUM Processo de Desenvolvimento de Software Disciplina: Engenharia de Software I Professora: Eliane Martins Camila R. Rocha RA: 022247 Silvia C. M. Soares RA: 012895 Agenda Introdução Objetivos Características Fases Aspectos de qualidade, gerenciamento e testes Conclusões Março/2003 SCRUM – Processo de Desenvolvimento de Software 2 Introdução ORIGEM: ADM (Advanced Development Methods) + VMARK Software PROCESSO: Ágil Empírico Incremental Março/2003 METODOLOGIA: Gerenciamento, manutenção e desenvolvimento de softwares: simples e pequenos grandes e complexos BASE P/ SCRUM: Técnicas e tools OO SCRUM – Processo de Desenvolvimento de Software 3 Objetivos Garantir maior flexibilidade e habilidade para tratamento de sistemas complexos e simples; Produzir um sistema susceptível a requerimentos iniciais e adicionais durante o projeto: Requerimentos dos clientes; Necessidades do negócio; Pressão relativa ao tempo; Competitividade do mercado; Qualidade; Recursos. Março/2003 SCRUM – Processo de Desenvolvimento de Software 4 Características Deliverable flexível; Cronograma flexível; Times de desenvolvimento pequenos (por volta de 6); Revisões frequentes; Colaboração; Orientação a Objeto. Março/2003 SCRUM – Processo de Desenvolvimento de Software 5 Fases Planejamento Sprints Ciclos Encerramento Março/2003 SCRUM – Processo de Desenvolvimento de Software 6 Fases Planejamento Processo definido Relativamente curta Design da arquitetura do sistema Estimativas de datas e custos Criação do backlog Backlog Participação de clientes e outros departamentos Levantamento dos requisitos e atribuição de prioridades Definição de equipes e seus líderes Definição de pacotes a serem desenvolvidos Março/2003 SCRUM – Processo de Desenvolvimento de Software 7 Fases Sprint Processo Empírico Cada time recebe uma parte do backlog para desenvolvimento O backlog não sofrerá modificações durante o Sprint Fonte: Mountain Goat Software Duração de 1 a 4 semanas Sempre apresentam um executável ao final Março/2003 SCRUM – Processo de Desenvolvimento de Software 8 Fases – Sprint Reuniões Diárias Cerca de 15 minutos de duração Gerenciada pelo líder de cada equipe Todos respondem às perguntas: O que você realizou desde a última reunião? Quais problemas você enfrentou? Em que você trabalhará até a próxima reunião? Benefícios: Maior integração entre os membros da equipe Rápida solução de problemas Promovem o compartilhamento de conhecimento Progresso medido continuamente Minimização de riscos Março/2003 SCRUM – Processo de Desenvolvimento de Software 9 Fases – Sprint Revisão Deve obedecer à data de entrega Permitida a diminuição de funcionalidades Apresentação do produto à clientes e/ou diretores de marketing Sugestões de mudanças são incorporadas ao backlog Produto pode até ser lançado no mercado Benefícios: Março/2003 Apresentar resultados concretos ao cliente Integrar e testar uma boa parte do software Motivação da equipe SCRUM – Processo de Desenvolvimento de Software 10 Fases Encerramento Iniciada quando todos os aspectos são satisfatórios (tempo, competitividade, requisitos, qualidade, custo) Atividades: Testes de integração Testes de sistema Documentação do usuário Preparação de material de treinamento Preparação de material de marketing Março/2003 SCRUM – Processo de Desenvolvimento de Software 11 Qualidade, Gerenciamento e Testes Passos e papéis bem definidos Gerenciamento de riscos Revisões frequentes / diárias Definição de padrões Realização de testes Elaboração de documentação Grupo QA Março/2003 Controles Backlog Release/Melhoria Mudanças Problemas Soluções Issues SCRUM – Processo de Desenvolvimento de Software 12 Conclusões Divisão de responsabilidades Ausência de práticas de papéis bem definidos Engenharia de Software Processo ágil e flexível (técnicas e notações) e tools inúmeras mudanças no Necessidade de associação decorrer do projeto com outras metodologias e Foco em controles e tools (XP, GNATS) gerenciamento Dificuldade na minimiza risco implementação de mudanças maximiza qualidade Times pequenos Colaboração Março/2003 SCRUM – Processo de Desenvolvimento de Software 13 Referências ADVANCED DEVELOPMENT METHODS Inc. Controlled Chaos : Living on the Edge. 1996. Disponível em: <http://www.controlchaos.com/ ap.htm>. Acesso em 9 mar. 2003. ADVANCED DEVELOPMENT METHODS Inc. SCRUM Software Development Process - Building The Best Possible Software. 1995. Disponível em: <http://www.controlchaos.com/scrumwp.htm>. Acesso em 9 mar. 2003. BEETLE, Mike, et. al. SCRUM: A extension pattern language for hyperproductive software development. Pattern Languages of Software Design 4, 2000. Disponível em: <http://st-ww.cs.uiuc.edu/~plop/plopd4submissions/P46.pdf>. Acesso em 14 mar 2003. MENON, Nishanth. SCRUM: Saving Project from Failing. 2002. Disponível em: <http://www.webenable.com/industry/scrum1.asp>. Acesso em 15 mar. 2003. Março/2003 SCRUM – Processo de Desenvolvimento de Software 14 Referências MOUNTAIN GOAT SOFTWARE. Scrum. Disponível em: <http://www. mountaingoatsoftware.com/scrum/scrumpres.pdf>. Acesso em 10 mar. 2003. MOUNTAIN GOAT SOFTWARE. The Scrum Development Process. Disponível em: <http://www.mountaingoatsoftware.com/scrum/index.html> Acesso em 10 mar. 2003. NOYES, Bryan. Rugby, Anyone? 2002. Disponível em: <http://www. fawcette.com/resources/managingdev/methodologies/scrum>. Acesso em 13 mar. 2003 POWER, Patrick. Overview of the Scrum Development Software Process. 2002. Disponível em: <http://www.humanetix.com/Articles/Scrum1.html>. Acesso em 15 mar. 2003. Março/2003 SCRUM – Processo de Desenvolvimento de Software 15 Referências RISING, Linda; JANOFF, Norman. The Scrum Software Development Process for Small Teams. IEEE Software, July/August 2001. SCHWABER, Ken; MAR, Kane. Scrum with XP. 2003. Disponível em: <http://www.controlchaos.com/XPKane.htm>. Acesso em 10 mar. SUTHERLAND, Jeff. Jeff Sutherland SCRUM’s log. 2003. Disponível em: <http://www.jeffsutherland.org/scrum/index.html>. Acesso em 15 mar. 2003. SUTHERLAND, Jeff. Jeff Sutherland’s COMDEX/Object World Tutorial – SCRUM. 1998. Disponível em: <http://www.jeffsutherland.org/ objwld98/ow_scrum.html>. Acesso em 15 mar. 2003. Março/2003 SCRUM – Processo de Desenvolvimento de Software 16