You are on page 1of 75

Agile Software Development with SCRUM

www.scrumguides.com

10 January 2009
Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Extra SCRUM topics

Concepts of Agile Planning

We will be having 10-minute breaks each 60-90 minutes.


Agile Software Development with
2 SCRUM ©SCRUMguides
About myself

Alexey Krivitsky
Software developer, Agile coach

Certified ScrumMaster
Certified Scrum Practitioner
http://www.linkedin.com/in/alexeykrivitsky
email: alexey@scrumguides.com
skype: alexeykrv
icq: 436-471-64
gsm: +380 50 358 92 12

Currently building up a training center


www.scrumguides.com

Agile Software Development with


3 SCRUM ©SCRUMguides
Our presence

z Ukrainian Agile community


www.agileukraine.org

Join our Google discussion group

z Ukrainian SCRUM portal


www.scrum.com.ua

Agile Software Development with


4 SCRUM ©SCRUMguides
Today’s Agenda

; Opening: program overview, knowing each other

… Understanding Agile and SCRUM

… SCRUM simulation

… Extra SCRUM topics

… Concepts of Agile Planning

Agile Software Development with


5 SCRUM ©SCRUMguides
Exercise “Continuum”

Agile Software Development with


6 SCRUM ©SCRUMguides
Project successes/failures

z Have you been on a successful project?

z Have you been on an unsuccessful project?

Agile Software Development with


8 SCRUM ©SCRUMguides
Agile might help you, let’s see…

z Understanding Agile and SCRUM

Agile Software Development with


9 SCRUM ©SCRUMguides
The two approaches, two cultures

Predictive approach
Sees projects as predictive processes which results can be
foreseen (predicted) with acceptable probability after
reasonable planning and study efforts spent.

Adaptive approach
Questions predictability of projects due to their built-in
complexity. It puts stress on steering based on observations.

Agile Software Development with


10 SCRUM ©SCRUMguides
The predictive approach
Release

Design spec

Requirements spec

Order

C
D
Actual
P need
P

R
Agile Software Development with
11 SCRUM ©SCRUMguides
The adaptive approach

When in the project we 100% know if we


on/off the track in terms of the time, scope,
costs…?
Vision

Actual need

Agile Software Development with


12 SCRUM ©SCRUMguides
The two approaches to project management

z Predictive approach
– Heavy-weight;
– Process-oriented;
– Plan-driven;
– “Waterfall”.

z Adaptive approach
– Light-weight;
– People-oriented;
– Value-driven;
– “Agile”.

Agile Software Development with


13 SCRUM ©SCRUMguides
Order and Chaos

Agile Software Development with


14 SCRUM ©SCRUMguides
The two approaches on the time scale

Which advantages/disadvantages of
the approaches you see? Agile Software Development with
15 SCRUM ©SCRUMguides
Agile and SCRUM

z SCRUM – one of the Agile approaches.

It is a project framework, or a set of


recommendations by following which you can
increase the chance of successful ending of
your projects.

Agile Software Development with


16 SCRUM ©SCRUMguides
Agile Manifesto

We are uncovering better ways of developing


software by doing it and helping others do it.
Through this work we have come to value:

z Individuals and interactions over processes and tools


z Working software over comprehensive documentation
z Customer collaboration over contract negotiation
z 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.
Agile Software Development with
17 SCRUM ©SCRUMguides
Main aspects of Agile

Agile Software Development with


19 SCRUM ©SCRUMguides
The main aspects of Agile

… Team Work

… Prioritization

… Short cycles

… Learn and Adapt

Agile Software Development with


20 SCRUM ©SCRUMguides
The main aspects of Agile: Team work

z What is a team?

z How to make good team?

Agile Software Development with


21 SCRUM ©SCRUMguides
Team work (cont.)

Exercise “an airplane factory”.

Agile Software Development with


22 SCRUM ©SCRUMguides
Team work (cont.)

z What is a team?

z Are you in a good team?

z How to become a greater team?

z How to evaluate and motivate people’s work


in a team?

Agile Software Development with


23 SCRUM ©SCRUMguides
Is here such a thing as “team work”?
Release

Design spec

Requirements spec

Order

C
D
Actual
P need
P

R
Agile Software Development with
24 SCRUM ©SCRUMguides
A SCRUM team is

z A cross-functional group of people


(5-9 members) responsible for managing
itself to develop the product.

Agile Software Development with


25 SCRUM ©SCRUMguides
The main aspects of Agile

; Team Work

… Prioritization

… Short cycles

… Learn and Adapt

Agile Software Development with


26 SCRUM ©SCRUMguides
Prioritization and Traditional approaches

z An alternative tool to backlogs are


requirement specifications.

Agile Software Development with


27 SCRUM ©SCRUMguides
“Gimme all requirements, or ….”

Agile Software Development with


28 SCRUM ©SCRUMguides
As a result …

z As a result all requirements are the


“top priority”.

z Which is basically the same as not having


the priorities at all.

Agile Software Development with


29 SCRUM ©SCRUMguides
And as a result …

Agile Software Development with


30 SCRUM ©SCRUMguides
What does it mean to us?

z As a consequence: we can cut costs and


duration of our projects in 2/3!

z Does it mean we (the teams) will earn less


money?

Agile Software Development with


31 SCRUM ©SCRUMguides
What about your projects?

z Think about your current (recent) projects.

z List 5-10 features that could have been


avoided or simplified by keeping the product
as good as it was.

z What would be your % of rarely/never used


features?

Agile Software Development with


32 SCRUM ©SCRUMguides
Prioritize (cont.)

YAGNI - “You ain’t gonna need it”.


A strategy of postponing decisions until the last
possible moment.

Product backlog
Just-in-time requirements management tool.

Agile Software Development with


34 SCRUM ©SCRUMguides
The “menu” (Agile) approach

z Product backlog is the project’s menu.

z “Servants” help to make better decisions.

Agile Software Development with


35 SCRUM ©SCRUMguides
What saves our projects?

“The features that we manage to de-scope are


the savers of our projects” © Kent Beck

Agile Software Development with


36 SCRUM ©SCRUMguides
The main aspects of Agile

; Team Work

; Prioritization

… Short cycles

… Learn and Adapt

Agile Software Development with


37 SCRUM ©SCRUMguides
The main aspects of Agile: Short Cycles

The shorter the cycle the more efficient the process

1. We have more time to “play” with the product that


we are developing;

2. The sooner we can catch a defect the easier it is to


fix it;

3. The shorter the cycle (the smaller a batch of work)


the less need we have in creating intermediate
artifacts.
Agile Software Development with
38 SCRUM ©SCRUMguides
Short Cycles (cont.)

“Fail fast” (с) Ken Schwaber

Agile Software Development with


39 SCRUM ©SCRUMguides
Iterative and Incremental approach

- How do you eat an elephant?


- One bite at a time!

Agile Software Development with


40 SCRUM ©SCRUMguides
Shorter Cycles = Faster Feedback

1. Daily meetings
2. Code Reviews
3. Release to end-users
4. Iteration reviews
5. Continuous integration
6. Feedback from (onsite) clients
7. Unit-testing
8. (Automated) acceptance testing
9. Pair programming

Agile Software Development with


41 SCRUM ©SCRUMguides
Shorter Cycles = Faster Feedback (ordered)

z Pair programming (immediate feedback)


z Unit-testing (5-10 minutes)
z Continuous integration (hourly)
z Feedback from (onsite) clients (daily)
z Daily meetings (daily)
z Code Reviews (some days)
z (Automated) acceptance testing (some days)
z Iteration reviews (each second week)
z Release to end-users (some weeks-months)

Agile Software Development with


42 SCRUM ©SCRUMguides
The main aspects of Agile

; Team Work

; Prioritization

; Short cycles

… Learn and Adapt

Agile Software Development with


43 SCRUM ©SCRUMguides
Exercise “Ball Points”

Agile Software Development with


44 SCRUM ©SCRUMguides
The main aspects of Agile: Learn and Adapt

z As we work we learn lots of new things about


the product being developed, technologies
being used, our clients, ourselves.

z By incorporating this information into daily


work we can become better day by day.

Agile Software Development with


45 SCRUM ©SCRUMguides
Visibility tools

In order to evolve the way we work we need to


keep everything visible to ourselves and our
clients

Tools that might help:


z Sprint Burndown chart
z Task boards
z Wikis

Agile Software Development with


46 SCRUM ©SCRUMguides
The main aspects of Agile

; Team Work

; Prioritization

; Short cycles

; Learn and Adapt

Agile Software Development with


47 SCRUM ©SCRUMguides
Would SCRUM help in your case

z Think about your current (recent) project.

z List 3-5 main things that are (were)


preventing it from being more successful.

z Can SCRUM help to avoid them?


Can SCRUM make them visible earlier?
How can SCRUM help you solve them?

Agile Software Development with


48 SCRUM ©SCRUMguides
Today’s Agenda

; Opening: program overview, knowing each other

; Understanding Agile and SCRUM

… SCRUM simulation

… Extra SCRUM topics

… Concepts of Agile Planning

Agile Software Development with


49 SCRUM ©SCRUMguides
SCRUM in 59 minutes

Agile Software Development with


50 SCRUM ©SCRUMguides
Game structure

Planning
z Choose a product and your PO
z Help your PO to build up a PB
z Help your PO to prioritize the PB items
z Plan your first sprint

Sprinting
z Day one - 7 min
z Daily standup - 3 min
z Day two - 7 min
z Demonstration - 3 min (per a team)

Agile Software Development with


51 SCRUM ©SCRUMguides
Today’s Agenda

; Opening: program overview, knowing each other

; Understanding Agile and SCRUM

; SCRUM simulation

… Extra SCRUM topics

… Concepts of Agile Planning

We will be having 10-minute breaks each 60-90


Agile minutes.
Software Development with
52 SCRUM ©SCRUMguides
SCRUM recap

z Roles
– The Team
– ScrumMaster
– Product Owner

z Artifacts
– Product Backlog
– Sprint Backlog
– Sprint/Release Burndown Chart

z Meetings (ceremonies)
– Sprint Planning
– Daily Scrum (“Stand-Up”)
– Sprint Review (Demo)
– Retrospective
Agile Software Development with
53 SCRUM ©SCRUMguides
Today’s Agenda

; Opening: program overview, knowing each other

; Understanding Agile and SCRUM

; SCRUM simulation

; Summary of SCRUM concepts

… Concepts of Agile Planning

Agile Software Development with


54 SCRUM ©SCRUMguides
Agile Planning

… Requirements in SCRUM

… Levels of Planning

… Project Steering

… Estimation Techniques
Agile Software Development with
55 SCRUM ©SCRUMguides
Requirements

z What are the requirements to requirements?

Agile Software Development with


56 SCRUM ©SCRUMguides
What is important is …

z That communications/negotiation happens


between the customer and the team.

z User stories help deferring the details till later


z They talk problems not solutions
z They fit nicely as your Product Backlog items

Agile Software Development with


57 SCRUM ©SCRUMguides
User Story is…

User stories are simple, clear, brief


descriptions of functionality that will be
valuable to either a user or purchaser
of a product

Expressed in a form similar to:

As a <user> I can <do> so that <value>

Agile Software Development with


58 SCRUM ©SCRUMguides
Samples – Travel reservation system

As a vacation planner, I
As a user, I can reserve a
can see photos of the
hotel room.
hotels.

As a user, I can restrict


As a user, I can cancel a
searches so that I only see
reservation.
hotels with available rooms.

Agile Software Development with


59
59 SCRUM ©SCRUMguides
Details added in smaller substories

As a premium site member,


I can cancel a reservation
up to the last minute.

As a non-premium
As a user, I can member, I can cancel up to
cancel a 24 hours in advance.
reservation.
As a site visitor, I am
emailed a confirmation of
any cancelled reservation.

Agile Software Development with


60
60 SCRUM ©SCRUMguides
Details added as tests

z High level tests are added to the story


– Can be used to express additional details and expectations

As a user, I can cancel a reservation.

• Verify that a premium member can cancel the same day


without a fee.
• Verify that a non-premium member is charged 10% for a
same-day cancellation.
• Verify that an email confirmation is sent.
• Verify that the hotel is notified of any cancellation.
• Figure out what to do if the user’s card is expired.

Agile Software Development with


61
61 SCRUM ©SCRUMguides
From Mike Cohn’s “Agile Estimating and Planning”

Agile Software Development with


62 SCRUM ©SCRUMguides
Agile Planning

; Requirements in SCRUM

… Levels of Planning

… Project Steering

… Estimation Techniques Agile Software Development with


64 SCRUM ©SCRUMguides
The two levels of planning

z Strategic level / Story level / product backlog


– It is all about value. Hence the customers are at
better position to control this level.
– It is the menu of a restaurant.

z Tactical level / Task level / spring backlog


– The tasks are defined in technical jargon. So the
teams control control this level.
– It is the kitchen of a restaurant. Do you really want
to look inside? :)

Agile Software Development with


65 SCRUM ©SCRUMguides
From Mike Cohn’s “Planning Agile Projects”

Agile Software Development with


66 SCRUM ©SCRUMguides
Agile Planning

; Requirements in SCRUM

; Levels of Planning

… Project Steering

… Estimation Techniques Agile Software Development with


68 SCRUM ©SCRUMguides
Steering your Projects

“Ready? Fire! Aim… Aim… Aim… Aim…”

© Kent Beck, Martin Fowler


“Planning eXtreme Programming”

Agile Software Development with


69 SCRUM ©SCRUMguides
There are four main parameters to planning

Agile Software Development with


70 SCRUM ©SCRUMguides
Visualizing the time-scope relationship

Release Burndown

2000
1800 1785
1600 1620
1400
Estimations

1200
1000
800
713
600
512
400
324
200 228 175
155
0
1 2 3 4 5 6 7 8
Sprints Agile Software Development with
71 SCRUM ©SCRUMguides
The Performance metric

Velocity – speed at which the team converts


pieces of requirements into a working
product during a single sprint.

Light and powerful metric.

Agile Software Development with


72 SCRUM ©SCRUMguides
From Mike Cohn’s “Agile Estimating and Planning”

Agile Software Development with


73 SCRUM ©SCRUMguides
Agile Planning

; Requirements in SCRUM

; Levels of Planning

; Project Steering

… Estimation Techniques
Agile Software Development with
74 SCRUM ©SCRUMguides
From Henrik Kniberg and Mike Cohn

A typical issue with estimations

Agile Software Development with


75 SCRUM ©SCRUMguides
Planning Poker. The Steps

z Each estimator is given a deck of cards (1,2,3,5,8…)


z A Product Owner reads a story
z Estimators are for clarifications until everyone is ready to
estimate
z Each estimator selects a card without showing it to the others
z By command cards are got turned over
z People with different estimates have discussions (limit with a
timer)
z The round repeats until estimates converge

Agile Software Development with


76 SCRUM ©SCRUMguides
SCRUM and you

z In your current (next) project which SCRUM


practices you think are the MUSTs?

z Which you find hard to do?


z Which you find impossible?
z Which you find unnecessary?

z Which can you start doing your next working


day?
Agile Software Development with
78 SCRUM ©SCRUMguides
Questions? Concerns? Any feedback?

Thank you!
Agile Software Development with
79 SCRUM ©SCRUMguides
My contacts

Alexey Krivitsky
Software developer, Agile coach

Certified ScrumMaster
Certified Scrum Practitioner
http://www.linkedin.com/in/alexeykrivitsky
email: alexey@scrumguides.com
skype: alexeykrv
icq: 436-471-64
gsm: +380 50 358 92 12

Currently building up a training center


www.scrumguides.com

Agile Software Development with


80 SCRUM ©SCRUMguides
Join our community!

z Ukrainian Agile community


www.agileukraine.org

Join our Google discussion group

z Ukrainian SCRUM portal


www.scrum.com.ua

Agile Software Development with


81 SCRUM ©SCRUMguides

You might also like