Top Banner
Quality without QA A lean approach to less bugs Tim Pettersen Developer Provocateur Atlassian @kannonboy
48

[123] quality without qa

Jan 07, 2017

Download

Technology

NAVER D2
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: [123] quality without qa

Quality without QAA lean approach to less bugs

Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy

Page 2: [123] quality without qa

Facts

800+ Developers

Page 3: [123] quality without qa

:

Page 4: [123] quality without qa

Quality AssuranceAssistanc

e &

analysis

Page 5: [123] quality without qa

n. koâla tēaQuality

Page 6: [123] quality without qa

AWARENESS

LEADS

PROSPECTS

SALES

Page 7: [123] quality without qa

AWARENESS

LEADS

PROSPECTS

SALES

Page 8: [123] quality without qa

DOGFOODING

MANUAL QA

buggy code your team writes

less buggy code that ships

AUTOMATED TESTS

CODE REVIEW

fast and cheap

slow and/or expensive

Page 9: [123] quality without qa

Baked In Quality

Photo: Simon Law

Page 10: [123] quality without qa

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?

Page 11: [123] quality without qa

atlassian.com/git

Want to get Git right?

Page 12: [123] quality without qa

Automated Tests

Page 13: [123] quality without qa

Comic: Randall Munroe http://xkcd.com/303/

Page 14: [123] quality without qa

Comic: Randall Munroe http://xkcd.com/303/

“I’m running the tests”

Page 15: [123] quality without qa

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

Page 16: [123] quality without qa

automatically triggered

Building branches

maste

always build master

Page 17: [123] quality without qa

~500Kbuilds per month

Page 18: [123] quality without qa

Testing with Git (webinar)

Sarah Goff-Dupont,CI Extraordinaire

tinyurl.com/superci

Page 19: [123] quality without qa

Build enforcement

Page 20: [123] quality without qa

human judgement needed

?

“what-evs”

bad API decision

O(n!) algorithm

technical debt

Build enforcement

Page 21: [123] quality without qa

CodeReview

Photo: Yogi (Flickr)

Page 22: [123] quality without qa

Better Code

Shared Knowledge

Team Ownership

Page 23: [123] quality without qa

G = 1

R+1

Developer guilt

Page 24: [123] quality without qa

Team Ownership

Page 25: [123] quality without qa

Better Code

Shared Knowledge

Team Ownership

Page 26: [123] quality without qa

Code reviews take negative time

Page 27: [123] quality without qa

Reviews and releases

10

20

30

40

Daily Weekly Monthly Quarterly Yearly

Code Review No Code Review

Source: Atlassian Git Survey 2013

Page 28: [123] quality without qa

Tim’s

for Pull Requests

TOP TEN TIPS

Page 29: [123] quality without qa

1. One issue, one pull request

=

Page 30: [123] quality without qa

2. Minimum TWO approvals before merge

3. Have 1.5x - 2.5x that number reviewers

Page 31: [123] quality without qa

4. Use git blame / git guilt to find reviewers

Page 32: [123] quality without qa

5. Avoid flamewars!

negotiate, arbitrate

or escalate

Page 33: [123] quality without qa

6. Stuck in review?

Make Tuesday & Thursday inbox zero days

Page 34: [123] quality without qa

7. @mention specialists

Page 35: [123] quality without qa

8. Raise issues for TODOs

// TODO fix this hack

// TODO fix this (JRA-1773)

Page 36: [123] quality without qa

obviouscode

codecomments

PRcomments

> >

9. Move comments into code

Page 37: [123] quality without qa

10. Build a team policy, as a team

…and enforce it!

Page 38: [123] quality without qa

DOGFOODING

MANUAL QA

AUTOMATED TESTS

CODE REVIEW

Page 39: [123] quality without qa

Dogfooding?

Page 40: [123] quality without qa

feature/JIRA-123

stable master branch

isolated feature work

master

Continuous Deployment

Page 41: [123] quality without qa

Extreme Dogfooding

Page 42: [123] quality without qa

Dogfooding isan important tool to help you catch

regressions

You need both Automated Tests and Code Review

Git branchinggreatly helps

isolation, stability & testing

Page 43: [123] quality without qa

Quality AssuranceAssistanc

e &

analysis

Page 44: [123] quality without qa

So what does QA do?

• QA leadership • Training• Feature kick-offs• Tooling• Analysis

Page 45: [123] quality without qa

Analysis

Page 46: [123] quality without qa

Analysis

Page 47: [123] quality without qa

Tell me more about QA!

How the JIRA team keeps quality at speed

tinyurl.com/jiraqa

Page 48: [123] quality without qa

Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy

Thank you!