Download - Git Branching for Agile Teams

Transcript
Page 1: Git Branching for Agile Teams

Git Branching for Agile Teams

Helping agile teams be awesomemoar^

@svenpet

Page 2: Git Branching for Agile Teams

@svenpet

Sven Peters !

Atlassian Ambassador & Geek

Guten Morgen

Page 3: Git Branching for Agile Teams

Housekeeping

Submit Qs for A!

Smile, we’re on camera.

Tweet to #code4acause

1

2

3

Page 4: Git Branching for Agile Teams

Agenda

Git + agile = BFFs

Branching models for agile teams

Incorporating best practices

Trade-offs to consider

1

2

3

4

Page 5: Git Branching for Agile Teams

Why Git + Agile?

Page 6: Git Branching for Agile Teams

Build in narrow vertical slices

DATA B A S E

B AC K E N D

F R O N T E N D

T E ST I N G

Time

“big bang” launch

DATA B A S E

B AC K E N D

F R O N T E N D

T E ST I N G

MVP launch

1

Page 7: Git Branching for Agile Teams

potentially shippable, even without this piece

Build in narrow vertical slicesI have a roof!

Page 8: Git Branching for Agile Teams

Make releases a non-eventjust a few dependencies...

2

Page 9: Git Branching for Agile Teams

Make releases a non-event

Page 10: Git Branching for Agile Teams

Chaos!

look Ma, a goat!

I do my thing, too

I do my thing

Page 11: Git Branching for Agile Teams

Hoarding

Page 12: Git Branching for Agile Teams

Isn‘t it ironic?

Page 13: Git Branching for Agile Teams

A Few Words About Git

Page 14: Git Branching for Agile Teams

Branching & merging is hell

In Subversioneverybody stops work until merge is done

waiting until implementation is done

afraid that the build will fail

Page 15: Git Branching for Agile Teams

Branching & merging is a breeze

In Git

Page 16: Git Branching for Agile Teams

Branch-per-Issue Workflow

Page 17: Git Branching for Agile Teams

Keep the main line clean

dev branch = isolation chamber

Page 18: Git Branching for Agile Teams

Clarity & traceability

Page 19: Git Branching for Agile Teams

Branch-per-Issue Workflowfor SaaS teams

Page 20: Git Branching for Agile Teams

sgd-IRKD-30

sgd-IRKD-45

master

A branch for every issue

fortunately, no goats here

Page 21: Git Branching for Agile Teams

sgd-IRKD-30

A branch for every issue

master

sgd-IRKD-30

God-like admin rights optional

Page 22: Git Branching for Agile Teams

A branch for every issue

master

sgd-IRKD-30

Page 23: Git Branching for Agile Teams

A branch for every issue

master

sgd-IRKD-30

Page 24: Git Branching for Agile Teams

A branch for every issue

master

sgd-IRKD-30

gatekeeper

Page 25: Git Branching for Agile Teams

A branch for every issuestill no goats!

Page 26: Git Branching for Agile Teams

Using an Integration Branch

Page 27: Git Branching for Agile Teams

sgd-IRKD-30

sgd-IRKD-45

master

Surprise!

Page 28: Git Branching for Agile Teams

sgd-IRKD-30

sgd-IRKD-45

master

Using an integration branch

integration

Page 29: Git Branching for Agile Teams

sgd-IRKD-30

sgd-IRKD-45

master

Using an integration branch

integration

Page 30: Git Branching for Agile Teams

Branch-per-Issue Workflow

for installed app teams

Page 31: Git Branching for Agile Teams

sgd-IRKD-30

master

Multiple-version support

v 1.2

v 1.1

Page 32: Git Branching for Agile Teams

sgd-IRKD-30

master

Multiple-version support

v 1.2

v 1.1

sgd-IRKD-31

Page 33: Git Branching for Agile Teams

sgd-IRKD-30

master

Multiple-version support

v 1.2

v 1.1bugfix-IRKD-32

Page 34: Git Branching for Agile Teams

master

Multiple-version support

v 1.2

v 1.1

bugfix-IRKD-32

Page 35: Git Branching for Agile Teams

master

Multiple-version support

v 1.2

v 1.1

manually

automatically

https://bitbucket.org/durdn/automatic-merge-hook

The Atlassian Way

Page 36: Git Branching for Agile Teams

Continuous Integration &

Peer Review

Page 37: Git Branching for Agile Teams

Running CI on dev branches

all active branches are under test

Page 38: Git Branching for Agile Teams

1

2

3

Running CI on dev branches

Clone master’s CI configs

Jenkins plugin or Git hook

bitbucket.org/tpettersen/git-ci-hooks

Page 39: Git Branching for Agile Teams

Running CI on dev branches

Page 40: Git Branching for Agile Teams

Running CI on dev branches

sgd-IRKD-30

master

v 1.2

Page 41: Git Branching for Agile Teams

Peer code review

1

2

3

Create request via UI or git request-pull

Review, revise, rinse & repeat

Approve & merge

Page 42: Git Branching for Agile Teams

Peer code review

Page 43: Git Branching for Agile Teams

Additional Considerations

Page 44: Git Branching for Agile Teams

It’s not “pure CI”beware of goats

Page 45: Git Branching for Agile Teams

Dark features

Page 46: Git Branching for Agile Teams

Q & A

Page 47: Git Branching for Agile Teams

More info at...

1

2

http://atlassian.com/git

@Atlassian

Page 48: Git Branching for Agile Teams

#code4acause

Page 49: Git Branching for Agile Teams

@svenpet

Sven Peters !

Atlassian Ambassador & Geek

THANKS