Professional Documents
Culture Documents
Introduction to Agile
Using Scrum
Course Objectives
Course Agenda
Day 1
Day 2
Why Agile ?
Software development is to be adopted for new way of working and technology
changes
Demand for Rapid product lifecycles New skills and competencies needed
Increasing interactions with customer Increased security and privacy requirements
Move to adjacent or new markets Greater need to align with strategic priorities
Activity
Agile Framework
Agile Framework
•Based on values •Small teams of •Simplified version •Frequent •interactive •3 primary phases: •Develop feature •Incremental,
of simplicity, Delivery knowledge base Pre-Project, list, Plan, Design, Evolutionary
8-12 people of Rational Unified
communication, for implementing Project Life-Cycle , Build by Feature Change
Process – reduced •Reflective agile practices
feedback, •“Backlog” defined improvement Post-Project
courage, at enterprise •Kanban board
requirements that scale help team
and respect will be addressed understand how
in each Sprint •Based on Lean they are doing
•Start with simple
and Agile and also what to
solution, add •Daily 15 min. principles do next
complexity Scrum meeting
through to discuss
refactoring work for the day
10
The Waterfall
Documentation,
Signoffs, Handoff
Documentation,
Signoffs, Handoff
Documentation,
Signoffs, Handoff
Empirical Processes
Inputα Outputβ
Process
Iterative Development
Adaptability
Iterative Development
Visibility
Iterative Development
Time
All-At-Once Development
Time
All-At-Once Development
Incremental Development
Value
Incremental All-At-Once
Delivery Delivery
Risk / Uncertainty
Time
Incremental
Delivery All-At-Once
Delivery
Time
•While Waterfall and V-model design methods remain popular with embedded
systems engineers, they expect their use of Agile to increase.
15 Introduction to Scrum | 2013 © Copyright IBM Corporation 2013
IBM Global Business Services
What Is Scrum?
Basics
In the sport of rugby, a scrum is when the players form up as a tight, integrated pack
The ball is put into play and the team works to achieve the goal of moving the ball
A Rugby Scrum
What Is Scrum?
Product Owner
Product Owner
Responsible for the overall project vision and goals
Responsible for managing project ROI vs. risk
Responsible for taking all inputs into what the team should produce and turns it into a
prioritized list (the Product Backlog)
Participates actively in Sprint Planning and Sprint Review meetings and is available
for the team throughout the Sprint
Determines release plan and communicates it to upper management and the
customer
Product Backlog
Product Backlog
Product Owner lists items in descending order of priority (highest priority item is
listed first, next-highest is second, etc.)
1 2 3
A brief description of
Conversations about Tests that convey
the story used for
the story and document details
planning
4 5
As a premium site
As a non-premium
member, I want to cancel
member, I want to cancel As a site visitor, I want to
a reservation up to the
up to 24 hours in receive a confirmation
last minute with no
advance so I am not of any cancelled
cancellation fee so I am
charged for a travel reservation so I can have
not charged for a travel
arrangement I no longer proof of cancellations
arrangement I no longer
need
need
Problem Statement : Write a mobile application where users could select various
facilities provided by Railway reservation system
Planning Poker
Steps
Each Customer/
estimator Product Estimators Cards are Discuss
Re-estimate
gets a deck owner reads select cards turned over differences
of cards a story
Estimate the Story Points for various User Stories identified in the previous
exercise using Planning Poker
The Team
The Team
7 people, + or – 2
– Can be shared with other teams (but it is better when not)
– Can change between Sprints (but better when they don’t)
– Can be distributed (but better when collocated)
Cross-functional
– Possesses all the skills necessary to produce an increment of potentially shippable
product
– Team takes on tasks based on skills, not just official “role”
Self-managing
– Team manages itself to achieve the Sprint commitment
The Sprint
Sprint Length
– 2-3 weeks is standard
Factors in deciding your Sprint length
– Duration of the project
– Customers/stakeholders
How often can they provide feedback and guidance
Scrum familiarity
Environmental factors like regulatory
– The Scrum team
Scrum experience
Technical capabilities (such as automated acceptance testing, TDD, automated
releases, etc.)
Sprint Planning
What’s on the Product
Team understands details of what Product Owner has Owner’s “shopping list”?
prioritized on Product Backlog
Team decides how many Product Backlog items it can How many items on the
commit to complete during Sprint shopping list can we afford to
“buy” with that “money”?
1 2 3
1-Hr Pre-
5 6 7 8 Sprint Review
Meeting for
& Retrospective
Next Sprint
6 7 8 9 10
Sprint
Planning 1 2 3 4
Meeting
13 14 15 16 17
1-Hr Pre-
5 6 7 for
Meeting 8 Sprint Review
Next Sprint & Retrospective
20 21 22 23 24
Sprint
Planning 1 2 3 4
Meeting
27 28 30 31
1-Hr Pre-
29
Defining “Done”
In Scrum, “Done” is defined as “Potentially Shippable”
RELEASE
Total 214
45 Introduction to Scrum | 2013 © Copyright IBM Corporation 2013
IBM Global Business Services
Tracy 8 4 32 28 25
Sanjay 7 5 35 31
Phillip 8 3 24
Jing 5 5 25
The Sprint
Upgrade
transaction Complete documentation Joe 6 6 6
processing module
Unit testing Philip 3 3 3
Burndown Chart
Task Board
TO DO IN PROGRESS DONE
Task Board
TO DO IN PROGRESS DONE
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task Board
TO DO IN PROGRESS DONE
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task Board
TO DO IN PROGRESS DONE
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task Board
TO DO IN PROGRESS DONE
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task Board
TO DO IN PROGRESS DONE
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task Board
TO DO IN PROGRESS DONE
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task Board
TO DO IN PROGRESS DONE
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
Task: Configure database Task: Configure database Task: Configure database Task: Configure database
and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac and SpaceIDs for Trac
SPRINT
SPRINT
Developer’s Day
You are the owner and accountable for the task
Work on one task at a time
Start Planning
Cross functional
for the day
Refactoring
Unit testing all scenarios
Reviews Is it time
Check in at-least twice a day
Need new task Pick up a task for scrum
Attend
Update task board meeting Scrum Meeting
Raise an alarm, if stuck on an activity for an hour
Yes End of NO
Go Home
the Day
Peacefully
Write Unit
Work on existing task
test case
Yes
Write-
Is CI NO Fix
Refactor-
Successful build
Review
code
Test-driven development
Automated builds and continuous
integration
Collective code ownership
Continuous refactoring
Frequent design and code reviews
Highly collaborative team processes
High customer contact and max
transparency
Automated acceptance and regression
tests
Developer
Check in
Version Regression
Dashboard Control
CI
Compile
Run UT,MT
performance
Inform the result
Run Dependent
Run Smoke test test
Test Env
Test Env Run Stability
Inform the result Epic
Run Smoke
Tests
Impact of Change
What happens if the Product Owner gets to add just a small amount of work, or
swap work in and out during the Sprint?
Designated Responder
Scrum Team D. R.
“Product Backlog work” “P1 Bugs”
(items from the product (emergency requests
backlog that the team has that needs to be
committed to do) responded to quickly)
Sprint Review
Sprint Review
Sprint Retrospective
What is it?
– 1-2 hour meeting following each Sprint Demo
– Attended by Product Owner, Team and ScrumMaster
– Usually a neutral person will be invited in to facilitate
– Presents what’s working and what could work better
Why does the Retrospective matter?
– Accelerates visibility
– Accelerates action to improve
Retrospectives
– Steps
Set the stage
Gather data
Generate Insight
Decide what to do
Close the Retropective
- Plus / Delta
- Helped, Hindered and Hypothesis
- Return on Time Invested (ROTI)
- Appreciations
Release Planning
Release planning
90 points
120 points
100 points
Team’s velocity is
~105 points per
Sprint
This is 620 points
Therefore, in 6 of Product Backlog
Sprints, the team
should be able to
complete 6 x 105
= 630 points worth of
Product Backlog
Module 6:
Using Scrum for
Multi-Location Development
Team Space
Co located Teams
– Caves and Common
– Osmotic Communication
– Tacit Knowledge
Distributed Teams
– Videoconferencing
– Web based meeting facilitators
– Survey applications
– Instant messaging (IM) and VoIP
– Presence based applications
– Interactive whiteboards
– Collaboration – Jean Tabaka • Keep on track
Maintain a metaphor • Keep on time
• Keep track of who is on the call
Apply frequent communications • Keep the decisions flowing
Intensify facilitation • Keep the answers coming
• Keep it fair
Collaboration practices for conference calls • Keep it facilitated
• Keep it documented
Scrum of Scrums
Scrum Advantages
Scrum Disadvantages
It’s hard!
Makes all dysfunction visible
– Scrum doesn’t fix anything. The team has to do it
– Feels like things are worse at the beginning
Bad products will be delivered sooner, and doomed projects will fail faster
High risk of turnover
– Some people will refuse to stay on a Scrum team
– Some people will refuse to stay if Scrum is abandoned
Partial adoption may be worse than none at all
If adoption fails, time will have been wasted, and some people may leave
Reference documents
Agile Trainings
https://w3-connections.ibm.com/wikis/home?lang=en#!/wiki/W9d84733e3267_45
65_a7b4_7ff0f9177fa5/page/Trainings
Agile Books
https://w3-connections.ibm.com/wikis/home?lang=en#!/wiki/W9d84733e3267_45
65_a7b4_7ff0f9177fa5/page/Agile Books
Agile Survey records
http://www.ambysoft.com/surveys/
Thank You!