Quality without QAA lean approach to less bugs
Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy
Facts
800+ Developers
Quality AssuranceAssistanc
e &
analysis
n. koâla tēaQuality
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 workflowMerge 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?
Comic: Randall Munroe http://xkcd.com/303/
Comic: Randall Munroe http://xkcd.com/303/
“I’m running the tests”
Types of Tests
junit
WebDriv
er
slowfast
run as pre-commit hook
qunit
(hea
dless
)
chec
kstyl
e
“wire
d” ju
nitRE
ST
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
CodeReview
Photo: Yogi (Flickr)
Better Code
Shared Knowledge
Team Ownership
G = 1
R+1
Developer guilt
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)
obviouscode
codecomments
PRcomments
> >
9. Move comments into code
10. Build a team policy, as a team
…and enforce it!
DOGFOODING
MANUAL QA
AUTOMATED TESTS
CODE REVIEW
feature/JIRA-123
stable master branch
isolated feature work
master
Continuous Deployment
Extreme Dogfooding
Dogfooding isan important tool to help you catch
regressions
You need both Automated Tests and Code Review
Git branchinggreatly helps
isolation, stability & testing
Quality AssuranceAssistanc
e &
analysis
So what does QA do?
• QA leadership • Training• Feature kick-offs• Tooling• 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!