What is Scrum?• Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time.
What is Scrum?• It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month).
What is Scrum?• The business sets the priorities. Teams self-organize to determine the best way to deliver the highest priority features.
What is Scrum?• Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint.
Scrum Characteristics• Self-organizing teams• Product progresses in a series of month-long ―sprints‖• Requirements are captured as items in a list of ―product backlog‖
Scrum Characteristics• No specific engineering practices prescribed• Uses generative rules to create an agile environment for delivering projects• One of the ―agile processes‖
The Agile Manifesto–a statement of values Individuals and over Process and tools interactions ComprehensiveWorking software over documentation Customer over Contract negotiation collaboration Responding to over Following a plan change Source: www.agilemanifesto.org
Sprints• Scrum projects make progress in a series of ―sprints‖• Analogous to Extreme Programming iterations• Typical duration is 2–4 weeks or a calendar month at most
Sprints• A constant duration leads to a better rhythm• Product is designed, coded, and tested during the sprint• Rather than doing all of one thing at a time... ...Scrum teams do a little of everything all the time
Sprints• During the Sprint, NO CHANGES• Plan sprint durations around how long you can commit to keeping change out of the sprint
Product Owner• The product owner is responsible for bridging the gaps between the customer, business stakeholders, and the development team.• The Product Owner is typically a projects key stakeholder with a vision for what is to be built.
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
Product Owner• Adjust features and priority every iteration, as needed• Accept or reject work results• Closely collaborates with the team on an ongoing basis and guides and direct the team (e.g. managing product backlog, feedback, signing off work results)
ScrumMaster• Represents management to the project• Responsible for enacting Scrum values and practices• Removes impediments
ScrumMaster• Ensure that the team is fully functional and productive• Enable close cooperation across all roles and functions• Shield the team from external interferences
ScrumMaster• The ScrumMaster is often considered a coach for the team, helping the team do the best work it possibly can.• The ScrumMaster is also often viewed as a protector of the team.• Protects the team from complacency – knows when is the time to push for more
Sprint Planning• Is the planning session before each sprint, where the scope of work for an iteration is determined.• The purpose of the Sprint Planning is to decide on the sprint commitments, and ensure their content is clearly communicated across the board
Sprint Planning Team Meeting capacity Sprint prioritization Product • Analyze and evaluate product Sprint backlog backlog goal • Select sprint goalBusinessconditions Sprint planning • Decide how to achieve sprint Current goal (design) Sprint product • Create sprint backlog (tasks) backlog from product backlog items (user stories / features)Technology • Estimate sprint backlog in hours
Sprint Planning• Team selects items from the product backlog they can commit to completing• Sprint backlog is created• Tasks are identified and each is estimated (ideally 1-8 hours MAX)
Sprint Planning • Collaboratively, not done alone by the ScrumMaster • High-level design is consideredAs a vacation planner, I want tosee photos of the hotels. Code the middle tier (8 hours) Code the user interface (4) Write test fixtures (4) Code the foo class (6) Update performance tests (4)
Sprint Review• At the end of each sprint a sprint review meeting is held. During this meeting the Scrum team shows what they accomplished during the sprint. Typically this takes the form of a demo of the new features – no slides• No more than two hours of preparation time for the meeting - is intentionally kept very informal
Sprint Review• Participants in the sprint review typically include the Product Owner, the Scrum Team, the ScrumMaster, management, customers, and developers from other projects if apply• Project is assessed against the Sprint Goal• Important to achieve the overall goal of the sprint
Sprint Retrospective• It is a brief, dedicated period at the end of each sprint to deliberately reflect on how the team are doing and to find ways to improve• Done after every Sprint• Less than 1 hour preferable
Sprint Retrospective• The entire team, including both the ScrumMaster and the Product Owner should participate, possibly customers and others• Recommended to do it outside the office• The next retrospective is often begun by reviewing the list of things selected for attention in the prior retrospective.
Sprint RetrospectiveWhole team gathers and discusses what they’d like to: Start doing Stop doing This is just one of many ways to Continue doing do a sprint retrospective.
Daily Scrum Meeting• It is NOT for problem solving• Whole world is invited• Only team members, ScrumMaster, product owner, can talk• Helps avoid other unnecessary meetings
Daily Scrum Meeting • Everyone answers 3 questions: 1. What did you yesterday? 2. What will you do today? 3. Is anything in your way?These are NOT status for the ScrumMasterThey are commitments in front of colleagues
Product backlog• The requirements• 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
Product backlog• Prioritized by the product owner• Reprioritized at the start of each sprint
Sample Product backlog Backlog item EstimateAllow a guest to make a reservation 3As a guest, I want to cancel a 5reservation.As a guest, I want to change the dates 3of a reservation.As a hotel employee, I can run RevPAR 8reports (revenue-per-available-room)Improve exception handling 8... 30... 50
The Sprint Goal• is a short, one - or two-sentence, description of what the team plans to achieve during the sprint.• It is written collaboratively by the Team and the Product Owner.
Sprint Goals Sample Ecommerce App• Implement basic shopping cart functionality including add, remove, and update quantities.• The checkout process—pay for an order, pick shipping, order gift wrapping, etc.
Sprint backlog• Individuals sign up for work of their own choosing• Work is never assigned• Estimated work remaining is updated daily
Sprint backlog• Any team member can add, delete or change the sprint backlog• If work is unclear, define a sprint backlog item with a larger amount of time and break it down later
Sprint backlog• The Product Owner does not get to say, "We have four sprints left so you need to do one- fourth of everything I need.
Sprint backlog• It is up to the Team to determine how much they can do in the sprint• Work for the sprint emerges• Update work remaining as more becomes known
Sample Sprint backlogTasks Mon Tues Wed Thur FriCode the user interface 8 4 8Code the middle tier 16 12 10 4Test the middle tier 8 16 16 11 8Write online help 12Write the foo class 8 8 8 8 8Add error logging 8 4
Sprint backlog• During the sprint, team members are expected to update the sprint backlog as new information is available, but minimally once per day. Many teams will do this during the daily scrum.
Sprint backlog• Once each day, the estimated work remaining in the sprint is calculated and graphed by the ScrumMaster, resulting in a Sprint Burndown chart
Tasks Mon Tues Wed Thur Fri Sprint Burndown ChartCode the user interface 8 4 8Code the middle tier 16 12 10 7Test the middle tier 8 16 16 11 8Write online help 12 50 40 30 20 10 Hours 0 Mon Tue Wed Thu Fri
Sprint backlog• The team does its best to pull the right amount of work into the sprint but sometimes too much or too little work is pulled in during the Sprint Planning meeting• In this case the team needs to add or remove tasks and the Product Owner consulted