A Business Case for Git - Tim Pettersen

Post on 17-Jan-2015

386 views 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 of A Business Case for Git - Tim Pettersen

#atlassian

Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy

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

The business case for

for businessPhoto: Hpeterswald

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

?

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

Wranglin’Release

Photo: Colin Gray

JIRA-456

JIRA-123

Linear workflow

feature/JIRA-123

master

Branching workflow

feature/JIRA-123

master

Branching workflow

feature/JIRA-123

isolated feature work

master

Branching workflow

feature/JIRA-123

stable master branch

isolated feature work

master

Branching workflow

git vs centralized

10

20

30

40

Daily Weekly Monthly Quarterly Yearly

git centralized

Source: Atlassian Git Survey 2013

git vs centralized

Photo: Daniel Ramirez

Shipping releases

• Git makes releasing easier and more regular

• Regular releases are good for everybody

TheBusiness

Case

Code Quality

Quality

n. koâla tēaQuality

n. koâla tēaQuality

CodeReview

Photo: Yogi (Flickr)

Reviews and releases

10

20

30

40

Daily Weekly Monthly Quarterly Yearly

Code Review No Code Review

Source: Atlassian Git Survey 2013

Better Code

Better Code

Shared Knowledge

Better Code

Shared Knowledge

Team Ownership

G = 1

R+1

Developer guilt

Team Ownership

Team Ownership

Team Ownership

</rant>

Code review

Pull requests

Pull requests

Pull requests

review before merging

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

”“

Pull requests

Pull requests

Pull requests

Pull requeststechnical debt

Pull requestsO(n!) algorithm

technical debt

Pull requestsbad API decision

O(n!) algorithm

technical debt

Pull requests

“what-evs”

bad API decision

O(n!) algorithm

technical debt

Pull requestshuman judgement needed

?

“what-evs”

bad API decision

O(n!) algorithm

technical debt

Pull request enforcement

Pull request enforcement

Pull request enforcement

• Code review shortens time to release

• Code review reduces business risk

• Code review and CI complement each other

TheBusiness

Case

Unblock developers

Photo: Dwight Sipler

Branch name pre-populated

Is the branch green?

Branch name pre-populated

Confounding build breakages

master

Confounding build breakages

master

Confounding build breakages

master

Confounding build breakages

master

Confounding build breakages

master

Confounding build breakages

bugfix/JRA-1

master

Confounding build breakages

bugfix/JRA-1

master

Confounding build breakages

bugfix/JRA-1

master

Confounding build breakages

bugfix/JRA-1

master

Confounding build breakages

bugfix/JRA-1

master

Is the branch green?

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

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

“I’m running the tests”

Building branches

master

always build master

automatically triggered

Building branches

master

always build master

• Server-side branching is crazy… like a fox

• Git makes developers more productive

• Running CI on branches saves a lot of time

TheBusiness

Case

Collaborate

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

better

Circle of Trust

Photo: Aljaz Zajc

Core dev team

Circle of Trust

Interns

Other product teams

SupportCore dev team

Circle of Trust

Strangers on the internet

Contractors

Interns

Other product teams

SupportCore dev team

Circle of Trust

Collaborating with SVN

Core dev team

Collaborating with SVN

Core dev team

Everyone else

Collaborating with SVN

Core dev team

Everyone else

emailing patches repository tarballs hell-ish conflicts

Collaborating with forks

Everyone else

Core dev team

Collaborating with forks

Everyone else

Core dev team

Collaborating with forks

Everyone else

Core dev team Changes

automatically synchronize downstream

Collaborating with forks

Everyone else

Core dev team Changes

automatically synchronize downstream

.. but must be reviewed

before moving upstream

Mentoring with branches

Senior developers

Junior developers

master

feature/*

Mentoring with branches

Senior developers

Junior developers

master

feature/*

Mentoring with branches

Senior developers

Junior developers

master

feature/*

Mentoring with branches

Senior developers

Junior developers

master

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

Strangers on the internet

Interns

Other product teams

SupportCore dev team

Contractors

• Collaboration used to be hard

• Forks make external collaboration easy

• Branch permissions are great for mentoring

TheBusiness

Case

BusinessRisk

Photo:Remi Maupetit

Don’t lose your investment

Don’t lose your investment

Don’t lose your investment

Don’t lose your investment

Centralized DVCSCentralized SVN

Centralized DVCSCentralized SVN

??

? ?

??

Centralized DVCSCentralized SVN

??

? ?

??

Decaying branches

Decaying branchesfailed experiments?

Implementing gitis a business risk

Implementing gitis a business risk

NOT

VCS marketshare 2014

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

9% 48% 37%

VCS marketshare 2014

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

9% 48% 37% 2%

All sorts of teams are on&

• 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

Tim Pettersen • Developer Provocateur • Atlassian • @kannonboy

Thank you!