Professional Documents
Culture Documents
Author
Agile tester mindset
00:22
Henrik Kniberg
Henrik Kniberg
Henrik Kniberg
Henrik Kniberg
Case study: Game development company
Design-ready games
Production-ready games
Game backlog
15 12
8
3 months
Lisa Release
Henrik Kniberg
Test phase
Test team
Tester role
Henrik Kniberg
Test phase
Henrik Kniberg
We own
Test team
quality
Programmers Testers
Henrik Kniberg
I own
quality
Tester role
Tester
Dev team
Henrik Kniberg
Role
Competency
We own
quality
QA
= Quality Assurance
= Quality Assistance
Henrik Kniberg
Roles
DB
GUI
Design
Backend
Test
Henrik Kniberg
Competencies
DB
Design
GUI
Backend
Test
Henrik Kniberg
Knows a bit about many things
Joe
Fred
Jenny
David
Erik
I won’t even go
near a
database!
Henrik Kniberg
ensure
How do you know that your product works?
Who are the
stakeholders?
00:22
Henrik Kniberg
Make sure backlog items are testable & valuable
As a buyer
How to demo:
I want to save my shopping cart
1) Enter store
so that I can continue shopping
2) Put a book in shopping cart
later
3) Press ”save cart”
4) Leave store, and enter it again
5) Check that the book is in my
cart
Henrik Kniberg
Find defects early!
Cost of
defect
Age of defect
Henrik Kniberg
Sit with the developers
Meeting room
Testers
Henrik Kniberg
Shorten the feedback loop
People
(# of handoffs)
2
3
1
Maker
User
5
# of 4
3
handoffs
2
1
Time
(Feedback delay)
0
Henrik Kniberg
Push for Continuous Delivery
Henrik Kniberg
Create a shared vocabulary
Unit
Test?
Integration
Quality?
test?
Acceptance
test?
Technical
debt?
Henrik Kniberg
Set working agreements for test automation
AT and UT complement each other
Each user story has at least • Acceptance tests: coupled to UI, decoupled from internal design
one black-box acceptance test
• Unit tests: coupled to internal design, decoupled from UI
Henrik Kniberg
Do & teach exploratory testing
!
?
Henrik Kniberg
Done includes ”no added technical debt”
Henrik Kniberg
Example: Test automation backlog
Step 1: Decide what needs to be tested
• Change skin
• Security alert
• Transaction history
• Block account
• Add new user
• Sort query results
• Deposit cash
• Validate transfer
Henrik Kniberg
Step 2: Classify each test
Pay every
Pay once
time
Henrik Kniberg
Step 3: Sort the list
Henrik Kniberg
Example: Tech backlog
Product backlog
Tech backlog
Henrik Kniberg
Reserve X% of team capacity for the tech backlog
Product backlog
80% Sprint
Tech backlog
20%
Henrik Kniberg
Example:
Spotify
00:22
Henrik Kniberg
Like a magical music player in which
you’ve bought every song in the world!
Play Everywhere!
Henrik Kniberg
>400 people in tech
Stockholm
Gothenburg
San Francisco
New York
36
Henrik Kniberg
> 50 squads
Henrik Kniberg
Autonomous Squad
Cross-functional, co-located, self-organizing team
Henrik Kniberg
39
Squads are grouped into Tribes
Henrik Kniberg
Each Tribe is a lightweight matrix focused on delivery
Vertical = Delivery.
Horizontal = knowledge sharing & personal development
Tribe
Tribe
Chapter Chapter
Chapter
Guild
Chapter
Reality is messy
Henrik Kniberg
Decoupling to enable
frequent releases
!#?
Feature squads
Henrik Kniberg
Self-service model
Client App squads
Enable &
support
Henrik Kniberg
Release trains & Feature toggles
Henrik Kniberg
Failure Recovery is more important
than Failure Avoidance
Henrik Kniberg
“Limited Blast Radius” via decoupled architecture
Henrik Kniberg
”Limited Blast Radius” via gradual rollout
Henrik Kniberg
Trust > Control
100% control = 0% motion
If everything’s under control,
you’re going too slow!
- Mario Andretti
Henrik Kniberg
Idea/Problem
“Radio you
can save!”
Narrative &
Prototypes &
“Follow your
favorite artist”
Metrics
A/B stats
Build MVP
Tweak Deploy
Analyze data
Henrik Kniberg
Example:
Big Government Project
00:22
Henrik Kniberg
Team structure - before
Requirements 3 Test
analyst Development team
team teams
! !
#% #%
!? !?
52
Henrik Kniberg
Next 10 User
Ideas
Features
Development
System
features
acceptance Production
test
test
53
Henrik Kniberg
Team
Next 10
Dev
Ready for Sys test
swimlanes
features
in progress
sys test
progress
54
Henrik Kniberg
Team
Next 10
Dev
Ready for
swimlanes
features
in progress
sys test
Henrik Kniberg
55
”Daily cocktail party” 9:15 – 10:15
56
Henrik Kniberg
10:00 – 10:15
Project sync
57
Henrik Kniberg
Example: Measuring velocity by counting cards
Count
cards
58
Henrik Kniberg
Example: Release planning using a burnup chart
All of these
will be done
Total
# of
Week
delivered Some of these
features
will be done,
but not all
None of these
will be done
60 60
Henrik Kniberg
”Oh no, bottleneck
in System Test!
FLOW
61
Henrik Kniberg
Tech stories
Next 10
features
Next 5 tech
stories
62
Henrik Kniberg
Bottleneck
”Let’s stop
building new
features”
63
Henrik Kniberg
Everyone
doing tech
stories
64
Henrik Kniberg
Top 3 recurring bugs
65
Henrik Kniberg
Definition of
”ready for
development”
Definition of
”ready for
system test”
66
Henrik Kniberg
Henrik Kniberg 67 67
Henrik Kniberg
Release
Before:
Test at end Test Fix %&@#!
Now: Release
Test continuously
Test Fix
Test at end:
%&@#!
Test continuously:
68
Henrik Kniberg
Bug fixing process
Bug found!
Ignore
it
69
Henrik Kniberg
Three input queues
Next 10
features
Next 5 tech
stories
Next 5 lower
priority bugs
70
Henrik Kniberg
Wrapup
00:22
Henrik Kniberg
What is an Agile Tester?
Henrik Kniberg
Quality Quality
Mindset
Assurance
Assistance
Automatic
Manual test
test
Functional Exploratory
test
test
Requirements
Customer
needs
Late Early
involvement
involvement
Long Short
feedback loop
feedback loop
Henrik Kniberg