agile quality and risk management
DESCRIPTION
Traditional approaches to quality and risk management involve quality gates, change control boards, feature freeze and code freeze milestones, and independent QA or Test groups. These approaches stabilize quality at by sacrificing agility. Yet buggy fragile code is even more dangerous for Agile teams where so much is changing so often. Quality and risk management are critically important for agility. This leads to the inevitable question: if the traditional approaches to quality and risk management don't work in an Agile context, what does? Practices vary across organizations, but all successful teams emphasize the same underlying principles of fast feedback, high visibility, collaboration, and alignment. This talk examines various approaches Agile teams have taken to increase quality, mitigate risk, and ultimately ensure they are delivering the highest possible value for their stakeholders.TRANSCRIPT
Agile Quality and Risk Management Elisabeth Hendrickson !
Blog: testobsessed.com!
Twitter: @testobsessed!
Slides Last updated August 6, 2013!
copyright © 2013 Elisabeth Hendrickson!
Available from: http://www.slideshare.net/ehendrickson/presentations!
Who Am I? !
Author !Recovering Consultant!
Director, Quality Engineering !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Quality Attributes (“…ilities”)!
Internal!makes software
development more predictable & efficient !
Maintainability!
Reusability!
Portability!
Integrity!
Consistency!
Testability!
Modifiability!
External!improves the value of the
software to an external customer or user!Dependability!
Reliability!
Security!
Usability!
Accessibility!
Scalability!
Performance!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Risks Distilled!
Costs too much time or money !
Fails to deliver needed value !
Causes loss!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Four Big Factors in Risk!
Ambiguity !
Dependencies!
Assumptions!
Capacity !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Agile?!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
What Agility Looks Like!
Frequent delivery of value !
At a sustainable pace !
While adapting to the changing needs of the
business!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Recurring Themes!
Feedback !
Visibility !
Alignment!
Collaboration !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Speculation Buildup !Sp
ecula
tion
Analyze Design Implement Stabilize Big Bang Release
Every. Single. Time.!
Empirical Evidence !
speculation!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Agile eliminates speculation buildup…!
Spec
ulat
ion!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
When “Done” isn’t Really Done!
Spec
ulat
ion!
Iterations…!
Stabilize!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
If You Can’t Do Continuous Delivery…!
Rehearse Delivery!
Practice: Automated Testing!
Automatically check that all previously met expectations are still met.!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
GUI Tests!
Partial-Stack Integration Tests!
Unit (Micro) Tests!
The test automation pyramid, first published by Mike Cohn. !
A Strategy for Cost-Effective Test Automation !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Practice: Test First!
Test Driven Development (TDD) !
Acceptance Test Driven Development (ATDD)!
Behavior Driven Development (BDD)!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Tests Express Expectations and Responsibilities!
The HTML5 features don’t
work on IE 2
Urm, so . . . ?
It All Starts with the Story!
As a
I want
So that
Acceptance Criteria
•
•
•
•
Quality, Capabilities, and Lack of Alignment !
Implementation!
Actual Need!
Intentions!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!???!
???!
Practice: Continuous Integration !
Stop the line on red.!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Example Board!
Radiators!
Version All Technical Assets *WITH* the Code!
Unit Tests
Production Code
Source Control Repository
(Plus All other
technical assets)
Test “Fixture”
Code
Acceptance Tests
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Tested is Part of Done!
Tested = !
+!Checked! Explored!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Practice: Exploratory Testing!
Simultaneously… !
learning about the software !
while designing tests!
and executing them as micro-experiments !
using observations from the last test to
inform the next!
all in a session guided by a charter!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Exploratory Charters!
Explore < feature, interaction, etc. >!
With < resources, constraints, etc. >!
To discover < information >!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Bugs!
Requirements!
Practice: Single Stream of Work !
Backlog!
Story
Story Story
Story
Story
Story
Story
Story
Story
Story
THIS !
NOT THIS !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Feedback Loops !
Local Unit Tests! Secs- Mins!
Mins!CI Build!
Mins- Hrs!
System Regression !
Hrs- Days!
Exploratory Testing !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Tighten Feedback Loops (Example)!
Code Review!
Check in on Private
Branch!
Unit Test!
Merge! Unit Test!System
Test!
System Test in
Local Env!
Check into Master!
Run local tests!
CI Runs All Tests!Pair!
BEFORE: days - weeks !
AFTER: mins - hours !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Four Big Factors in Risk!
Ambiguity !
Dependencies!
Assumptions!
Capacity !
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!Define Acceptance Criteria for Stories. Test First. !
Integrate Continuously. Tighten Feedback Loops.!
Deliver Frequently. Create Visibility.!
Collaborate. Have a Single Stream of Work. Work to Done. !
Agile Mitigates Risks!
Costs too much time or money !
Fails to deliver needed value !
Causes loss!
Fail Fast. !
Deliver Frequently.!
Explore. Learn. Iterate.!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
!
Further Reading !