SlideShare une entreprise Scribd logo
1  sur  93
Télécharger pour lire hors ligne
Git Branching for Agile Teams
Why use Git + agile?
Git helps agile teams
unleash their potential
Developer
How?
First, let’s review
two pillars of agile
1
Build in narrow vertical slices
Waterfall: can’t release anything
until everything is ready to release
DATABASE
BACK END
FRONT END
TESTING
“big bang” launch
DATABASE
BACK END
FRONT END
TESTING
MVP launch
Agile: something can get released
fairly quickly
Modularity for the win!
Or to put it another way…
Potentially shippable, even
without this piece
I have a roof!
The modular house
may not have all its
components, but it’ll be
move-in ready first
Modularity enables teams
to have something testable
—and potentially shippable—
much sooner
2
Make releases a non-event
A big bang style release
(everything at once)
means dependencies
up the wazoo
Look familiar?
Just a few
dependencies...
Do you hold everything
in a local workspace
until the entire user
story is implemented?
Nope
That would mean an
important practice for agile
teams wasn’t followed:
continuous integration
Continuous integration, noun:
Testing changes against the existing
code base and in-progress changes
from the team throughout the
development cycle.
Sure CI is
important, but…
Will frequent,
incremental changes
to the repo introduce
more risk?
YesHmm
But only if all those
changes are piled on
the primary code line
The idea is to push
changes to the repo
without de-stabilizing
the primary code line
That’s where Git
comes in
Tell me
more!
Developer
branching &
merging is hell
In Subversion
branching &
merging is easy
In Git
It’s all in the way
data and histories
are tracked
Git stores data as a
series of snapshots
(rather than changesets)
If SVN is a
hand-drawn map,
Git comes with
built-in GPS
Git uses triangulation
to figure out what the
merged version should
look like on its own
But enough
about the technical
underpinnings
Git enables a dev to
fully exploit the power
of branch-and-merge
workflows
Why use a branching
workflow?
Branching protects the
main code line, and
supports an individual
developer’s workflow
Atlassian devs create
a branch for each
issue they work on
And it’s helping us
deliver faster than
ever before
Keep the main line clean
Dev branches are
like an isolation
chamber
No half-baked code
on the main line
There are other
benefits, too…
Clarity & traceability
If it’s been merged
up, it’s ready to
release. Easy!
The branch-per-issue model
is the synthesis of:
“build in narrow vertical slices”
+
“make releases a non-event”
Branch-per-Issue
Workflow
for SaaS teams
The basic idea: a master
code line with several
development branches
running alongside it
A branch for every issue
Keep master green
feature/DEV-30
feature/DEV-45
master
Experiment on your feature branch
Creating a branch
feature/DEV-30
master
Check your CI system to make
sure you’re creating your dev
branch from a clean commit!
Break all the tests on
a branch without
disrupting teammates
Merge up when work is done
feature/DEV-30
master
With implementation complete, and CI passing,
merge upstream! On some teams, the product
owner acts as a “gatekeeper,” selecting branches for
merge based on what they want to release.
The beauty of this
branching model:
Code changes that are
breaking tests on a dev branch
aren’t affecting master or
impeding the team’s ability to
release from master
It’s easy to control what
is released to users and
what is held back
Now, a variation on
that model:
Using an Integration Branch
The basic idea: a shared
integration branch running
between feature branches
and the master branch
But what if teammates
merge incompatible
changes upstream?
Surprise!
feature/DEV-30
feature/DEV-45
master
Now master is broken
And that’s sad
Some teams avoid this
by using a shared branch
to integrate changes
during development
Builds fail on the
integration branch,
not the release branch
Using an integration branch
integration
feature/DEV-30
master
feature/DEV-45
Merge all clean CI runs
on the dev branch
to the integration
branch and run CI
If changes don’t play
well with changes made
by teammates, go back
and fix the branch
When implementation
is done and CI on the
integration branch is clean,
it’s ready to merge to master
Branch-per-Issue
Workflow
for installed app teams
Multiple-version support
master
v 1.2
v 1.1
feature/DEV-30
In this model,
master acts as an
“alpha” branch
Devs make branches
off of master for
new development
And run CI, maybe
use an integration
branch, etc.
Then a stable version
branch is cut just
before release time
Create a bugfix branch
off the release branch
and fix the problem there
Multiple-version support
master
v 1.2
bugfix-DEV 32
feature/DEV-30
Then cascade the fix
back to the stable version
branch and master
Incorporating Agile
Best Practices
Continuous Integration
& Peer Review
Running CI on dev branches
All active branches
are under test
Yes: all active
branches
But that can
clog the
build queue
Zzzz
Balance testing rigor and
resource conservation
with manually triggered
builds on dev branches
Triggering CI
master
v 1.2
feature/DEV-30
Developer
Automation
What about code reviews?
With Git, use pull
requests to integrate
peer review
into the workflow
Using pull requests
1
2
3
Create request via UI or git request-pull
Review, revise, rinse & repeat
Approve & merge
Additional
Considerations
Is “pure” continuous
integration in a
branch-per-issue
model possible?
Nope
For a CI purist,
that matters
!
For a CI pragmatist,
it doesn’t
But shared integration
branches and pulling
updates from master
down to dev branches
comes close to “pure”
And this workflow
is so powerful for
agile teams, it’s
wise to be practical
Here’s to easy releases,
happy developers, and
getting Git right!
More info
1 http://atlassian.com/git
2 @Atlassian
Git Branching for Agile Teams

Contenu connexe

Tendances

Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 

Tendances (20)

Git flow
Git flowGit flow
Git flow
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flow
 
Git Terminologies
Git TerminologiesGit Terminologies
Git Terminologies
 
Git training v10
Git training v10Git training v10
Git training v10
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Understanding Branching and Merging in Git
Understanding Branching and Merging in GitUnderstanding Branching and Merging in Git
Understanding Branching and Merging in Git
 
Git basic
Git basicGit basic
Git basic
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
Git
GitGit
Git
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
GitLab.pptx
GitLab.pptxGitLab.pptx
GitLab.pptx
 
Git
GitGit
Git
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 

Similaire à Git Branching for Agile Teams

DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
Simplilearn
 

Similaire à Git Branching for Agile Teams (20)

Intro to Gitflow
Intro to GitflowIntro to Gitflow
Intro to Gitflow
 
CoDe:U git flow
CoDe:U git flowCoDe:U git flow
CoDe:U git flow
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Introduction to Git (part 3)
Introduction to Git (part 3)Introduction to Git (part 3)
Introduction to Git (part 3)
 
TOP DEVOPS INTERVIEW QUESTIONS AND ANSWERS 2022
TOP DEVOPS INTERVIEW QUESTIONS AND ANSWERS 2022TOP DEVOPS INTERVIEW QUESTIONS AND ANSWERS 2022
TOP DEVOPS INTERVIEW QUESTIONS AND ANSWERS 2022
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Alm tce parallel development
Alm tce parallel developmentAlm tce parallel development
Alm tce parallel development
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow Workshop
 
Continuous delivery the french way Agile Cambridge 2014
Continuous delivery the french way Agile Cambridge 2014Continuous delivery the french way Agile Cambridge 2014
Continuous delivery the french way Agile Cambridge 2014
 
DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
Using svn
Using svnUsing svn
Using svn
 
Clarive 7 Branching Model
Clarive 7 Branching ModelClarive 7 Branching Model
Clarive 7 Branching Model
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 
DevOps Service | Mindtree
DevOps Service | MindtreeDevOps Service | Mindtree
DevOps Service | Mindtree
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
SVN Basics
SVN BasicsSVN Basics
SVN Basics
 

Plus de Atlassian

Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
Atlassian
 

Plus de Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 

Git Branching for Agile Teams