Introdução ao SCRUM
Street-Java 48
Sugestão de Leitura Artigo "Painless Software Schedules" do Joel Spolski http://www.joelonsoftware.com/articles/fog0000000245.html 48
Sumário A metodologia ágil SCRUM O processo do SCRUM O Product Backlog O conceito de História Prioritização do Backlog Estimação Os Sprints
Bibliografia Manual do SCRUM (página da cadeira) The SCRUM Alliance Web site http://www.scrumalliance.org/
Scrum has been used by: Microsoft Yahoo Google Electronic Arts Lockheed Martin Philips Siemens Nokia BBC
Scrum in 10 mins or less http://www.youtube.com/watch?v=q5k7a9yeoui&feature=player_embedded
Funcionamento do SCRUM
Parecido com uma Fábrica... Matéria Prima n Product Backlog Lote n Sprint Backlog Processo de Fabrico n Sprint Produto Final n Product release
Natureza Iterativa O processo SCRUM está organizado em: n Versões que levam entre um e seis meses n Sprints que levam entre uma e quatro semanas n Tarefas que levam entre 1h e 2 dias
Scrum Roles and Responsibilities Product Owner Scrum Master Team
The Product Owner Define the features of the product Decide on release date and content Be responsible for the profitability of the product (ROI) Prioritize features according to market value Adjust features and priority every iteration, as needed Accept or reject work results
The Scrum Master Represents management to the project Responsible for enacting Scrum values and practices Ensure that the team is fully functional and productive n Removes impediments n Enable close cooperation across all roles and functions n Shield the team from external interferences
The team The team member is responsible for n n n Team n n n n Committing to the work and doing it to the highest quality Collaborating with team members Estimating of requirements Small Typically 7 +/- 2 people Cross-functional Teams are self-organizing Membership should change only between sprints 28
The operations centre room!
Pre-game Phase Short Get approval Determine feasibility Set product vision Create initial product backlog Prioritize product backlog Estimate product backlog Choose Sprint Length Calculate Initial Velocity Estimate resources and cost Create high level architecture and design Identify risks
Pre-Game Objectivo: Obter Aprovação Criar o Product Vision Criar o Initial Product Backlog Prioritisar o Product Backlog Estimar os Backlog Items (BIs) Ajustar as estimativas Calcular a velocidade inicial Estimar custo e recursos Fazer o Initial Release Plan
Product Vision Um pequeno texto que responde ás seguintes questões Quem vai comprar? Quem vai usar? A que clientes se destina? Qual o valor acrescentado? Como será medido esse valor? Que atributos críticos terá para suprir as necessidades do utilizador/cliente? Qual o critério que o cliente tem para dizer que é um sucesso. Em que áreas será excelente? Como se diferencia da concorrência?
Product backlog The requirements This is the product backlog A list of all desired work on the project Ideally expressed such that each item has value to the users or customers of the product Prioritized by the product owner Reprioritized at the start of each sprint
História É a unidade de funcionalidade É escrita pelo cliente Deve ser n Compreensível para o cliente e programadores n Quanto mais curtas, melhor Exemplo: O sistema deve verificar a ortografia de todas as palavras inseridas no campo de comentários n Testável O cliente tem de descrever como vai testar n Valiosa para o cliente
Product Backlog Item (História) Title and Description Type n Feature, New Feature, Enhancement, Defect Relative Value Initial Estimate Adjustment Factor n Complexity, drag, working environment, multiple teams Actual Estimate n Initial Estimate*(1+ Adjustment Factor) Sprint Status (Done/not done)
Prioritised backlog
Product Backlog Estimation Select estimation technique n Using story points (how big? size) n Using ideal time (how many people for how long? effort) Use Fibonacci sequence for estimation points:1, 2, 3, 5, 8, 13, 21, 34, Estimate as a team n Can be average n Planning Poker Must be fast
Adjusted Estimates
Mais estimativas... Tamanho do projecto: n O trabalho total em backlog n SIZEp = SIZE(h1) +... + SIZE(hn) n A unidade pode ser em SP ou em IT Velocidade n A produtividade da equipa n Rácio V medido em SP/sprint ou IT/sprint Tamanho do projecto em Sprints n SPRINTS = SIZEp/V Duração estimada n SPRINTS x duração do sprint
Mais estimativas... Tamanho estimado do projecto em Sprints n SPRINTS = SIZEp/V Duração estimada n DURATION = SPRINTS x duração do sprint Custo estimado n COST = SPRINTS x custo por sprint Custo estimado do projecto num momento t n COST(t) = Money Spent(t) + SPRINTS(t) x custo por sprint
Mais estimativas... Tamanho estimado do projecto em Sprints n SPRINTS = SIZEp/V Duração estimada n DURATION = SPRINTS x duração do sprint Custo estimado n COST = SPRINTS x custo por sprint Custo estimado do projecto num momento t n COST(t) = Money Spent(t) + SPRINTS(t) x custo por sprint
A Sample Product Backlog Backlog item Allow a guest to make a reservation 3 As a guest, I want to cancel a reservation. 5 As a guest, I want to change the dates of a reservation. As a hotel employee, I can run RevPAR reports (revenue-per-available-room) Improve exception handling 8... 30... 50 Estimate 3 8
Sprint Length Sprints mais curtos n n n n De 3, 2, ou até uma semana! Gera maior foco Revela problemas no ciclo dos Sprints (pex. Build Automático, Testes, etc) Mais difícil produzir funcionalidade testável pelo clinte... Sprints mais longos n n n De 5 semanas Tornam-se demasiado longos para manter um foco Mais fácil produzir funcionalidade testável pelo cliente...