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 METODOLOGIA: Gerenciamento, manutenção e desenvolvimento de softwares: simples e pequenos grandes e complexos BASE P/ SCRUM: Técnicas e tools OO Março/2003 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 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 Backlog 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: Apresentar resultados concretos ao cliente Integrar e testar uma boa parte do software Motivação da equipe Março/2003 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 Controles Backlog Release/Melhoria Mudanças Problemas Soluções Issues Março/2003 SCRUM Processo de Desenvolvimento de Software 12
Conclusões Divisão de responsabilidades papéis bem definidos Processo ágil e flexível inúmeras mudanças no decorrer do projeto Foco em controles e gerenciamento minimiza risco maximiza qualidade Times pequenos Colaboração Ausência de práticas de Engenharia de Software (técnicas e notações) e tools Necessidade de associação com outras metodologias e tools (XP, GNATS) Dificuldade na implementação de mudanças 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/plopd4- submissions/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