Quality without QA
A lean approach to less bugs
Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy
Facts
800+
Developers
:
Quality
Assurance
Assistance &
analysis
n. koâla tēa
Quality
AWARENESS
LEADS
PROSPECTS
SALES
AWARENESS
LEADS
PROSPECTS
SALES
DOGFOODING
MANUAL QA
buggy code your team writes
less buggy code that ships
AUTOMATED TESTS
CODE REVIEW
fast and
cheap
slow and/or
expensive
Baked In
Quality
Photo: Simon Law
feature/JIRA-123
stable master branch
isolated feature work
master
Branching workflow
Merge is blocked until..
1. CI builds passing?
2. At least 2 reviewers approved?
3. All rework complete?
atlassian.com/git
Want to get Git right?
Automated Tests
Comic: Randall Munroe http://xkcd.com/303/
Comic: Randall Munroe http://xkcd.com/303/
“I’m running the tests”
Types of Tests
junit
W
ebDriver
slowfast
run as pre-commit hook
qunit(headless)
checkstyle
“wired”junitREST
no product needed require a live product instance
automatically triggered
Building branches
maste
always build master
~500Kbuilds per month
Testing with Git (webinar)
Sarah Goff-Dupont,

CI Extraordinaire
tinyurl.com/superci
Build enforcement
human judgement needed
?
“what-evs”
bad API decision
O(n!) algorithm
technical debt
Build enforcement
Code
Review
Photo: Yogi (Flickr)
Better
Code
Shared
Knowledge
Team
Ownership
G =
1
R+1
Developer guilt
Team
Ownership
Better
Code
Shared
Knowledge
Team
Ownership
Code reviews take
negative time
Reviews and releases
10
20
30
40
Daily Weekly Monthly Quarterly Yearly
Code Review No Code Review
Source: Atlassian Git Survey 2013
Tim’s
for
Pull
Requests
TOP
TEN
TIPS
1. One issue, one pull request
= !
2. Minimum TWO approvals before merge
3. Have 1.5x - 2.5x that number reviewers
4. Use git blame / git guilt to find reviewers
5. Avoid flamewars!
negotiate,
arbitrate
or
escalate
6. Stuck in review?
Make Tuesday & Thursday inbox zero days
7. @mention specialists
8. Raise issues for TODOs
// TODO fix this hack
// TODO fix this (JRA-1773)
obvious
code
code
comments
PR
comments
> >
9. Move comments into code
10. Build a team policy, as a team
…and enforce it!
DOGFOODING
MANUAL QA
AUTOMATED TESTS
CODE REVIEW
Dogfooding?
feature/JIRA-123
stable master branch
isolated feature work
master
Continuous
Deployment
Extreme Dogfooding
Dogfooding is

an important tool
to help you catch
regressions
You need both 

Automated Tests
and Code Review
Git branching

greatly helps
isolation, stability
& testing
Quality
Assurance
Assistance &
analysis
So what does QA do?
• QA leadership
• Training

• Feature kick-offs

• Tooling

• Analysis
Analysis
Analysis
Tell me more about QA!
How the JIRA team keeps 

quality at speed
tinyurl.com/jiraqa
Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy
Thank you!

[123] quality without qa