+ All Categories
Home > Technology > Agile Software Development With SCRUM

Agile Software Development With SCRUM

Date post: 08-Sep-2014
Category:
Upload: alexey-krivitsky
View: 13,227 times
Download: 4 times
Share this document with a friend
Description:
Materials from one-day training on Agile Software Development with SCRUM done by SCRUMguids.com in Kharkiv, UkraineJan 2009
Popular Tags:
75
Agile Software Development with SCRUM www.scrumguides.com 10 January 2009
Transcript
Page 1: Agile Software Development With SCRUM

Agile Software Development with SCRUM

www.scrumguides.com

10 January 2009

Page 2: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides2

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.

Page 3: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides33

About myself

Alexey Krivitsky

Software developer, Agile coach

Certified ScrumMasterCertified Scrum Practitioner

http://www.linkedin.com/in/alexeykrivitsky

email: [email protected]: alexeykrvicq: 436-471-64gsm: +380 50 358 92 12

Currently building up a training centerwww.scrumguides.com

Page 4: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides4

Our presence

Ukrainian Agile communitywww.agileukraine.org

Join our Google discussion group

Ukrainian SCRUM portalwww.scrum.com.ua

Page 5: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides5

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Extra SCRUM topics

Concepts of Agile Planning

Page 6: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides6

Exercise “Continuum”

Page 7: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides8

Project successes/failures

Have you been on a successful project?

Have you been on an unsuccessful project?

Page 8: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides9

Agile might help you, let’s see…

Understanding Agile and SCRUM

Page 9: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides10

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.

Page 10: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides1111

The predictive approach

Requirements spec

Design spec

Release

Order

CD

R

P P

Actualneed

Page 11: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides1212

The adaptive approach

C

Vision

Actual need

When in the project we 100% know if we on/off the track in terms of the time, scope, costs…?

Page 12: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides13

The two approaches to project management

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

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

Page 13: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides14

Order and Chaos

Page 14: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides15

The two approaches on the time scale

Which advantages/disadvantages of the approaches you see?

Page 15: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides16

Agile and SCRUM

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.

Page 16: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides17

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:

Individuals and interactions over processes and toolsWorking 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.

Page 17: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides19

Main aspects of Agile

Page 18: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides20

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Page 19: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides21

The main aspects of Agile: Team work

What is a team?

How to make good team?

Page 20: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides22

Team work (cont.)

Exercise “an airplane factory”.

Page 21: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides23

Team work (cont.)

What is a team?

Are you in a good team?

How to become a greater team?

How to evaluate and motivate people’s work in a team?

Page 22: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides2424

Is here such a thing as “team work”?

Requirements spec

Design spec

Release

Order

CD

R

P P

Actualneed

Page 23: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides25

A SCRUM team is

A cross-functional group of people (5-9 members) responsible for managing itself to develop the product.

Page 24: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides26

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Page 25: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides27

Prioritization and Traditional approaches

An alternative tool to backlogs are requirement specifications.

Page 26: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides28

“Gimme all requirements, or ….”

Page 27: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides29

As a result …

As a result all requirements are the “top priority”.

Which is basically the same as not having the priorities at all.

Page 28: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides30

And as a result …

Page 29: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides31

What does it mean to us?

As a consequence: we can cut costs and duration of our projects in 2/3!

Does it mean we (the teams) will earn less money?

Page 30: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides32

What about your projects?

Think about your current (recent) projects.

List 5-10 features that could have been avoided or simplified by keeping the product as good as it was.

What would be your % of rarely/never used features?

Page 31: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides34

Prioritize (cont.)

YAGNI - “You ain’t gonna need it”. A strategy of postponing decisions until the last possible moment.

Product backlogJust-in-time requirements management tool.

Page 32: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides35

The “menu” (Agile) approach

Product backlog is the project’s menu.

“Servants” help to make better decisions.

Page 33: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides36

What saves our projects?

“The features that we manage to de-scope are the savers of our projects” © Kent Beck

Page 34: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides37

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Page 35: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides38

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.

Page 36: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides39

Short Cycles (cont.)

“Fail fast” (с) Ken Schwaber

Page 37: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides40

Iterative and Incremental approach

- How do you eat an elephant?- One bite at a time!

Page 38: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides41

Shorter Cycles = Faster Feedback

1. Daily meetings2. Code Reviews3. Release to end-users4. Iteration reviews5. Continuous integration6. Feedback from (onsite) clients7. Unit-testing8. (Automated) acceptance testing9. Pair programming

Page 39: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides42

Shorter Cycles = Faster Feedback (ordered)

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

Page 40: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides43

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Page 41: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides44

Exercise “Ball Points”

Page 42: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides45

The main aspects of Agile: Learn and Adapt

As we work we learn lots of new things about the product being developed, technologies being used, our clients, ourselves.

By incorporating this information into daily work we can become better day by day.

Page 43: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides46

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:Sprint Burndown chartTask boardsWikis

Page 44: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides47

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Page 45: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides48

Would SCRUM help in your case

Think about your current (recent) project.

List 3-5 main things that are (were) preventing it from being more successful.

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

Page 46: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides49

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Extra SCRUM topics

Concepts of Agile Planning

Page 47: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides50

SCRUM in 59 minutes

Page 48: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides51

Game structure

PlanningChoose a product and your POHelp your PO to build up a PBHelp your PO to prioritize the PB itemsPlan your first sprint

SprintingDay one - 7 minDaily standup - 3 minDay two - 7 minDemonstration - 3 min (per a team)

Page 49: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides52

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.

Page 50: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides53

SCRUM recap

Roles– The Team– ScrumMaster– Product Owner

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

Meetings (ceremonies)– Sprint Planning– Daily Scrum (“Stand-Up”)– Sprint Review (Demo)– Retrospective

Page 51: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides54

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Summary of SCRUM concepts

Concepts of Agile Planning

Page 52: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides55

Agile Planning

Requirements in SCRUM

Levels of Planning

Project Steering

Estimation Techniques

Page 53: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides56

Requirements

What are the requirements to requirements?

Page 54: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides57

What is important is …

That communications/negotiation happens between the customer and the team.

User stories help deferring the details till laterThey talk problems not solutionsThey fit nicely as your Product Backlog items

Page 55: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides58

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>

Page 56: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides59

Samples – Travel reservation system

As a user, I can reserve a hotel room.

As a user, I can cancel a reservation.

As a vacation planner, I can see photos of the hotels.

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

59

Page 57: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides60

Details added in smaller substories

As a user, I can cancel a

reservation.As a site visitor, I am

emailed a confirmation of any cancelled reservation.

As a non-premium member, I can cancel up to

24 hours in advance.

As a premium site member, I can cancel a reservation

up to the last minute.

60

Page 58: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides61

Details added as tests

High level tests are added to the story– Can be used to express additional details and expectations

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

As a user, I can cancel a reservation.

61

Page 59: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides62

From Mike Cohn’s “Agile Estimating and Planning”

Page 60: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides64

Agile Planning

Requirements in SCRUM

Levels of Planning

Project Steering

Estimation Techniques

Page 61: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides65

The two levels of planning

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.

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? :)

Page 62: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides66

From Mike Cohn’s “Planning Agile Projects”

Page 63: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides68

Agile Planning

Requirements in SCRUM

Levels of Planning

Project Steering

Estimation Techniques

Page 64: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides69

Steering your Projects

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

© Kent Beck, Martin Fowler“Planning eXtreme Programming”

Page 65: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides70

There are four main parameters to planning

Page 66: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides71

Visualizing the time-scope relationship

Release Burndown

17851620

713512

324155 228 175

0200400600800

100012001400160018002000

1 2 3 4 5 6 7 8

Sprints

Estim

atio

ns

Page 67: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides72

The Performance metric

Velocity – speed at which the team converts pieces of requirements into a workingproduct during a single sprint.

Light and powerful metric.

Page 68: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides73

From Mike Cohn’s “Agile Estimating and Planning”

Page 69: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides74

Agile Planning

Requirements in SCRUM

Levels of Planning

Project Steering

Estimation Techniques

Page 70: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides75

A typical issue with estimationsFrom Henrik Kniberg and Mike Cohn

Page 71: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides76

Planning Poker. The Steps

Each estimator is given a deck of cards (1,2,3,5,8…)A Product Owner reads a storyEstimators are for clarifications until everyone is ready to estimateEach estimator selects a card without showing it to the othersBy command cards are got turned overPeople with different estimates have discussions (limit with a timer)The round repeats until estimates converge

Page 72: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides78

SCRUM and you

In your current (next) project which SCRUM practices you think are the MUSTs?

Which you find hard to do? Which you find impossible?Which you find unnecessary?

Which can you start doing your next working day?

Page 73: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides79

Questions? Concerns? Any feedback?

Thank you!

Page 74: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides8080

My contacts

Alexey Krivitsky

Software developer, Agile coach

Certified ScrumMasterCertified Scrum Practitioner

http://www.linkedin.com/in/alexeykrivitsky

email: [email protected]: alexeykrvicq: 436-471-64gsm: +380 50 358 92 12

Currently building up a training centerwww.scrumguides.com

Page 75: Agile Software Development With SCRUM

Agile Software Development with SCRUM ©SCRUMguides81

Join our community!

Ukrainian Agile communitywww.agileukraine.org

Join our Google discussion group

Ukrainian SCRUM portalwww.scrum.com.ua


Recommended