Download - Mon 1130 acacia_d_chethendricksonronjeffries
Guide to Technical Practices
Chet Hendrickson - [email protected] Jeffries - [email protected]
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