You are on page 1of 48

Agile Software Development:

Adopting SCRUM
SCRUMguides
www.scrumguides.com
Alexey Krivitsky, Tim Yevgrashyn
A short version of a two-day class
Details are available at
www.scrumguides.com
Lviv, 8 Feb 2008
Agile Software Development:
Adopting SCRUM
SCRUMguides
2
Who We Are?
Ukrainian Agile community
www.agileukraine.org
SCRUM trainings and coaching
www.scrumguides.com
SCRUM Certifications (CSM)
www.scrum.com.ua
Agile Software Development:
Adopting SCRUM
SCRUMguides
3
Our Ground Rules:
Can we all agree on this please?
No Laptops
yes we know how hard it is
Cell phones on silent mode
if you need to talk, please leave the class for a while
Be active, participate
use our knowledge and your time to maximize your returns
Dont interrupt each other
one dialog per time
Learn by asking questions
we promise to address all your questions
Thank You!
Agile Software Development:
Adopting SCRUM
SCRUMguides
5
Whats in it for you?
Who of you has been using SCRUM?
Who of you is going to use SCRUM?
Who of you is never going to use it? :)
Agile Software Development:
Adopting SCRUM
SCRUMguides
7
Agenda
Why Agile
What is SCRUM
How to adopt Agile with SCRUM
Q/A
Agile Software Development:
Adopting SCRUM
SCRUMguides
9
How long are you in the business?
Agile Software Development:
Adopting SCRUM
SCRUMguides
10
30 years ago (in the 70s)
To know binary code, assembler languages
To solve math tasks

To look smart
Agile Software Development:
Adopting SCRUM
SCRUMguides
11
10-15 years ago (in the 90s)
To be good at documenting requirements
To use templates (like the ones from RUP)
To try to predict the future by drawing Gantt
charts, project work-breakdown structures
(WBS)
To model and talk UML
To look stable
Agile Software Development:
Adopting SCRUM
SCRUMguides
12
Today
To make quick and regular releases
of software that solves business challenges
To be able to adapt to ever-changing
business context
30 day is too long now
To be dynamic and flexible
Agile Software Development:
Adopting SCRUM
SCRUMguides
13
It is only going faster
Competition on the software market is
growing
Business needs of the clients are becoming
more and more complex
Their expectations of the products and
services qualities are expanding
Not everyone survives.
How can we?
Agile Software Development:
Adopting SCRUM
SCRUMguides
15
Iterative and Incremental Approach:
Shortening Time-to-Market
From Michael Vizdoss CSM presentation
Agile Software Development:
Adopting SCRUM
SCRUMguides
16
Iterative and Incremental Approach:
Reducing Risks of Delays
From Henrik Knibergs Scrum Intro
Agile Software Development:
Adopting SCRUM
SCRUMguides
17
Sequential vs. overlapping
development
Rather than doing all of one
thing at a time...
...Scrum teams do a little of
everything all the time
Requirements Design Code Test
Agile Software Development:
Adopting SCRUM
SCRUMguides
19
The Agile Manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right,
we value the items on the left more.
http://agilemanifesto.org/
See also the Declaration of Interdependence, http://pmdoi.org/
Agile Software Development:
Adopting SCRUM
SCRUMguides
21
In another words
More focused product development through tight cooperation
with the clients
Better products
Ongoing project steering throughout the project lifecycle
Happier clients
Self-managing teams that are empowered to solve the project
challenges
Greater teams
Agile Software Development:
Adopting SCRUM
SCRUMguides
25
Agenda
Why Agile
What is SCRUM
How to adopt Agile with SCRUM
Q/A
Agile Software Development:
Adopting SCRUM
SCRUMguides
26
SCRUM in 100 words
SCRUM is a set of rules that are based on the Agile principles
and are designed to assist the customers and the team to build
constructive relationship.
SCRUM is an agile process that allows us to focus on
delivering the highest business value in the shortest time (Mike
Cohn).
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 (from SCRUM Framework).
SCRUM is about common sense (Ken Schwaber).
Agile Software Development:
Adopting SCRUM
SCRUMguides
27
J eff Sutherland
Initial scrums at Easel Corp in 1993
IDX and 500+ people doing SCRUM
Ken Schwaber
ADM
SCRUMpresented at OOPSLA 96
with Sutherland
Author of three books on SCRUM
Mike Beedle
SCRUM patterns in PLOPD4
Ken Schwaber and Mike Cohn
Co-founded SCRUM Alliance in 2002,
initially within the Agile Alliance
Origins of SCRUM
Agile Software Development:
Adopting SCRUM
SCRUMguides
28
Popularity of SCRUM
It has been used by:
Intuit
Nielsen Media
First American Real Estate
High Moon Studios
Ipswitch
J ohn Deere
Lexis Nexis
Sabre
Salesforce.com
Time Warner
Turner Broadcasting
Oce
Microsoft
Yahoo!
Google
Electronic Arts
High Moon Studios
Lockheed Martin
Philips
Siemens
Nokia
Capital One
BBC
Taken from Mike Cohns presentation on SCRUM
Agile Software Development:
Adopting SCRUM
SCRUMguides
29
Applicability of SCRUM
It has been used for:
FDA-approved, life-critical systems
Satellite-control software
Websites
Handheld software
Mobile phones
Network switching applications
ISV applications
Some of the largest applications in use
Commercial software
In-house development
Contract development
Fixed-price projects
Financial applications
ISO 9001-certified applications
Embedded systems
24x7 systems with 99.999%uptime
requirements
Video game development
Taken from Mike Cohns presentation on SCRUM
Agile Software Development:
Adopting SCRUM
SCRUMguides
30
CSMs:
12000 CSMs by Q1 of 2007
Increase in 1500 CSMs each quarter
221 CSM class is planned already for 2008
Popularity of SCRUM vs. XP, DSDM
2
nd
Annual State of Agile Developmentsurvey 2007:
SCRUM 37%,
Hybrid XP/SCRUM- 23%,
XP = 12%,
DSDM 5%
Some Worldwide Statistics
Agile Software Development:
Adopting SCRUM
SCRUMguides
31
SCRUM evangelists believe that the problem
we face has nothing to do with process and
technology, but with people.
SCRUM and Agile are based on the
hypothesis that there is no meta-solution for
software development. J ust a framework
within which we will inspect and adapt.
This is very frustrating to those looking for
procedures and final answers
SCRUM is not a Silver Bullet
Agile Software Development:
Adopting SCRUM
SCRUMguides
32
What is SCRUM?
An Agile Project Management framework
A wrapper for existing engineering practices
A team-based approach (focus on self-organizing teams)
Handles conflicting interests and needs
Improves communication and cooperation
Early detection and removal of obstacles
Iterative feature-driven planning activities
Produces potentially shippable functionality at each iteration of
2-4 weeks
Disciplined approach
Agile Software Development:
Adopting SCRUM
SCRUMguides
33
SCRUM in Details
This part uncovers all SCRUM concepts in details:
Roles
Artifacts
Metrics
Ceremonies
Agile Software Development:
Adopting SCRUM
SCRUMguides
34
Terminology used in SCRUM
ScrumMaster (SM) = Process Owner
Product Owner (PO) = Customer Rep.
Sprint = Iteration
Product Backlog (PB) = Inventory of
Requirements
Sprint Backlog (SP) = Task List
Agile Software Development:
Adopting SCRUM
SCRUMguides
35
The Framework
Agile Software Development:
Adopting SCRUM
SCRUMguides
38
Agenda
Why Agile
What is SCRUM
How to adopt Agile with SCRUM
Q/A
Agile Software Development:
Adopting SCRUM
SCRUMguides
39
What do we want to achieve?
Adopt agile in the project?
Meet the project goals effectively!
Thanks to Askhat Urazbaev from Agile Russia for this clear slide
Agile Software Development:
Adopting SCRUM
SCRUMguides
40
Steps to adopt SCRUM
1. Find Product Owner
2. Build Product Backlog
3. Define DONE criteria
4. Build Sprint Backlog
5. Sprint!
6. Learn and adapt
Agile Software Development:
Adopting SCRUM
SCRUMguides
41
(1) Find a Product Owner
There should be only one PO
The teams should support the
decision makers with all possible
means of information that cam
help them to make right decisions.
So what does businessneed to
know?
Agile Software Development:
Adopting SCRUM
SCRUMguides
42
(2) Build a Product Backlog
Work with User Stories
Our plans are based on users needs of systems that we are
building.
We know the needs are likely to be changing as we will be
proceeding.
It will add risks to our projects. The later the change occur the
higher the risks will be (more to rework).
Thats why we want the changes to occur
as early as possible, and as much as needed!
Write the users needs in a form:
As a <user> I can <do> so that <value>.
We have a dedicated module on user stories and estimates.
Agile Software Development:
Adopting SCRUM
SCRUMguides
43
Example of a Product Backlog
Spri nt Feature Comments Esti mate
sprint i User can see the list of categories and products
Each product has a thumbnail,
name, description and price 5
User can see which products are out of stock 2
User can put any in-stock product item to the basket Check for available quantity 3
User can see which products are in his basket
Basket content is preserved
between sessions 3
sprint (i+1) User can delete a product item from the basket 1
User can buy all products from his basket 5
User can pay with invoice Works only for local customers 8

sprint n
Agile Software Development:
Adopting SCRUM
SCRUMguides
44
Granularity of Planning Details
From Henrik Knibergs Scrum Introduction
Agile Software Development:
Adopting SCRUM
SCRUMguides
45
(3) Define Done criteria
What do you mean when you say youre done?
It is very important for the team and the client to agree upon
what doneactually
means.
As the teams maturity grows
the donenessexpands.
What done means to you?
Does you done mean live?
What is
the shortest time within which
you can do a meaningful minimal
set of stories?
Agile Software Development:
Adopting SCRUM
SCRUMguides
46
(4) Build the Sprint Backlog
Feature Tasks Responsi bl e Mon Tue Wed Thu Fri
User can see the list of
categories and products Implement layout VM 8 4 3 0 0
Design DB TY 16 12 10 8 4
Implement API TY 6 4 4 4 2
Implement unit-tests TY 2 2 2 2 2
Import data from Xserver AK 4 4 4 4 4
User can see which
products are out of stock Implement layout VM 3 3 1 1 1
Add field to products table TY 1 1 1 1 1
Import data from Xserver TY 1 1 1 2 2
Implement API AK 2 1 1 1 1
Implement unit-tests AK 1 2 2 2 2
Refactor Product class AK 3 2
SUM 44 34 32 27 19
Remai ned Esti mate (hours)
Agile Software Development:
Adopting SCRUM
SCRUMguides
47
(5) Sprint!
Daily Scrums - synchronization points
From Henrik Knibergs
What is SCRUMhttp://crisp.se/
Agile Software Development:
Adopting SCRUM
SCRUMguides
48
(5) Sprint!
Teams visual tool
From Mike Cohns Task Boards,
http://www.mountaingoatsoftware.com/
Agile Software Development:
Adopting SCRUM
SCRUMguides
50
(5) Sprint!
Sprint Burndown
44
43
36
27
21
18
15
11
5
0 0
10
20
30
40
50
1 2 3 4 5 6 7 8 9 10
Days
E
s
t
i
m
a
t
e
s
Burndown chart is a very simple and powerful visualization tool
you can use in your progress. Daily it tells you where you are:
Agile Software Development:
Adopting SCRUM
SCRUMguides
51
(5) Sprint!
The Task Board after the i-th meeting
From Henrik Knibergs What is SCRUM
http://crisp.se/
Agile Software Development:
Adopting SCRUM
SCRUMguides
52
(5) Sprint!
A word on visibility
Spri nt Burndown
22
12
8
3
44
41
41
39 39
0
5
10
15
20
25
30
35
40
45
50
Mon Tue Wed Thu Fri
Days
E
s
t
i
m
a
t
e
s
Agile Software Development:
Adopting SCRUM
SCRUMguides
53
(6) Learn and Adapt
Sprint review
demo working software
get feedback
Sprint retrospective
what went well
what didnt
what will the team do differently next sprint
Cook until youre done :)
Agile Software Development:
Adopting SCRUM
SCRUMguides
54
Now. Whats in it for you? :)
Who of you has been using SCRUM?
Who of you is going to use SCRUM?
Who of you is never going to use it?
Agile Software Development:
Adopting SCRUM
SCRUMguides
55
Three things that can derail
Agile methods are easy to misunderstand
The methods exist in order to enable the philosophy
Agile practices are like any other practices; theyre learned through
example, application, and training
Its easy to think youre doing Agile right, and be wrong
Without direction, a team told to throw away its waterfall method will
simply devolve into "code and fix."
Agile methods make value visible
Can that be a bad thing?
If someone in an Agile Project isnt contributing, the fact will become
obvious
Taken from presentation of Serhiy Yevtushenko
done on one of the Gathering of Agile Ukraine
Agile Software Development:
Adopting SCRUM
SCRUMguides
56
A sure way to get it wrong
"Big bang, massive, world-shaking change without experimentation
Expecting to have your cake and eat it too:
All features, on time, on budget, on schedule, re-gardless of how realistic that schedule is
Iterative development without automated tests
"Iterations" that deliver incomplete work products
For instance, software that isnt ready to release to the customer
Agile development while keeping the developers and the testers separate
Testing becomes an afterthought a verification activity
Implementation of Agile techniques without a belief in the core philosophies
Responding to change and not planning everything up front
Taken from presentation of Serhiy Yevtushenko
done on one of the Gathering of Agile Ukraine
Agile Software Development:
Adopting SCRUM
SCRUMguides
57
We can help you adopt SCRUM
Order a two-day training for your team:
http://www.scrumguides.com/
Agile Software Development:
Adopting SCRUM
SCRUMguides
58
We Welcome Everyone to join our Discussions
http://groups.google.com/group/agile-ukraine/
Agile Software Development:
Adopting SCRUM
SCRUMguides
59
Questions?
Agile Software Development:
Adopting SCRUM
SCRUMguides
60
Thank you!