3. 3
Cofounder of GROWS Methodology
Author Ship It! and Career 2.0
Screencast editor PragProg.com
2nd public signatory of the Agile Manifesto
Started AgileRTP in 2007
Coach
AgileArtisans.com
Jared Richardson
5. What’s up with the material?
Major rewrite
Introduction
Slides on USB
On Slideshare.com
Provided to conference as well
6. Who’s a User?
Already using continuous integration?
Continuous deployment?
Which tools?
Test first?
7. What would you say you do
here?
Roles?
Responsibilities?
Why are you here?
What are your tests for this session?
8. Objectives
Understand Continuous Feedback in context of a healthy SDLC
Understand the Continuous Paradigm
Understand an end-to-end Continuous workflow
Understand how to scale your efforts
15. Requirements
Write Code
The Traditional Approach
Demo
Rewrite (60%)
“Discussion”
The architects
generate a
document and
hand it off
An isolated event,
primarily worked by
the customer proxy
Arch
Code like mad!
We’re starting
late!
Not what we meant!
Wrong arch
Ignored my docs
etc
so on
16. Demo
Write Code
Requirements
A More Agile Approach
Before
significant time
and $$ is
invested
Discuss
Include the
Golden Triad
Dev QA
Customer
Rewrite
20. Experimentation
Learn about software by writing software
Can’t study your way into experience
Like riding a bike
Create feedback loops
flickr.com/photos/schwar/6801765768
31. Automated Tests
Answer Questions
Is this done?
Does it still work?
Does it work somewhere besides my machine?
This is what I’m asking you to write.
Everything is checked in.
47. Continuous deployment is controversial.
Most people ... think I’m advocating
low-quality code
or an undisciplined
cowboy-coding
development process.
Eric Ries
radar.oreilly.com/2009/03/continuous-deployment-5-eas.html
49. Exercise
How long is your SDLC (idea to verification)?
What are your SDLC feedback bottlenecks?
Write down 3 worst bottlenecks
Gather into groups of 5 to 7
Share and discuss
Keep your list!
Take ten minutes
53. Cons
Slows you down
Nags you after every code change
Exposes problems
Shares issues
Forces you to deal with problems
Smoke alarm
53flickr.com/photos/117168856@N06/12486837493
79. Round 1
Start a timer
Place your fleet
Use all your “ammo”
Check with your opponent
Record hits/misses/time
Play twice
Round 2
Start a timer
Place your fleet
Fire 1 round
Check with your opponent
Continue until out of ammo
Record hits/misses/time
Ships & Ammo
1 Sub (2 dot ship)
2 Destroyers (3 dots ships)
1 Battleship (4 dot ship)
1 Aircraft carrier (5 dot ship)
35 rounds to fire
80. Results
Which way is faster?
Which spends less “budget”?
Which way is more effective?
Which way do you prefer?
83. A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
Opponent’s Fleet
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
My Fleet
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
Opponent’s Fleet
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
My Fleet
84. A B C D E F G H I
1
2
3
4
5
6
7
8
9
A B C D E F G H I
1
2
3
4
5
6
7
8
9
A B C D E F G H I
1
2
3
4
5
6
7
8
9
A B C D E F G H I
1
2
3
4
5
6
7
8
9
A B C D E F G H I
1
2
3
4
5
6
7
8
9
A B C D E F G H I
1
2
3
4
5
6
7
8
9
A B C D E F G H I
1
2
3
4
5
6
7
8
9
A B C D E F G H I
1
2
3
4
5
6
7
8
9
Time Shots Misses Hits Sinks % hits % sinks
1st All at once
2nd All at once
3rd Interactive
4th Interactive
Battleship! An exercise by Tony
Brill1 2 3 4
99. Exercise
Remember your SDLC bottlenecks?
What could continuous integration solve?
What could continuous testing solve?
Regroup with your team and discuss
Bring your top 3 solutions
99
117. Developers
Devs write
code
normally
SCM
Code is shared
via a source
code
management
tool
Continuous
Testing
Providing
immediate
feedback and a
shared
environment
for a QA “First
Look”
Triggered
Deploy
to QA
QA team
members
trigger this
deploy
Manual
Testing
A stable
environment for
manual and
exploratory testing
119. First Look
• QA can see what’s been coded immediately
• Differences in opinions can be discussed quickly
• Fewer problems during the larger testing cycles
• Keeps QA & Dev working together as partners
• Minimizes feedback for the previous iteration
• Faster feedback for QA
120. Continuous Testing
• Includes QA in the continuous feedback cycle
• Retains a traditional QA stable testing environment
• Dev & QA should both review all tests (unit & int.)
• QA requests trigger the QA env. deployment
124. Be Lazy!
You have builds scripted
CI servers running
Tests written
Things deploy
What else can you do?
flickr.com/photos/ofernandezberrios/2720567252
140. Exercise
At lunch
Continuous Testing
Two 3x5 cards
3 reasons for
3 barriers to adoption
Groups of 5 to 7
Brainstorm on solutions
flickr.com/photos/curtisperry/6119618990
141. Exercise
Useful or not...
Will you pursue or not...
Continuous Integration
Continuous Testing
Continuous Monitoring
Test automation
How will these ideas help or hurt your org?
Write down your answers and pass them up
157. Tips
Open standards...
Junit or Junit compatible
Avoid vendor lock in
Glue tools
Time matters....
Fast servers
Incremental change
158. Script Tips
Save scripts in source code management
Modular
Basic encapsulation
One target => One function
159. Script Targets
all depends_on clean, compile, test-unit
clean # deletes build artifacts
compile # builds the product (Ruby?)
test-unit # run your tests
deploy_locally # to your dev environment
deploy_dev (?) # to a shared dev environment
test-integration # run your integration tests