110
#atlassian

A Business Case for Git - Tim Pettersen

Embed Size (px)

DESCRIPTION

So you want to go Git, but other stakeholders in your organization aren't quite convinced it's worth the effort? This talk will explain why migrating to Git is a win for the whole business – not just developers. We'll give you the ammunition you need to convince your team that the switch to Git is a no-brainer.

Citation preview

Page 1: A Business Case for Git - Tim Pettersen

#atlassian

Page 2: A Business Case for Git - Tim Pettersen

Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy

The business case for GitIt’s not (just) about developer happiness

The business case for

Page 3: A Business Case for Git - Tim Pettersen
Page 4: A Business Case for Git - Tim Pettersen

for businessPhoto: Hpeterswald

Page 5: A Business Case for Git - Tim Pettersen

Marcus Bertrand Don’t fear the branch!!!

Stefan Saasen Scaling git!!!

Sarah Goff-Dupont Super-powered git+CI!!!

Nicola Paolucci Becoming a git master!!!

More

?

Page 6: A Business Case for Git - Tim Pettersen

S H I P P I N G I T

C O D E Q U A L I T Y

D E V E L O P E R P R O D U C T I V I T Y

K I L L E R C O L L A B O R AT I O N

B U S I N E S S R I S K

The business case for

Page 7: A Business Case for Git - Tim Pettersen

Wranglin’Release

Photo: Colin Gray

Page 8: A Business Case for Git - Tim Pettersen

JIRA-456

JIRA-123

Linear workflow

Page 9: A Business Case for Git - Tim Pettersen

feature/JIRA-123

master

Branching workflow

Page 10: A Business Case for Git - Tim Pettersen

feature/JIRA-123

master

Branching workflow

Page 11: A Business Case for Git - Tim Pettersen

feature/JIRA-123

isolated feature work

master

Branching workflow

Page 12: A Business Case for Git - Tim Pettersen

feature/JIRA-123

stable master branch

isolated feature work

master

Branching workflow

Page 13: A Business Case for Git - Tim Pettersen

git vs centralized

Page 14: A Business Case for Git - Tim Pettersen

10

20

30

40

Daily Weekly Monthly Quarterly Yearly

git centralized

Source: Atlassian Git Survey 2013

git vs centralized

Page 15: A Business Case for Git - Tim Pettersen

Photo: Daniel Ramirez

Shipping releases

Page 16: A Business Case for Git - Tim Pettersen

• Git makes releasing easier and more regular

• Regular releases are good for everybody

TheBusiness

Case

Page 17: A Business Case for Git - Tim Pettersen

Code Quality

Page 18: A Business Case for Git - Tim Pettersen

Quality

Page 19: A Business Case for Git - Tim Pettersen

n. koâla tēaQuality

Page 20: A Business Case for Git - Tim Pettersen

n. koâla tēaQuality

Page 21: A Business Case for Git - Tim Pettersen

CodeReview

Photo: Yogi (Flickr)

Page 22: A Business Case for Git - Tim Pettersen

Reviews and releases

10

20

30

40

Daily Weekly Monthly Quarterly Yearly

Code Review No Code Review

Source: Atlassian Git Survey 2013

Page 23: A Business Case for Git - Tim Pettersen
Page 24: A Business Case for Git - Tim Pettersen

Better Code

Page 25: A Business Case for Git - Tim Pettersen

Better Code

Shared Knowledge

Page 26: A Business Case for Git - Tim Pettersen

Better Code

Shared Knowledge

Team Ownership

Page 27: A Business Case for Git - Tim Pettersen

G = 1

R+1

Developer guilt

Page 28: A Business Case for Git - Tim Pettersen

Team Ownership

Page 29: A Business Case for Git - Tim Pettersen

Team Ownership

Page 30: A Business Case for Git - Tim Pettersen

Team Ownership

Page 31: A Business Case for Git - Tim Pettersen

</rant>

Page 32: A Business Case for Git - Tim Pettersen

Code review

Page 33: A Business Case for Git - Tim Pettersen

Pull requests

Page 34: A Business Case for Git - Tim Pettersen

Pull requests

Page 35: A Business Case for Git - Tim Pettersen

Pull requests

review before merging

Page 36: A Business Case for Git - Tim Pettersen

We Don’t Need Code Review… We Have Continuous Integration!W E L L I N T E N T I O N E D ( B U T I N C O R R E C T ) D E V E L O P E R

”“

Page 37: A Business Case for Git - Tim Pettersen

Pull requests

Page 38: A Business Case for Git - Tim Pettersen

Pull requests

Page 39: A Business Case for Git - Tim Pettersen

Pull requests

Page 40: A Business Case for Git - Tim Pettersen

Pull requeststechnical debt

Page 41: A Business Case for Git - Tim Pettersen

Pull requestsO(n!) algorithm

technical debt

Page 42: A Business Case for Git - Tim Pettersen

Pull requestsbad API decision

O(n!) algorithm

technical debt

Page 43: A Business Case for Git - Tim Pettersen

Pull requests

“what-evs”

bad API decision

O(n!) algorithm

technical debt

Page 44: A Business Case for Git - Tim Pettersen

Pull requestshuman judgement needed

?

“what-evs”

bad API decision

O(n!) algorithm

technical debt

Page 45: A Business Case for Git - Tim Pettersen

Pull request enforcement

Page 46: A Business Case for Git - Tim Pettersen

Pull request enforcement

Page 47: A Business Case for Git - Tim Pettersen

Pull request enforcement

Page 48: A Business Case for Git - Tim Pettersen

• Code review shortens time to release

• Code review reduces business risk

• Code review and CI complement each other

TheBusiness

Case

Page 49: A Business Case for Git - Tim Pettersen

Unblock developers

Photo: Dwight Sipler

Page 50: A Business Case for Git - Tim Pettersen
Page 51: A Business Case for Git - Tim Pettersen
Page 52: A Business Case for Git - Tim Pettersen
Page 53: A Business Case for Git - Tim Pettersen

Branch name pre-populated

Page 54: A Business Case for Git - Tim Pettersen

Is the branch green?

Branch name pre-populated

Page 55: A Business Case for Git - Tim Pettersen

Confounding build breakages

master

Page 56: A Business Case for Git - Tim Pettersen

Confounding build breakages

master

Page 57: A Business Case for Git - Tim Pettersen

Confounding build breakages

master

Page 58: A Business Case for Git - Tim Pettersen

Confounding build breakages

master

Page 59: A Business Case for Git - Tim Pettersen

Confounding build breakages

master

Page 60: A Business Case for Git - Tim Pettersen

Confounding build breakages

bugfix/JRA-1

master

Page 61: A Business Case for Git - Tim Pettersen

Confounding build breakages

bugfix/JRA-1

master

Page 62: A Business Case for Git - Tim Pettersen

Confounding build breakages

bugfix/JRA-1

master

Page 63: A Business Case for Git - Tim Pettersen

Confounding build breakages

bugfix/JRA-1

master

Page 64: A Business Case for Git - Tim Pettersen

Confounding build breakages

bugfix/JRA-1

master

Page 65: A Business Case for Git - Tim Pettersen

Is the branch green?

Page 66: A Business Case for Git - Tim Pettersen

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

Page 67: A Business Case for Git - Tim Pettersen

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

“I’m running the tests”

Page 68: A Business Case for Git - Tim Pettersen

Building branches

master

always build master

Page 69: A Business Case for Git - Tim Pettersen

automatically triggered

Building branches

master

always build master

Page 70: A Business Case for Git - Tim Pettersen

• Server-side branching is crazy… like a fox

• Git makes developers more productive

• Running CI on branches saves a lot of time

TheBusiness

Case

Page 71: A Business Case for Git - Tim Pettersen

Collaborate

Photo: Photographer's Mate 3rd Class Eric S. Garst

better

Page 72: A Business Case for Git - Tim Pettersen

Circle of Trust

Photo: Aljaz Zajc

Page 73: A Business Case for Git - Tim Pettersen

Core dev team

Circle of Trust

Page 74: A Business Case for Git - Tim Pettersen

Interns

Other product teams

SupportCore dev team

Circle of Trust

Page 75: A Business Case for Git - Tim Pettersen

Strangers on the internet

Contractors

Interns

Other product teams

SupportCore dev team

Circle of Trust

Page 76: A Business Case for Git - Tim Pettersen

Collaborating with SVN

Core dev team

Page 77: A Business Case for Git - Tim Pettersen

Collaborating with SVN

Core dev team

Everyone else

Page 78: A Business Case for Git - Tim Pettersen

Collaborating with SVN

Core dev team

Everyone else

emailing patches repository tarballs hell-ish conflicts

Page 79: A Business Case for Git - Tim Pettersen

Collaborating with forks

Everyone else

Core dev team

Page 80: A Business Case for Git - Tim Pettersen

Collaborating with forks

Everyone else

Core dev team

Page 81: A Business Case for Git - Tim Pettersen

Collaborating with forks

Everyone else

Core dev team Changes

automatically synchronize downstream

Page 82: A Business Case for Git - Tim Pettersen

Collaborating with forks

Everyone else

Core dev team Changes

automatically synchronize downstream

.. but must be reviewed

before moving upstream

Page 83: A Business Case for Git - Tim Pettersen

Mentoring with branches

Senior developers

Junior developers

master

Page 84: A Business Case for Git - Tim Pettersen

feature/*

Mentoring with branches

Senior developers

Junior developers

master

Page 85: A Business Case for Git - Tim Pettersen

feature/*

Mentoring with branches

Senior developers

Junior developers

master

Page 86: A Business Case for Git - Tim Pettersen

feature/*

Mentoring with branches

Senior developers

Junior developers

master

Page 87: A Business Case for Git - Tim Pettersen

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

Page 88: A Business Case for Git - Tim Pettersen

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

Page 89: A Business Case for Git - Tim Pettersen

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

Page 90: A Business Case for Git - Tim Pettersen

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

Page 91: A Business Case for Git - Tim Pettersen

• Collaboration used to be hard

• Forks make external collaboration easy

• Branch permissions are great for mentoring

TheBusiness

Case

Page 92: A Business Case for Git - Tim Pettersen

BusinessRisk

Photo:Remi Maupetit

Page 93: A Business Case for Git - Tim Pettersen

Don’t lose your investment

Page 94: A Business Case for Git - Tim Pettersen

Don’t lose your investment

Page 95: A Business Case for Git - Tim Pettersen

Don’t lose your investment

Page 96: A Business Case for Git - Tim Pettersen

Don’t lose your investment

Page 97: A Business Case for Git - Tim Pettersen

Centralized DVCSCentralized SVN

Page 98: A Business Case for Git - Tim Pettersen

Centralized DVCSCentralized SVN

??

? ?

??

Page 99: A Business Case for Git - Tim Pettersen

Centralized DVCSCentralized SVN

??

? ?

??

Page 100: A Business Case for Git - Tim Pettersen

Decaying branches

Page 101: A Business Case for Git - Tim Pettersen

Decaying branchesfailed experiments?

Page 102: A Business Case for Git - Tim Pettersen

Implementing gitis a business risk

Page 103: A Business Case for Git - Tim Pettersen

Implementing gitis a business risk

NOT

Page 104: A Business Case for Git - Tim Pettersen

VCS marketshare 2014

Source: Black Duck https://www.openhub.net/repositories/compare

9% 48% 37%

Page 105: A Business Case for Git - Tim Pettersen

VCS marketshare 2014

Source: Black Duck https://www.openhub.net/repositories/compare

9% 48% 37% 2%

Page 106: A Business Case for Git - Tim Pettersen

All sorts of teams are on&

Page 107: A Business Case for Git - Tim Pettersen
Page 108: A Business Case for Git - Tim Pettersen
Page 109: A Business Case for Git - Tim Pettersen

• Git helps you track R&D more easily

• Git is widely used in the industry

• Switching to Git will help your hiring effort

TheBusiness

Case

Page 110: A Business Case for Git - Tim Pettersen

Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy

Thank you!