The essence of Agile

Oct 8, 2010 - Traditional SW projects are like a cannon ball. Henrik Kniberg .... the job done. ... ”We think we can finish ABCD in 1 sprint, but we aren't sure” ... Direct communication. Scrum Master. - Process leader/coach. - Impediment remover ... 27. Sprint 1. Sprint 2. Sprint 3. Likely future velocity: 7-9 per sprint. 2. 2. 3.
16MB taille 1 téléchargements 403 vues
Copyright notice

The essence of Agile Keynote Agile Eastern Europe, Kiev Oct 8, 2010

Henrik Kniberg Agile/Lean coach www.crisp.se

Board of directors

[email protected] 070 4925284

These slides are licensed under Creative Commons. Feel free to use these slides & pictures as you wish, as long as you leave my name and the Crisp logo somewhere. For licensing details see: http://creativecommons.org/licenses/by/ 3.0/ All slides available at: http://www.crisp.se/henrik.kniberg/

What is all this stuff?

XP Refa c

Lean

torin g

RUP Henrik Kniberg

TDD

Scrum Continuous Integration Pair g n i m m a r g o r p

Agile 2

What have we learned? Henrik Kniberg

3

Traditional SW projects are like a cannon ball Assumptions: !   The customer knows what he wants !   The developers know how to build it !   Nothing will change along the way

Henrik Kniberg

4

Most IT projects don’t succeed The Standish Group has studied over 40,000 projects in 10 years.

IT project success rate 1994: 15% Average cost & time overrun: ≈170% Plan: €1,000,000 Actual: €2,700,000

IT project success rate 2004: 34% Average cost & time overrun: ≈70% Plan: €1,000,000 Actual: €1,700,000 Sources: http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standish http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS

Henrik Kniberg

5

How estimates are affected by specification length Same spec – more pages

Spec

117 hrs SM

173 hrs SM

Source: How to avoid impact from irrelevant and misleading info on your cost estimates, Simula research labs estimation seminar, Oslo, Norway, 2006

2007-09-28

6

How estimates are affected by irrelevant information Spec 1

Same spec + irrelevant details

A B

A

C

B C

20 hrs 39 hrs SM

SM

Source: How to avoid impact from irrelevant and misleading info on your cost estimates, Simula research labs estimation seminar, Oslo, Norway, 2006

2007-09-28

7

How estimates are affected by extra requirements Spec 1

Spec 2

Spec 3

A

A

A

B

B

B

C

C

C

D

D

D

E

E

4 hrs

4 hrs

8 hrs

SM SM

SM

Source: How to avoid impact from irrelevant and misleading info on your cost estimates, Simula research labs estimation seminar, Oslo, Norway, 2006

2007-09-28

8

How estimates are affected by anchoring Spec

Same spec

456 hrs

Same spec

500 hrs Never mind me

PO

50 hrs Never mind me

PO

555 hrs

99 hrs

SM

SM

2007-09-28

SM

Source: How to avoid impact from irrelevant and misleading info on your cost estimates, Simula research labs estimation seminar, Oslo, Norway, 2006

9

We tend to build the wrong thing Features and functions used in a typical system

Always 7%

Never 45%

Often 13% Sometimes 16%

Cost

Half of the stuff we build is never used!

Rarely 19%

# of features Sources: Standish group study reported at XP2002 by Jim Johnson, Chairman

Henrik Kniberg

10

This graph courtesy of Mary Poppendieck

10

What have we learned? IT project success rate 1994: 15% Average cost & time overrun: ≈170%

IT project success rate 2004: 34%

Top 5 reasons for success 1.  2.  3.  4.  5. 

User involvement Executive management support Clear business objectives Optimizing scope Agile process Scope

Average cost & time overrun: ≈70%

Quality

“The primary reason [for the improvement] is that projects have gotten a lot smaller.”

Cost

Time

“Doing projects with iterative processes as opposed to the waterfall method, which called for all project requirements to be defined up front, is a major step forward.”

Jim Johnson

Chairman of Standish Group

“There is no silver bullet but agile methods come very close”

Henrik Kniberg

Sources: http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standish http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS ”My Life is Failure”, Jim Johnson’s book

11

Agile in a nutshell Henrik Kniberg

12

Agile Manifesto

www.agilemanifesto.org We are uncovering better ways of developing software by doing it and helping others do it. Feb 11-13, 2001 Snowbird ski resort, Utah

Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Henrik Kniberg

Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas 13

Agile Manifesto www.agilemanifesto.org 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 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. Henrik Kniberg

14

Principles behind the Agile Manifesto !   Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. !   Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. !   Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. !   Business people and developers must work together daily throughout the project. !   Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. !   The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

!   Working software is the primary measure of progress. !   Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. !   Continuous attention to technical excellence and good design enhances agility. !   Simplicity--the art of maximizing the amount of work not done--is essential. !   The best architectures, requirements, and designs emerge from self-organizing teams. !   At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

15

Agile ”umbrella”

Scrum

Kanban

XP

DSDM

FDD Crystal

Sources: 3rd Annual ”State of Agile Development” Survey June-July 2008 •  3061 respondents •  80 countries

16

Agile projects are like a guided missile Assumptions: !   The customer discovers what he wants !   The developers discover how to build it !   Things change along the way

Henrik Kniberg

17

Timeboxing Plan

A B C D

(doomed to fail, but we don’t know it yet) Week 1 Week 2 Week 3 Week 4

Traditional scenario

”We will deliver ABCD in 4 weeks”

A B

Oops, we’re late.

C D

Scope

X X X

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8

Quality

Cost

Time

Agile scenario

A B A B ”We always deliver something every sprint (4 weeks)” E D ”We think we can finish ABCD in 1 sprint, but we aren’t sure” ”We always deliver the most important items first” Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Scope Oops, we only finished AB. Our velocity is lower than we thought. What should we do now?

Quality Cost

Time

18 Henrik Kniberg

Planning is easier with frequent releases

Henrik Kniberg

19

Scrum in a nutshell Henrik Kniberg

20

Split your organization

Scrum in a nutshell Split your product Large group spending a long time building a huge thing Small team spending a little time building a small thing ... but integrating regularly to see the whole

Optimize business value

Optimize process

$$$

Split time January

April

$

Henrik Kniberg

21

Scrum overview – structure Product Backlog

Cross functional, self organizing Team -  How much to pull in -  How to build it

Stakeholders Sprint Backlog

Team

Users

Helpdesk

PO Direct communication

SM

Operations

Management

Product owner -  Where are we going & why? -  Priorities

Scrum Master -  Process leader/coach -  Impediment remover

... etc ...

Henrik Kniberg

22

Product backlog Product vision

Product Backlog

As a I want so that

As a buyer I want to save my shopping cart so that I can continue shopping later As a booker I want to receive notifications when new available slots appear in the calendar so that I don't have to keep checking manually (... etc ...)

Definition of Done •  Releasable •  User Acceptance tested •  Merged to Trunk •  release notes written •  No increased technical debt

= I haven’t messed up the codebase

GUI Client Server DB

Henrik Kniberg

23

Agile estimating strategy !   Don’t estimate time. !   Estimate relative size of stories. !   Measure velocity per sprint. !   Derive release plan. !   Estimates done by the people who are going to do the work. !   Not by the people who want the work done. !   Estimate continuously during project, not all up front. !   Prefer verbal communication over detailed, written specifications. !   Avoid false precision !   Better to be roughly right than precisely wrong

Henrik Kniberg http://planningpoker.crisp.se

24

Planning poker

2

As a buyer I want to save my shopping cart so that I can continue shopping later

5

As a booker I want to receive notifications when new available slots appear in the calendar so that I don't have to keep checking manually

2

5

2 ?

Henrik Kniberg

2

3

25

Typical sprint Product Backlog

release 1.3.0

PO

Daily Scrum

Week 1

Sprint plan (Task board / Scrum board)

Week 2

Week 3

Demo/Review Retrospective

Sprintplanning

Timeline

Henrik Kniberg

26

Velocity V= 8

1

V= 7

2 2

2 3

Sprint 1

1 Sprint 2

V= 9

1 3

1

1 2

2 2

1

Sprint 3

Likely future velocity: 7-9 per sprint

Henrik Kniberg

27

Scope

Release planning – fixed date

Quality Cost

•  Today is Aug 6 •  Sprint length = 2 weeks •  Velocity = 30 - 40

Time

300 What will be done by X-mas? (10 sprints)

2007-09-28

PO

400

28

Scope

Release planning – fixed scope Cost

Release burndown chart 400

Work remaining (story points)

PO

300

Quality Time

When will all of this be done?

We’ll be done around sprint 14-16

200

100

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Sprint

Henrik Kniberg

29

XP in a nutshell Henrik Kniberg

30

Scrum ”wraps” XP

Scrum Team

XP

Sprint backlog

Whole team Collective ownership

Product backlog

Product owner

Daily Scrum

Customer tests

TDD

Pair programming

Continuous Integration

Coding standard

Refactoring

Simple design

Burndown chart

Planning Sprint game Planning meeting

Sustainable Pace

Metaphor

ScrumMaster

2007-09-28

Henrik Kniberg

Small releases Sprint Review

31

Feedback loops

Sprint review Daily Scrum Continuous integration Unit test

Pair programming Henrik Kniberg

32

Agile architecture Timeline

Don’t do: Quick ’n dirty features => Slow ’n dirty => Entropy death? Big bang rewrite? F

F

F

F

F

F

Don’t do: Big Up Front Design

F

Architecture

F

F

F

Do: Find a balance F

F

F

F

F

F

F

F

F

F

A

A

A

A

A

A

A

A

A

A

Henrik Kniberg

33

import java.sql.Connection; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;

Clean & simple code Code is an asset Simple code: All code is cost! 1. Passes all tests Some code is value. 2. No duplication 3. Readable 4. Minimal public class Dog { private final String name; private int woofCount = 0; public Dog(String name) { this.name = name; }

Simple is hard!

Embrace Change!

Kent Beck

Henrik Kniberg

public void woof() { ++woofCount; } }

public class Dog { private Executor executor = Executors.newFixedThreadPool(18); private int CACHE_SIZE = 50; public Dog() { try { Class.forName("oracle.jdbc.ThinDriver"); connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", "beefhead"); statement = connection.prepareStatement("insert into Dog values (?, ?, ?)"); } catch (ClassNotFoundException e) {} new Thread().start(); } public void woof(Person woofCaller) { Connection connection = null; PreparedStatement statement = null; try { connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", "beefhead"); statement = connection.prepareStatement("insert into Dog values (?, ?, ?)"); statement.setLong(1, System.currentTimeMillis()); statement.setString(2, person.getName()); statement.setString(3, person.getPhoneNumber().getNumber()); statement.executeUpdate(); } } } } Connection a = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", "beefhead"); b = a.prepareStatement("select * from Dog where name = '" + name + "'"); c = b.executeQuery(); if (c.next()) { String foundName = c.getString("name"); PhoneNumber phoneNumber = new PhoneNumber(c.getString(“woofCount")); Person person = new Person(foundName, phoneNumber); return person; } else { return new Person("", null); } } catch (SQLException e) { return null; } catch (IllegalArgumentException x) { throw x; } } public List getAll() { connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", "beefhead"); statement = connection.prepareStatement("insert into Dog values (?, ?, ?)"); statement.setLong(1, System.currentTimeMillis()); } if (statement != null) { if (c.next()) { String foundName = c.getString("name"); PhoneNumber phoneNumber = new PhoneNumber(c.getString(“woofCount")); Person person = new Person(foundName, phoneNumber); return person; } else {

Robert C Martin (Uncle Bob)

34

Kanban in a nutshell Henrik Kniberg

35

Which team needs most improvement? Team 1

orem ipsum dolor orem ips um dolor sit amet, co nse sit amet , co nse ctetur ctetur orem ips um dolor sit amet , co nse orem ipsum cte dolor tur sit amet, co nse ctetur orem ipsum dolor sit amet, co nse ctetur orem ips um dolor sit amet , co nse ctetur dolor orem ipsum co nse sit amet, ctetur orem ipsum dolor sit amet, co nse orem ipsumctetur dolor sit amet, co nse ctetur

Russel Ackoff

Team 2

Doing

Todo

Managers who don’t know how to measure what they want settle for wanting what they can measure

Done this week

dolor orem ipsum nse sit amet, co ctetur

orem ipsum dolor oremdol ipsum or dolor sit amet, co nse orem ipsum sitco amet, co nse orem ips ctetur oremnse um dolor sit amet, ctetur ipsum dolor sit amet sit am , co nse ctetur orem ipsum dolor et, co ctetur nse cte tu r co nse sit amet, ctetur orem ipsum dolor sit amet, co nse ctetur orem ipsum dolor sit amet, co nse ctetur orem ipsum dolor orem ipsum dolor sit amet, co nse sit amet, co nse ctetur ctetur

Avg lead time: 20 days

Henrik Kniberg

Todo

dolor orem ipsum co nse sit amet, ctetur

orem ips um dolor sit amet , co nse ctetur

orem ipsum dolor sit amet, co nse ctetur orem ipsum dolor sit amet, co nse ctetur

Doing dolor orem ipsum nse sit amet, co ctetur

this week dolor orem ipsum dolor orem ipsum co nsesit amet, co nse sit amet, ctetur ctetur orem ipsum dolor sit amet, co nse ctetur orem ipsum dolor dolor sit amet, co nse orem ipsum co nse ctetur sit amet, ctetur orem ips um dolor orem ipsum dolor sit amet , co nse sit amet, co nse ctetur ctetur orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Avg lead time:

Done

3

days

orem ips um dolor sit amet , co nse ctetur

36

Kanban @ Imperial Palace Gardens

Henrik Kniberg

37

Kanban

看板 ”Visual Card”

!   Signaling system !   Visual !   Limited in supply

Henrik Kniberg

38

Kanban in your wallet

Darn. Forgot to limit the supply.

Henrik Kniberg

39

Kanban @ Toyota Buyer

Consume

Detach

Supplier

Receive

Ship

Allocate

Manufacture

The tool used to operate the [Toyota Production] system is kanban.

Henrik Kniberg

Taiichi Ohno Father of the Toyota Production System

40

Kanban in SW development ! ! ! !

       

Visualize the workflow Limit WIP (work in progress) Measure & optimize flow Explicit policies (definition of Done, WIP limits, etc) Backlog 5

Dev 3

UAT 2

orem ips um dolor sit amet , co nse ctetur

dolor orem ipsum nse sit amet, co tur cte

dolor orem ipsum nse sit amet, co tur cte

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Deploy Done 3 orem ips um dolor sit amet , co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Henrik Kniberg

dolor orem ipsum dolor orem ipsum co nsesit amet, co nse sit amet, ctetur ctetur

orem ipsum dolor sit amet, co nse ctetur orem ips um dolor sit amet , co nse ctetur orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

FLOW

Pioneered by David Anderson in 2004

Avg lead time:12 days

41

Kanban example

Board shared by several teams Covers whole value stream from concept to release

Henrik Kniberg

42

One day in Kanban land Henrik Kniberg

43

”One day in Kanban land” http://blog.crisp.se/henrikkniberg/tags/kanban/

Henrik Kniberg

44

Scenario 1 – one piece flow

Next

Backlog A

2

Dev

In production :o)

3

Ongoing

Done

B

G C F H J M

D I

L K

Henrik Kniberg

E

45

Scenario 1 – one piece flow

Next

Backlog

2

Ongoing

Done

B

C F H M

In production :o)

3

A

G

J

Dev

D I

L K

Henrik Kniberg

E

46

Scenario 1 – one piece flow

Backlog

2

Ongoing

Done

B

C F H M

In production :o)

3

A

G

J

Dev

Next

D I

L K

Henrik Kniberg

E

47

Scenario 1 – one piece flow

Dev

Next

Backlog

2

Ongoing

C

G

D

In production :o)

3

Done A

B

F H J M

I L K

Henrik Kniberg

E

48

Scenario 1 – one piece flow.

Dev

Next

Backlog

2

In production :o)

3

Ongoing

Done

C

G D

A B

F H J M

I L K

Henrik Kniberg

E

49

Scenario 2 – Deployment problem

Next

Backlog PO A

2

Dev

In production :o)

3

Ongoing

Done

B

G C F H J M

D I

L K

Henrik Kniberg

E

50

Scenario 2 – Deployment problem

Next

Backlog PO

Ongoing

Done

B

C F H M

In production :o)

3

A

G

J

2

Dev

D I

L K

Henrik Kniberg

E

51

Scenario 2 – Deployment problem

Dev

Next

Backlog PO G

2

In production :o)

3

Ongoing

C

A

D

B

Done

F H J M

I L K

Henrik Kniberg

E

52

Scenario 2 – Deployment problem

Dev

Next

Backlog PO

2

Ongoing C

G D

In production :o)

3

Done A

B

F H J M

I L K

Henrik Kniberg

E

53

Scenario 2 – Deployment problem

Backlog PO

2

G D F H J M

Dev

Next

In production :o)

3

Ongoing

Done

C

A

!?

B

I L K

Henrik Kniberg

E

54

Scenario 2 – Deployment problem

Backlog PO

2

F H M

In production :o)

3

Ongoing

!?

G

J

Dev

Nexet

Done A

D

B

E

C

I L K

Henrik Kniberg

55

Scenario 2 – Deployment problem

Next

Backlog PO

2

F H M

In production :o)

3

Ongoing

Done A

G

J

Dev

D

B

E

C

I L K

Henrik Kniberg

56

Scenario 2 – Deployment problem

Next

Backlog PO

2

Dev

In production :o)

3

Ongoing

Done A

G D F H J M

E

B C

I L K

Henrik Kniberg

57

Scenario 2 – Deployment problem

Backlog PO

In production :o)

3

Ongoing

Done

H

A B

E

F

M

2

D

G

J

Dev

Next

C I

L K

Henrik Kniberg

58

Kanban board evolution Henrik Kniberg

59

Kanban evolution example April 7

April 23

Henrik Kniberg

60

Kanban www.crisp.se/kanban/example   kick-start example

Henrik  Kniberg  

Next! 2

Analysis! 3

Ongoing!

2009-09-01!

ipsum dolor sit am et, co nse ctetur adi pis cing elit nisl

!

ctetur

!

et, co n

se

!

orem ipsum dolor sit amet, co adi pis cing elit nisl

!

2009-09-02! orem ipsum dolor sit amet, nse ctetur adi pis elit nisl

!

2009-09-08!

2009-08-30!

orem ipsum dolordolor sit orem ipsum amet, co nse amet, cosit nse ctetur orem ip ctetur m dolo adi pis cing elitsunisl sit am r

!

dolor orem ipsum nse sit amet, co ctetur orem ipsum dolor sit amet, co nse ctetur

!

!

xxxx orem ipsum dolor kjd dj d sit amet, coxxx nse ctetur

!

!

sit orem ipsum dolor pis amet, ctetur adi cing elit nisl

orem ipsum dolor orem ipsum dolorsit amet, co nse sit amet, co nse ctetur ctetur

Definition of Done:! • Goal is clear! • First tasks defined! • Story split (if necessary)!

Feature / story! Date when added to board! 2009-09-30!

2009-08-20

!

orem ipsum dolor sit amet, co nse ctetur

!

!

2009-08-22 !

!

orem adi pis cing elit nisl!

dolor orem ipsum e co ns sit amet, ctetur

!

(description)

! =task!

2009-08-25! orem ipsum dolor sit ctetur adi pis cing elit nisl

!

Task / defect!

= priority!

Who is analyzing / testing right now!

!

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co

(description)

= panic!

25! ! 2009-08lor sit do um ips orem ctetur amet, co nse elit nisl adi pis cing

orem ipsum dolor sit amet, co nse ctetur

Definition of Done:! • Code clean & checked in on trunk! • Integrated & regression tested! • Running on UAT environment!

Hard deadline! (if applicable)!

!

!

!

!

!

2009-08-20! orem olor sit amet, co nse ctetur adi pis cing elit nisl

orem ipsum dolor sit amet, adi pis cing elit nisl

!

Prod!

2009-08-26!

orem ipsum dolor sit amet, nse ctetur adi pis cing elit nisl

!

!

!

Done!

2009-08-27!

2009-08-27!

!

orem ipsum dolor sit amet, co nse ctetur

Ongoing!

2009-08-29!

orem ipsum dolor sit amet, co nse

(description)

orem ips um dolor sit amet, co nse ctetur

Done!

!

orem ipsum dolor sit amet, co nse ctetur

2009-09-02!

2009-08-20!

Acceptance! 2

Development! 3

Ongoing! Done!

2009-09-03!

version  1.2   2009-­‐11-­‐16  

(description)

!

Definition of Done:! • Customer accepted! • Ready for production!

What to pull first! =defect!

• 

! = completed!

(description)

! ! = blocked!

(description)

!

Why

= who is doing this right now!

•  •  • 

Panicfeatures!

(should be swarmed and kept moving. Interrupt other work and break WIP limits as necessary)!

Priority features! Hard deadline features!

(only if deadline is at risk)!

Oldest features!

Evolve your own unique system!

Henrik Kniberg

Some of these photos courtesy of David Anderson, Mattias Skarin, and various other people

62

Compare for understanding, not judgement Henrik Kniberg

63

Lean & Agile process toolkits Values & Principles

Lean, Agile, Theory of Constraints, Systems Thinking, etc

Kanban

XP

Other lean tools (Value Stream Mapping, Root Cause Analysis, etc)

Scrum

Henrik Kniberg

64

Compare for understanding, not judgement More prescriptive

More adaptive

RUP   (120+) •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  • 

Architecture Reviewer Business Designer Business-Model Reviewer Business-Process Analyst Capsule Designer Change Control Manager Code Reviewer Configuration Manager Course Developer Database Designer Deployment Manager Design Reviewer Designer Graphic Artist Implementer Integrator Process Engineer Project Manager Project Reviewer Requirements Reviewer Requirements Specifier Software Architect Stakeholder System Administrator System Analyst Technical Writer Test Analyst Test Designer Test Manager Tester Tool Specialist User-Interface Designer Architectural analysis Assess Viability of architectural proof-of-concept Capsule design Class design Construct architectural proof-ofconcept Database design Describe distribution Describe the run-time architecture Design test packages and classes Develop design guidelines Develop programming guidelines Identify design elements Identify design mechanisms Incorporate design elements Prioritize use cases Review the architecture Review the design Structure the implementation model Subsystem design Use-case analysis Use-case design Analysis model Architectural proof-of-concept Bill of materials Business architecture document Business case Business glossary Business modeling guidelines Business object model Business rules Business use case

•  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  • 

Business use case realization Business use-case model Business vision Change request Configuration audit findings Configuration management plan Data model Deployment model Deployment plan Design guidelines Design model Development case Development-organization assessment End-user support mateirla Glossary Implementation model Installation artifacts Integration build plan Issues list Iteration assessment Iteration plan Manual styleguide Programming guidelines Quality assurance plan Reference architecture Release notes Requirements attributes Requirements management plan Review record Risk list Risk management plan Software architecture document Software development plan Software requirements specification Stakeholder requests Status assessment Supplementary business specification Supplementary specification Target organization assessment Test automation architecture Test cases Test environment configuration Test evaluation summary Test guidelines Test ideas list Test interface specification Test plan Test suite Tool guidelines Training materials Use case model Use case package Use-case modeling guidelines Use-case realization Use-case storyboard User-interface guidelines User-interface prototype Vision Work order Workload analysis model

Henrik Kniberg

Scrum   (9)

XP   (13) •  •  •  •  •  •  •  •  •  •  •  •  • 

Whole team Coding standard TDD Collective ownership Customer tests Pair programming Refactoring Planning game Continuous integration Simple design Sustainable pace Metaphor Small releases

•  •  •  •  •  •  •  •  • 

Scrum Master Product Owner Team Sprint planning meeting Daily Scrum Sprint review Product backlogt Sprint backlog BUrndown chart

Kanban   (3) •  •  • 

Do  Whatever   (0)

Visualize the workflow Limit WIP Measure and optimize lead time

65

Customizing your agile process Henrik Kniberg

66

Shu-Ha-Ri stages of learning

!  Shu = follow the process !  Ha = adapt the process !  Ri = never mind the process

Henrik Kniberg

67

Agile does not require timeboxed iterations Sprints

week 1

week 2

week 3

week 4

Sprint 1 Plan & commit

Separate cadences

week 5

week 6

week 7

week 8

Sprint 2

Review (release?)

Retrospective

week 1

week 2

week 3

week 4

week 5

week 6

week 7

week 8

week 1

week 2

week 3

week 4

week 5

week 6

week 7

week 8

Retrospectives (4w) Planning cadence (2w) Release cadence (1w)

Event-driven Retrospectives (4w) Planning (on demand) Release (on demand)

68

Different ways of limiting WIP Scrum

Velocity = 15 story points

•  Indirect limit per unit of time •  Items must fit in a sprint

Sprint 1

Sprint 2

Sprint 3

Sprint 4

Kanban •  Direct limit per workflow state •  Can combine big & small items Big item WIP limit = 3 items

Big item

69

Estimation options ”Typical” Kanban

Tasks

Features

1. Don’t estimate features. Just count them. 1. Skip tasks

2. Don’t estimate tasks. Just count them.

2. Estimate features in t-shirt size

M

S

S

L

Hours?

M

L

Days? Weeks?

3. Estimate features in story points

1sp

2sp

5sp

4. Estimate features in ideal man-days

1d

3d

Henrik Kniberg

6d

3. Estimate tasks in days 0.5d

2d

1d

”Typical” Scrum

4. Estimate tasks in hours 4h

8h

12h

70

Portfolio-level board

Develop!

Next! 1

Concept! Playable!

3Features!

Game Team Solitaire

2

Game Team

3

FLOW

Polish!

2

Pac man

1

Game Team

Release! Done! Bingo

Zork

Pong

Donkey Kong

Mine sweeper

Dugout Duck hunt

Avg lead time: 12 weeks

71

Game teams Game team 1 Current game: Pac Man

Game team 2 Current game: Pong

Game team 2 Current game: Donkey Kong

72

Final points

Henrik Kniberg

73

Distinguish between… Using the tool wrong

Using the wrong tool

Neither of these problems are caused by the tool

Henrik Kniberg

74

74

Don’t be dogmatic Go away! Don’t talk to us! We’re in a Sprint. Come back in 3 weeks.

Henrik Kniberg

Though Shalt Pair Program

75

Essential skills needed regardless of process Splitting the system into useful pieces

Craftsmanship

Retrospectives

As a buyer I want to save my shopping cart so that I can continue shopping later

Henrik Kniberg

76

Perfection is a direction, not a place The important thing is not your process. The important thing is your process for improving your process

Henrik Kniberg

77