ScrumGuides training: Agile Software Development With Scrum

Post on 08-Sep-2014

11,124 views 3 download

Tags:

description

The slides from the ScrumGuides training on Agile Software Development with Scrum, day 1

transcript

Agile Software Development with SCRUM

www.scrumguides.com

13 February 2009

Agile Software Development with SCRUM ©SCRUMguides2

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Extra SCRUM topics

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

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: alexey@scrumguides.comskype: alexeykrvicq: 436-471-64gsm: +380 50 358 92 12

Currently building up a training centerwww.scrumguides.com

Agile Software Development with SCRUM ©SCRUMguides4

Our presence

Ukrainian Agile communitywww.agileukraine.org

Join our Google discussion group

Ukrainian SCRUM portalwww.scrum.com.ua

Agile Software Development with SCRUM ©SCRUMguides5

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Extra SCRUM topics

Agile Software Development with SCRUM ©SCRUMguides6

Exercise “Continuum”

Agile Software Development with SCRUM ©SCRUMguides8

Project successes/failures

Have you been on a successful project?

Have you been on an unsuccessful project?

Agile Software Development with SCRUM ©SCRUMguides9

Agile might help you, let’s see…

Understanding Agile and 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.

Agile Software Development with SCRUM ©SCRUMguides1111

The predictive approach

Requirements spec

Design spec

Release

Order

CD

R

P P

Actualneed

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…?

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

Agile Software Development with SCRUM ©SCRUMguides14

Order and Chaos

Agile Software Development with SCRUM ©SCRUMguides15

The cone of uncertaintySCRUM decreases the chaos by fixing the scope

Agile Software Development with SCRUM ©SCRUMguides16

The two approaches on the time scale

Which advantages/disadvantages of the approaches you see?

Agile Software Development with SCRUM ©SCRUMguides17

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.

Agile Software Development with SCRUM ©SCRUMguides18

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.

Agile Software Development with SCRUM ©SCRUMguides19

Principles of Agile Manifesto

Please see www.agilemanifesto.org for the twelve principles

Agile Software Development with SCRUM ©SCRUMguides20

Main aspects of Agile

Agile Software Development with SCRUM ©SCRUMguides21

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Agile Software Development with SCRUM ©SCRUMguides22

The main aspects of Agile: Team work

What is a team?

Agile Software Development with SCRUM ©SCRUMguides23

Team work (cont.)

Exercise “an airplane factory”.

Agile Software Development with SCRUM ©SCRUMguides24

Push vs. Pull systems

SCRUM is a pull system

Agile Software Development with SCRUM ©SCRUMguides25

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?

Agile Software Development with SCRUM ©SCRUMguides2626

Is here such a thing as “team work”?

Requirements spec

Design spec

Release

Order

CD

R

P P

Actualneed

Agile Software Development with SCRUM ©SCRUMguides27

A SCRUM team is

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

Agile Software Development with SCRUM ©SCRUMguides28

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Agile Software Development with SCRUM ©SCRUMguides29

Prioritization and Traditional approaches

An alternative tool to backlogs are requirement specifications.

Agile Software Development with SCRUM ©SCRUMguides30

“Gimme all requirements, or ….”

Agile Software Development with SCRUM ©SCRUMguides31

As a result …

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

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

Agile Software Development with SCRUM ©SCRUMguides32

And as a result …

Agile Software Development with SCRUM ©SCRUMguides33

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?

Agile Software Development with SCRUM ©SCRUMguides34

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?

Agile Software Development with SCRUM ©SCRUMguides36

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.

Agile Software Development with SCRUM ©SCRUMguides37

The “menu” (Agile) approach

Product backlog is the project’s menu.

“Servants” help to make better decisions.

Agile Software Development with SCRUM ©SCRUMguides38

What saves our projects?

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

Agile Software Development with SCRUM ©SCRUMguides39

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM till 16:00

Coffee break 16:00 – 16:30

SCRUM simulation 16:30 – 17:30

Extra SCRUM topics 17:30 – 18:00

Agile Software Development with SCRUM ©SCRUMguides40

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Agile Software Development with SCRUM ©SCRUMguides41

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 SCRUM ©SCRUMguides42

The “Flip Coins project

Agile Software Development with SCRUM ©SCRUMguides43

Short Cycles (cont.)

“Fail fast” (с) Ken Schwaber

Agile Software Development with SCRUM ©SCRUMguides44

Iterative and Incremental approach

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

Agile Software Development with SCRUM ©SCRUMguides45

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

Agile Software Development with SCRUM ©SCRUMguides46

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)

Agile Software Development with SCRUM ©SCRUMguides47

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Agile Software Development with SCRUM ©SCRUMguides48

Exercise “Ball Points”

Agile Software Development with SCRUM ©SCRUMguides49

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.

Agile Software Development with SCRUM ©SCRUMguides50

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

Agile Software Development with SCRUM ©SCRUMguides51

The Sprint Burndown Chart

Agile Software Development with SCRUM ©SCRUMguides52

The Task Board - an information radiator

Agile Software Development with SCRUM ©SCRUMguides53

The main aspects of Agile

Team Work

Prioritization

Short cycles

Learn and Adapt

Agile Software Development with SCRUM ©SCRUMguides54

Agile Software Development with SCRUM ©SCRUMguides56

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Extra SCRUM topics

Agile Software Development with SCRUM ©SCRUMguides57

SCRUM in 59 minutes

Agile Software Development with SCRUM ©SCRUMguides58

Game structure

PlanningChoose a product and your PO

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

Agile Software Development with SCRUM ©SCRUMguides59

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Extra SCRUM topics

Agile Software Development with SCRUM ©SCRUMguides60

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

Agile Software Development with SCRUM ©SCRUMguides61

Today’s Agenda

Opening: program overview, knowing each other

Understanding Agile and SCRUM

SCRUM simulation

Summary of SCRUM concepts

Agile Software Development with SCRUM ©SCRUMguides62

Join our community!

Ukrainian Agile communitywww.agileukraine.org

Join our Google discussion group

Ukrainian SCRUM portalwww.scrum.com.ua