mon 1130 acacia_d_chethendricksonronjeffries

Post on 11-May-2015

67 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Guide to Technical Practices

Chet Hendrickson - chet@hendricksonxp.comRon Jeffries - ronjeffries@acm.org

There are two kinds of Scrum

- XP and the kind that doesn’t work

3

While we are building the product, we also build defects

Defects are “Negative Features”

4

We cannot predicthow long defect repair will take

5

How can we avoid defects?Best known way:

Test, extensively, as we go!

6

Customer tests show Product Ownerthat the Product actually WORKS!

7

Programmer tests show thatthe CODE actually works

and points to causes of defects!

8

Tests must be automated!Why?

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

Customer Tests“Confirmation” from the 3c’s

Two Types of Tests

Through the GUI

Selenium

Mercury

Behind the GUI

Fitnesse

Cucumber

Fitnesse

Test Suite

Individual Test

YEA!!!

Not DONE Yet

Getting Close

0

100

200

300

400

500

600

700

800

900

1000

Application Test

Size in Kg

Programmer Tests

Tools

xUnit

gTest

MS UnitTest

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

22

How ELSE might our apparent progress be wrong?

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

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

0

75

150

225

300

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

Combined Burn Up

26

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

The progress line lies.

27

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

design

28

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

29

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

30

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

31

RefactoringWhy?

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

and keep the code base alive.

Continuous IntegrationHow else will you know?

Tools

Jenkins/Hudson

CruiseControl

TeamCity

Continuum

Microsoft Team Foundation Server

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

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

top related