a business case for git - tim pettersen

110
#atlassian

Upload: atlassian

Post on 17-Jan-2015

387 views

Category:

Software


0 download

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.

TRANSCRIPT

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!