Mon 1130 acacia_d_chethendricksonronjeffries

40
Guide to Technical Practices Chet Hendrickson - [email protected] Ron Jeffries - [email protected]

Transcript of Mon 1130 acacia_d_chethendricksonronjeffries

Page 2: Mon 1130 acacia_d_chethendricksonronjeffries

There are two kinds of Scrum

- XP and the kind that doesn’t work

Page 3: Mon 1130 acacia_d_chethendricksonronjeffries

3

While we are building the product, we also build defects

Defects are “Negative Features”

Page 4: Mon 1130 acacia_d_chethendricksonronjeffries

4

We cannot predicthow long defect repair will take

Page 5: Mon 1130 acacia_d_chethendricksonronjeffries

5

How can we avoid defects?Best known way:

Test, extensively, as we go!

Page 6: Mon 1130 acacia_d_chethendricksonronjeffries

6

Customer tests show Product Ownerthat the Product actually WORKS!

Page 7: Mon 1130 acacia_d_chethendricksonronjeffries

7

Programmer tests show thatthe CODE actually works

and points to causes of defects!

Page 8: Mon 1130 acacia_d_chethendricksonronjeffries

8

Tests must be automated!Why?

There’s no other way to keep up with demand.

Page 9: Mon 1130 acacia_d_chethendricksonronjeffries

Customer Tests“Confirmation” from the 3c’s

Page 10: Mon 1130 acacia_d_chethendricksonronjeffries

Two Types of Tests

Through the GUI

Selenium

Mercury

Behind the GUI

Fitnesse

Cucumber

Page 11: Mon 1130 acacia_d_chethendricksonronjeffries

Fitnesse

Page 12: Mon 1130 acacia_d_chethendricksonronjeffries

Test Suite

Page 13: Mon 1130 acacia_d_chethendricksonronjeffries

Individual Test

Page 14: Mon 1130 acacia_d_chethendricksonronjeffries

YEA!!!

Page 15: Mon 1130 acacia_d_chethendricksonronjeffries
Page 16: Mon 1130 acacia_d_chethendricksonronjeffries

Not DONE Yet

Page 17: Mon 1130 acacia_d_chethendricksonronjeffries

Getting Close

Page 18: Mon 1130 acacia_d_chethendricksonronjeffries

0

100

200

300

400

500

600

700

800

900

1000

Application Test

Size in Kg

Page 19: Mon 1130 acacia_d_chethendricksonronjeffries

Programmer Tests

Page 20: Mon 1130 acacia_d_chethendricksonronjeffries

Tools

xUnit

gTest

MS UnitTest

Page 21: Mon 1130 acacia_d_chethendricksonronjeffries

0

60

120

180

240

300

360

420

480

540

600

1 2 3 4 5 6 7 8 9 10 11 12 13 14Iteration

Assertions Added Per Iterations

Page 22: Mon 1130 acacia_d_chethendricksonronjeffries

22

How ELSE might our apparent progress be wrong?

Page 23: Mon 1130 acacia_d_chethendricksonronjeffries

0

30

60

90

120

150

180

210

240

270

300

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Burn Up

Use

r Sto

ries

Done

Expected Velocity

Page 24: Mon 1130 acacia_d_chethendricksonronjeffries

Usual Velocity

0

15

30

45

60

75

90

105

120

135

150

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Use

r Sto

ries

Done

Page 25: Mon 1130 acacia_d_chethendricksonronjeffries

0

75

150

225

300

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Combined Burn Up

Page 26: Mon 1130 acacia_d_chethendricksonronjeffries

26

What if the design is bad?We get more defects and slow down over time.

The progress line lies.

Page 27: Mon 1130 acacia_d_chethendricksonronjeffries

27

We must start with a simple ...and therefore insufficient ...

design

Page 28: Mon 1130 acacia_d_chethendricksonronjeffries

28

We need to wind up with a larger design ...and it needs to be good!

Page 29: Mon 1130 acacia_d_chethendricksonronjeffries

29

We need a continually improving design.How is that even possible?

Page 30: Mon 1130 acacia_d_chethendricksonronjeffries

30

How do we move from one good design ...to the next good design?

Page 31: Mon 1130 acacia_d_chethendricksonronjeffries

31

RefactoringWhy?

There’s no other way to ship every Sprintfrom the beginning

and keep the code base alive.

Page 32: Mon 1130 acacia_d_chethendricksonronjeffries

Continuous IntegrationHow else will you know?

Page 33: Mon 1130 acacia_d_chethendricksonronjeffries

Tools

Jenkins/Hudson

CruiseControl

TeamCity

Continuum

Microsoft Team Foundation Server

Page 34: Mon 1130 acacia_d_chethendricksonronjeffries
Page 35: Mon 1130 acacia_d_chethendricksonronjeffries
Page 36: Mon 1130 acacia_d_chethendricksonronjeffries
Page 37: Mon 1130 acacia_d_chethendricksonronjeffries
Page 38: Mon 1130 acacia_d_chethendricksonronjeffries
Page 39: Mon 1130 acacia_d_chethendricksonronjeffries

39

CSD Techniques:The professional way to do

Scrum.• Potentially shippable “DONE” Software Every

Sprint

• Automated Acceptance Tests (ATDD)

• Test-Driven Development

• Automated Programmer Tests

• Refactoring

• Continuous Integration

Page 40: Mon 1130 acacia_d_chethendricksonronjeffries

40

The Nature of Software Development:

The only way we know today.• Potentially shippable “DONE” Software Every

Sprint

• Automated Acceptance Tests (ATDD)

• Test-Driven Development

• Automated Programmer Tests

• Refactoring

• Continuous Integration