Object Oriented Analysis & Design Scrum Contents Scrum Scrum is a software methodology, like RUP It is an agile methodology It can respond quickly to changes in the requirements Many game companies are using Scrum to develop their games Remember the Waterfall Model? Planning Phase Construction The product is sent to various teams and built Testing Final product is thought out Product is designed Requirements and design are documented The schedule is created and planned Estimates are made The product is passed to QA for testing Strict controls are placed on the project to ensure the final product is what was designed What’s Wrong with the Waterfall? The strengths of waterfall include Highly organized Extremely logical Weaknesses Humans are involved Requires all good ideas at the start Waterfall documents all ideas In reality, good ideas arise throughout the project In reality documents are seldom read When read, they are often misunderstood We find that a rigid process results in mediocre products that are never better than the original idea Agile Development Tries to reflect human reality Tries to get working software quickly rather than concentrating on planning Use cross functional teams which can make their own decisions Uses rapid iteration to build the product in smaller pieces Agile reminds people of how it was done in the start-up days when they just did it, before they got big and bureaucratic The Origin of Scrum Is a short form of scrummage used in rugby When there has been an infraction of the ball has gone out of play The team regroups and gets ready to start playing again In scrum, this regrouping is what the team does at the start of every day Scrum Overview Scrum is an iterative approach to project development It consists of a series of sprints, each of which is timeboxed between 2-4 weeks If the work is not complete at the end of a sprint, the sprint is never extended At the beginning of the sprint, the team selects items they will do in the sprint Every morning, the team meets to discuss progress and adjust to meet their schedule At the end of the sprint, the team reviews the sprint to discover what they did right and wrong Deemer, Benefield, Larmer, & Vodde Scrum Definitions Product Backlog Sprint Backlog The list of items from the product backlog that the team has committed to build in this sprint Sprint This is a list of features that must be implemented These features are prioritized so that the most important and lowest cost can be easily identified The 2-4 week period in which the team works to build the items the have committed to build Daily scrum meeting Daily meeting to judge progress and adjust strategy Scrum Personnel Product Owner Responsible for maximizing return on investment by prioritizing list of items Continually re-prioritizes list to get items of highest value to the business Only one person is the product owner and he or she is responsible for the value of the resulting product Scrum Personnel The Team Builds what the product owner tells them to Is cross-functional by having people with diverse skills necessary to build the product Is self-organizing and has a high degree of autonomy Commits to build the items in the sprint backlog The team are the pigs and everyone else are chickens A team consists of 7 plus or minus 2 people A team is staffed for and devoted to the development of one particular product Pigs & Chickens Scrum Personnel Scrum Master Helps the personnel to learn and apply scrum Protects the team from outside interference Educates upper management on how scrum works Project Management in Scrum There is no project manager The product owner decides on the priorities The scrum master protects the team from interference The team Organizes itself Manages itself via the daily scrum meetings Starting Scrum A scrum project is started by the Product Owner He or she articulates the product vision He or she then develops a list of features for the product The features are a list of everything that will be built by the team The features are then assigned A priority indicating their importance An estimate of their value to the project An estimate of the cost to build them The prioritized list of features is called the Product Backlog Sample Product Backlog Effort After Sprint Item Priority Import Effort Level 1 scene 1 7 3 Level 1 Chars + AI 2 7 5 Level 1 particle effects 3 5 3 Level 1 sounds 4 4 3 Health/Score display 5 4 4 1 2 3 The Product Backlog The Product Backlog can contain Features needed to play the game Underlying infrastructure to make the game work Game engine Art work Music & sound effects Model loaders Level loaders The Product Backlog is continuously updated to reflect Changing priorities New features and ideas The Release Backlog The Release Backlog is A subset of the Product Backlog The list of features required for the current release Like the Product Backlog, the Release Backlog is Continuously updated by the Product Owner Features can be added or deleted Features can be re-prioritized Sprint Planning Each sprint is planned by a Sprint Planning Meeting This meeting has 2 parts Part 1 Part 2 The team meets with the Product Owner to understand what needs to be built next. The team decides how many of the prioritized list of items identified in Part 1, they will commit to deliver One of the major differences is that the team decides how much work can be done in a sprint, not the Product Owner Sprint Planning – Part 1 The Team meets with the Product Owner Reviews high-priority items the Product Owner wants implemented Discuss the goals and context for these items so that the team understands the thinking on the Product Owner Discusses the definition of “done” so that every knows what is expected at the end of the Sprint At the end of part 1, the team understands what the Product Owner wants Sprint Planning – Part 2 This part of the meeting focuses on how to implement the items discussed in part 1 It estimates the amount of time each member of the team has to devote to the project over the next several weeks Each of the items is examined in order of priority The team decides how many of these items they can commit to deliver Since the team decides how much they can do, the commitment actually means something The Spring Planning meeting will last several hours, but no more than 8 Multi-Skilled Workers Scrum makes use of multi-skilled workers A tester does not just do testing if there is no testing but there is other work to do The workers go where the work is and do not sit idle waiting for a specific type of work This keeps everyone busy and maximizes the productivity of the team Sprint Goals do not Change Once the team has committed to the goals of the Sprint, there are no changes to the goals of the Sprint The Product Owner might want to add new items to the list for a Sprint or to modify the existing list The team is protected from these changes which might make their commitment impossible to meet In the event that there is a major change in priorities, a Sprint can be terminated and a new Spring planned This avoids having the team continue to implement items which are no longer needed for the project Daily Scrum A short daily meeting Every team member reports 15 minutes or less At the same time every day What has been accomplished since the last meeting What they want to accomplish before the next meeting Any roadblocks in their way Notes are taken The Scrum Master is responsible for clearing roadblocks If more discussion is needed, another meeting is scheduled Sprint Burndown Chart The team must track how progress is going This is done by tracking the amount of time left to accomplish each goal This is tracked on a Sprint Burndown Chart This allows the team to adjust its efforts to meet its commitments Sprint Burndown Chart Estimate at end of day Backlog Item Sprint Task Volunteer Estimate 1 2 Level 1 scene Scene loader Bob 8 2 0 Scene lighting Jill 4 2 0 Scene layout Alex 15 10 5 3 Sprint Review This is a conversation between the Product Owner and the Team to Catch up on the state of the product Catch up on the state of the team Find out the thinking of the Product Owner This includes a demo of what the team built in the Sprint This is attended by everyone including management Sprint Retrospective This meeting is held after the Sprint Review It seeks to improve the process It tries to identify What worked What could be improved The team then looks for Causes of inefficiency Ways to improve the efficiency of the process