adopting scrum

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

Post on 17-Oct-2014

10.124 views

Category:

Technology


0 download

DESCRIPTION

Adopting Scrum

TRANSCRIPT

Page 1: Adopting Scrum

Agile Software Development:Adopting SCRUM

© SCRUMguideswww.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

Page 2: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides2

Who We Are?

Ukrainian Agile communitywww.agileukraine.org

SCRUM trainings and coachingwww.scrumguides.com

SCRUM Certifications (CSM)www.scrum.com.ua

Page 3: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides3

Our Ground Rules: Can we all agree on this please?

No Laptopsyes we know how hard it is … ☺

Cell phones on silent modeif you need to talk, please leave the class for a whileBe active, participateuse our knowledge and your time to maximize your returns

Don’t interrupt each otherone dialog per time

Learn by asking questionswe promise to address all your questions

Thank You!

Page 4: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides5

What’s 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? :)

Page 5: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides7

Agenda

Why AgileWhat is SCRUMHow to adopt Agile with SCRUMQ/A

Page 6: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides9

How long are you in the business?

Page 7: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides10

30 years ago (in the 70s)…

To know binary code, assembler languagesTo solve math tasks…

To look smart

Page 8: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides11

10-15 years ago (in the 90s)…

To be good at documenting requirementsTo 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

Page 9: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides12

Today

To make quick and regular releases of software that solves business challengesTo be able to adapt to ever-changing business context30 day is too long now

To be dynamic and flexible

Page 10: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides13

It is only going faster…

Competition on the software market is growingBusiness needs of the clients are becoming more and more complexTheir expectations of the products’ and services’ qualities are expanding

Not everyone survives. How can we?

Page 11: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides15

Iterative and Incremental Approach: Shortening Time-to-Market

From Michael Vizdos’s “CSM presentation”

Page 12: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides16

Iterative and Incremental Approach: Reducing Risks of Delays

From Henrik Kniberg’s “Scrum Intro”

Page 13: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides17

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

Page 14: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides19

The Agile Manifesto

Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding 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/

Page 15: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides21

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

Page 16: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides25

Agenda

Why AgileWhat is SCRUMHow to adopt Agile with SCRUMQ/A

Page 17: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides26

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 (MikeCohn).

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).

Page 18: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides27

Jeff Sutherland– Initial scrums at Easel Corp in 1993– IDX and 500+ people doing SCRUM

Ken Schwaber– ADM– SCRUM presented 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

Page 19: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides28

Popularity of SCRUMIt has been used by:

IntuitNielsen MediaFirst American Real EstateHigh Moon StudiosIpswitchJohn DeereLexis NexisSabreSalesforce.comTime WarnerTurner BroadcastingOce

MicrosoftYahoo!GoogleElectronic ArtsHigh Moon StudiosLockheed MartinPhilipsSiemensNokiaCapital OneBBC

Taken from Mike Cohn’s presentation on SCRUM

Page 20: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides29

Applicability of SCRUMIt has been used for:

FDA-approved, life-critical systemsSatellite-control softwareWebsitesHandheld softwareMobile phonesNetwork switching applicationsISV applicationsSome of the largest applications in use

Commercial softwareIn-house developmentContract developmentFixed-price projectsFinancial applicationsISO 9001-certified applicationsEmbedded systems24x7 systems with 99.999% uptime

requirementsVideo game development

Taken from Mike Cohn’s presentation on SCRUM

Page 21: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides30

CSMs:– 12’000 CSMs by Q1 of 2007– Increase in 1’500 CSMs each quarter– 221 CSM class is planned already for 2008

Popularity of SCRUM vs. XP, DSDM2nd Annual “State of Agile Development” survey 2007:

– SCRUM – 37%, – Hybrid XP/SCRUM- 23%, – XP = 12%, – DSDM – 5%

Some Worldwide Statistics

Page 22: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides31

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. Just 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

Page 23: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides32

What is SCRUM?

An Agile Project Management frameworkA wrapper for existing engineering practicesA team-based approach (focus on self-organizing teams)Handles conflicting interests and needsImproves communication and cooperationEarly detection and removal of obstaclesIterative feature-driven planning activitiesProduces potentially shippable functionality at each iteration of 2-4 weeksDisciplined approach

Page 24: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides33

SCRUM in Details

This part uncovers all SCRUM concepts in details:

RolesArtifactsMetricsCeremonies

Page 25: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides34

Terminology used in SCRUM

ScrumMaster (SM) = Process OwnerProduct Owner (PO) = Customer Rep.Sprint = IterationProduct Backlog (PB) = Inventory of RequirementsSprint Backlog (SP) = Task List

Page 26: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides35

The Framework

Page 27: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides38

Agenda

Why AgileWhat is SCRUMHow to adopt Agile with SCRUMQ/A

Page 28: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides39

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

Page 29: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides40

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

Page 30: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides41

(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 “business” need to know?

Page 31: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides42

(2) Build a Product BacklogWork 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).

That’s 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.

Page 32: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides43

Example of a Product Backlog

Sprint Feature Comments Estimate

sprint i User can see the list of categories and productsEach 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 basketBasket 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 …

Page 33: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides44

Granularity of Planning Details

From Henrik Kniberg’s “Scrum Introduction”

Page 34: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides45

(3) Define “Done” criteriaWhat do you mean when you say you’re done?

It is very important for the team and the client to agree upon what “done” actually means.As the team’s maturity grows the “doneness” expands.

What “done” means to you? Does you “done” mean “live”?What isthe shortest time within which you can “do” a meaningful minimal set of stories?

Page 35: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides46

(4) Build the Sprint Backlog

Feature Tasks Responsible Mon Tue Wed Thu FriUser 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 4User 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 1Import 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 2Refactor Product class AK 3 2

SUM 44 34 32 27 19

Remained Estimate (hours)

Page 36: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides47

(5) Sprint!Daily Scrums - synchronization points

From Henrik Kniberg’s“What is SCRUM” http://crisp.se/

Page 37: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides48

(5) Sprint! Team’s visual tool

From Mike Cohn’s “Task Boards”, http://www.mountaingoatsoftware.com/

Page 38: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides50

(5) Sprint!

Sprint Burndown

44 4336

2721

1815

115

00

10

20

30

40

50

1 2 3 4 5 6 7 8 9 10

Days

Estim

ates

Burndown chart is a very simple and powerful visualization tool you can use in your progress. Daily it tells you where you are:

Page 39: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides51

(5) Sprint! The Task Board after the i-th meeting …

From Henrik Kniberg’s “What is SCRUM”http://crisp.se/

Page 40: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides52

(5) Sprint! A word on visibility

Sprint Burndown

22

128

3

4441 41 39 39

05

101520253035404550

Mon Tue Wed Thu Fri

Days

Estim

ates

Page 41: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides53

(6) Learn and Adapt

• Sprint review• demo working software

• get feedback

• Sprint retrospective• what went well

• what didn’t

• what will the team do differently next sprint

• Cook until you’re done :)

Page 42: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides54

Now. What’s 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?

Page 43: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides55

Three things that can derail

Agile methods are easy to misunderstandThe methods exist in order to enable the philosophyAgile practices are like any other practices; they’re learned through example, application, and training

It’s easy to think you’re doing Agile right, and be wrongWithout direction, a team told to throw away its waterfall method will simply devolve into "code and fix."

Agile methods make value visibleCan that be a bad thing?If someone in an Agile Project isn’t contributing, the fact will become obvious

Taken from presentation of Serhiy Yevtushenkodone on one of the Gathering of Agile Ukraine

Page 44: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides56

A sure way to get it wrong

"Big bang“, massive, world-shaking change without experimentationExpecting 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 isn’t 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 Yevtushenkodone on one of the Gathering of Agile Ukraine

Page 45: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides57

We can help you adopt SCRUM

Order a two-day training for your team:http://www.scrumguides.com/

Page 46: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides58

We Welcome Everyone to join our Discussions http://groups.google.com/group/agile-ukraine/

Page 47: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides59

Questions?

Page 48: Adopting Scrum

Agile Software Development: Adopting SCRUM ©SCRUMguides60

Thank you!