Upload
francesco-mapelli
View
471
Download
0
Embed Size (px)
Citation preview
Agile Methoologies and Scrum
francesco mapelli (@mapelli)
University of Insubria
April 29, 2016
Agile Methodologies Scrum References
Agile Methodologies
Scrum
References
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Introduction
History
I Waterfall issues identi�ed earlyI "Risky and invites failure" , "Do it twice" (Royce, 1970)
I Light software development methods in the '90I ScrumI eXtreme Programming (XP)I ...
I 2001 The Agile Manifesto
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Introduction
Why a shift in the approach?
I In a predictable environment atheoretical model works better
I In a chaotic environment (or whenprocess is too complex) an empiricalapproach works better
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Manifesto
Tha Agile Manifesto: Values
I Individuals and iteractions over Processess and tools
I Working software over Comprehensive documentation
I Customer collaboration over Contract negotiation
I Responding to change over Follwing a plan
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Manifesto
Tha Agile Manifesto: Principles
I Customer satisfaction by early and continuous delivery ofvaluable software
I Welcome changing requirements, even in late development
I Working software is delivered frequently (weeks rather thanmonths)
I Close, daily cooperation between business people anddevelopers
I Projects are built around motivated individuals, who should betrusted
I Face-to-face conversation is the best form of communication(co-location)
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Manifesto
Tha Agile Manifesto: Principles
I Working software is the principal measure of progress
I Sustainable development, able to maintain a constant pace
I Continuous attention to technical excellence and good design
I Simplicity - the art of maximizing the amount of work notdone - is essential
I Best architectures, requirements, and designs emerge fromself-organizing teams
I Regularly, the team re�ects on how to become more e�ective,and adjusts accordingly
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Summary
Remember
I Agile is a set of principles
I Agile does NOT de�ne a method
I Di�erent approaches / methodologies can be agile
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Introducion
Introduction to Scrum
I Scrum is an agile frameworkI Focus on delivering the highest business value in the shortest
time
I Allows rapid and recursive inspection of working softwareI 2 weeks - 1 month
I Business sets priorities
I Teams self organize to determine the best way to deliver thehighest priority features
I Every 2 weeks / 1 month anyone can see real working softwareand decide to continue to work or release it
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Introducion
Key concepts
I Self organizing teams
I No speci�c engineering practices
I Simple set of rules that allows generating processes, practicesand solutions
I evolutive approachI solutions can and should change in time
I Requirements are items of a list called "Product Backlog"
I Product is developed in a series of "Sprints"
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Introducion
Overview
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Sprint
Sprint
I Scrum projects make progresses in a series of Sprints
I Duration: 2-4 weeks or a monthI (usually does not change)
I Requirements, design, coding, testing during the sprint
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Sprint
Not a sequential process
I Instead of doing all of one thing at atime, teams do a bit of everything allthe time
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Sprint
No changes during a sprint
I Changes should NOT occur during a sprint
I If something changes, the next sprint will react to the newcontext
I Plan sprint duration according to how much time change canbe kept outside of the sprint
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Sprint
Potentially shippable product at end of each sprint
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Sprint
Worst case
I The limited lenght of the sprint allows to limit the damage,worst case we go back X days
I But X days of learning have been mined
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework
Scrum Framework
I RolesI Product OwnerI Scrum MasterI Team
I CerimoniesI Sprint PlanningI Sprint ReviewI Sprint RetrospectiveI Daily Scrum Meeting
I ArtifactsI Product BacklogI Sprint BacklogI Burndown Charts
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Roles
Roles
I Product Owner
I Scrum Master
I Team
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Roles
Product Owner
I De�ne the features of the product
I Decide on release date and content
I Be responsible for the pro�tability of the product (ROI)
I Prioritize features according to market value
I Adjust features and priority every iteration, as needed
I Accept or reject work result
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Roles
Product Owner (2)
I Voice of the customer (or customer himself)
I Business side of the project
I Should not interact on technical aspects
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Roles
Scrum Master
I Interface between team and management
I Protects the teamI Shield the team from external interferencesI from committing too mucI from relaxing too much
I Responsible for enacting Scrum values and practices
I Removes impediments
I Ensures that the team is fully functional and productive
I Enables close cooperation across all roles and functions
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Roles
Scrum Master (2)
I FacilitatorI Helps PO to update the backlogI Encourages improvements in the teamI Stimulates solutions and facilitate meetingsI Helps the team to de�ne when a feature is DoneI ...
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Roles
Team
I Typically 5-9 people
I Members should be full-timeI May be exceptions (e.g., database administrator)
I Teams are self-organizingI Really!
I Ideally, no titles but rarely a possibility
I Membership should change only between sprints
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Roles
Team (2)
I Should deliver potentially shippable product at end of eachiteration
I Cross-functional:I Programmers, testers, user experience designers, etc.
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Cerimonies
I Sprint planning
I Daily scrum meeting
I Sprint review
I Sprint retrospective
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Sprint Planning
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Sprint Planning
I Toghether with the Product Owner, a sprint goal is identi�ed
I Sprint goal is an high-level statement of what value the sprintwill produce
I "Add functionalities related to booking for customers of thewebsite"
I Team selects items from the product backlog they can committo completing
I Sprint backlog is createdI Tasks are identi�ed and each is estimated (usually in hours)I Collaboratively, not done alone by the ScrumMaster
I High-level design is considered
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Sprint planning, example
I Product backlog"As a vacation planner, I want to see photosof the hotels." - becomes
I Code the middle tier (8 hours)I Code the user interface (4)I Write test �xtures (4)I Code the foo class (6)I Update performance tests (4)
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Daily scrum meeting
I 15-minutes
I Stand-up
I Not for problem solving
I Whole world is invited
I Only team members, ScrumMaster, product owner, can talkI PO can attend or not, depending on the team preferences
I Helps avoid other unnecessary meetings
I same place, same time
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Daily scrum meeting
I Everyone answers 3 questionsI What did you do yesterday?I What will you do today?I Is anything in your way?
I These are not status for the ScrumMaster
I They are commitments in front of peers
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Sprint review
I Team presents what it accomplished during the sprintI we are inspecting how the product is going
I Typically takes the form of a demo of new features orunderlying architecture
I Informal
I 2-hour prep time rule
I No slides
I Whole team participates
I Invite the world
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Sprint retrospective
I Periodically take a look at what is and is not workingI we are inspecting how the process is going
I Typically 15-30 minutes
I Done after every sprint
I Scrum Master facilitates the learning
I Whole team participatesI ScrumMasterI Product ownerI TeamI Possibly customers and others
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Cerimonies
Sprint retrospective - how
I Whole team gathers and discusses what they'd like to:I Start doingI Stop doingI Continue doing
I Other optionI What was bad?I What was good?I What action items can we take?
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Artifacts
Artifacts
I Product Backlog
I Sprint Backlog
I Burndown Charts
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Artifacts
Product Backlog
I The requirements
I A list of all desired work on the project
I Ideally expressed such that each item has value to the users orcustomers of the product
I Prioritized by the product owner
I Reprioritized at the start of each sprint
I Amount of work is estimated, and re-estimated wheninformation changes
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Artifacts
Product Backlog: example
I As a guest, I want to be able to make a reservation
I As a guest, I want to cancel a reservation
I As a guest, I want to change the dates of a reservation
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Artifacts
Sprint Backlog
I What should be done to meet the sprint goal?
I Things taken from the product backlog and translated intotechnical tasks
I example: "As a vacation planner, I want to see photos of thehotels."
I Code the middle tier (8 hours)I Code the user interface (4)I Write test �xtures (4)I Code the foo class (6)I Update performance tests (4)
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Artifacts
Managing the Sprint Backlog
I Individuals sign up for work of their own choosing
I Work is never assigned
I Estimated work remaining is updated daily
I Any team member can add, delete or change the sprint backlog
I Work for the sprint emerges
I If work is unclear, de�ne a sprint backlog item with a largeramount of time and break it down later
I Update work remaining as more becomes known
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scrum Framework - Artifacts
Burndown Charts
I a chart that tracks the remaining work
I easily allows everybody to understandhow things are going
I can be used to re�ne the future tasksand react to current status
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scaling
Scalability
I Typical individual team is 5-9 people
I Scalability comes from teams of teams
I Factors in scalingI Type of applicationI Team sizeI Team dispersionI Project duration
I Scrum has been used on multiple 500+ person projects
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scaling
Scrum of Scrum
I Meeting with members from di�erentscrum teams to update
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Scaling
Spotify:
I Squads, tribes, guidlds, chapters
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Books
Books
I Agile Software Development with Scrum - chapter 3
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
Attribution
Some inspiration and content from
I Fornari, S. Lean Development and Agile Methodologies CourseMaterial
I Scrum Presentation, Mountain Goat SoftwareI https://www.mountaingoatsoftware.com/agile/scrum/a-
reusable-scrum-presentation
I Scrum Training Series at scrumtrainingseries.com
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum
Agile Methodologies Scrum References
License
Released under CC
I This work is licensed under a Creative CommonsAttribution-ShareAlike 4.0 International License.
francesco mapelli (@mapelli) University of Insubria
Agile Methoologies and Scrum