SlideShare a Scribd company logo
Reflections on SCM
Diego Pacheco
@diego_pacheco
❏ Cat's Father
❏ Head of Software Architecture
❏ Agile Coach
❏ SOA/Microservices Expert
❏ DevOps Practitioner
❏ Speaker
❏ Author
diegopacheco
http://diego-pacheco.blogspot.com.br/
About me...
https://diegopacheco.github.io/
Every company works with Branches
Git Made branches much less painful...
But do we think about the implications?
❏ How much they affect CI/CD ?
❏ How much they affect Refactoring?
❏ How much they create bottlenecks?
❏ How much they hide architectural complexity?
❏ They optimized for Local, remote, colarotation or what?
Back do Lean/Agile/DevOps Principles
❏ Increase Feedback into the system
❏ Reduce Feedback cycles
❏ Reduce Batch size (lower delta, lower risk)
❏ Increase deployment frequence
❏ Experiment often
… it’s branches aligned with that?
Branch by Abstraction
❏ Long lived Branches
❏ Easily can live for 2 weeks (1 Sprint) or even much longer
❏ Benefits: Easily to Pause or Cancel
❏ How to:
❏ Introduce Abstraction, Wrote a second implementation
❏ Enable to all, remove old, on/off switch
Branch per Release
❏ Team pushes to prod or regular schedule (Sprint, Monthly)
❏ Also will need to push bug-fix releases in between.
❏ Stable place since devs are still committing on Trunk
❏ CI/CD Teams don't use this technique.
Release form Trunk
❏ Teams with high release cadence release from Trunk.
❏ No Slow down in releases
❏ Branches can be created retroactively
CI/CD
❏ XP technique
❏ CI by definition is single integration Source.
Trunk Based Development
❏ How CI/CD High Performance DevOps teams Work!
❏ Incompatible with GitFlow
❏ Works best for fast interactions/releases and SR engineers.
GitFlow
GitFlow: Commit Races
❏ Lots of changes
❏ First to Commit win
❏ Also known as PR Races
❏ It happens !!!
Issues with Branches
❏ Don’ t encourage Refactoring (Harder Merges)
❏ Shallow Review: Fast LGTM
❏ Batch size Problem (Anti-Lean)
❏ No Real CI happening
❏ Core Team Vs External Contributors
Other alternatives to branches...
The Issue with Release Trains / Calendars
Github Flow
Git OPS
PRs, PP/Mob and Code Review
❏ PR can create “interruptions”.
❏ Branches are good for individuals and bad for teams.
❏ Pair Programing is Code Review (no need to submit a PR)
❏ PP/Mob help to share knowledge
❏ PP/Mob is much faster Feedback
Branches and Architecture
❏ Good Modular Architecture
dont require branches.
❏ Mobile Might require
branches by nature.
❏ Isolation is the ultimate
branch blast radius
reducer.
❏ Code is Dynamic, Branches
are static.
Wrapping Thoughts
❏ Branches and PRs are cheap and the norm today.
❏ Most of companies see CI/CD as tools and not as principles.
❏ It's common to see people that don't want increase deployment frequency.
❏ Good Architecture require less or no branching.
❏ High Frequency releases and gitflow don't match.
❏ Lower Delta, Lower Risk, Release Often, Get more feedback.
Reflections on SCM
Diego Pacheco

More Related Content

PDF
PDF
Holacracy
PDF
AWS IAM
PDF
Architecture & Engineering : Doing the non-obvious!
PDF
Code Forensics
PDF
Thoughts about Shape Up
PDF
Dealing with dependencies
PDF
Architecture 101: Vision, Properties and Skills
Holacracy
AWS IAM
Architecture & Engineering : Doing the non-obvious!
Code Forensics
Thoughts about Shape Up
Dealing with dependencies
Architecture 101: Vision, Properties and Skills

What's hot (19)

PDF
The Death of Microservices
PDF
PDF
Dealing with dependencies in tests
PDF
Design is not Subjective
PDF
Lean 2020
PDF
Google guice
PDF
Design 101
PDF
Lean/Agile/DevOps 2016 part 3
PDF
Spring framework 4.0
PDF
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
PDF
AR/VR The Next Big Thing
PDF
Do Try This At Home
PPTX
Test Driven Development: More Development Than Ever
PDF
Spring Boot
PPTX
boots2nerd
PDF
From 0 to MVP in 40 minutes: decoupled Drupal for startups
PDF
Sacrificing the golden calf of "coding"
PDF
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
PDF
Side projects : why it fails
The Death of Microservices
Dealing with dependencies in tests
Design is not Subjective
Lean 2020
Google guice
Design 101
Lean/Agile/DevOps 2016 part 3
Spring framework 4.0
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
AR/VR The Next Big Thing
Do Try This At Home
Test Driven Development: More Development Than Ever
Spring Boot
boots2nerd
From 0 to MVP in 40 minutes: decoupled Drupal for startups
Sacrificing the golden calf of "coding"
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Side projects : why it fails
Ad

Similar to Reflections on SCM (20)

PDF
Cloud-Native Microservices
PDF
How Rust Views Tradeoffs
PDF
Cloud Native Microservices - Building Blocks for Digital Innovation
PDF
How to get started with Site Reliability Engineering
PDF
Agile Experiences
PPTX
Git essential training & sharing self
PDF
Andrea Di Persio
PPTX
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
PDF
Adtech scala-performance-tuning-150323223738-conversion-gate01
PDF
Adtech x Scala x Performance tuning
PPTX
From Commit to Customer in a fully automated way | DevOps | Third Bridge Group
PDF
Ci tips and_tricks_linards_liepins
PDF
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
PPTX
Trunk Based Development in the Enterprise - Its Relevance and Economics
PPTX
Gluster the ugly parts with Jeff Darcy
PDF
Microservices
PDF
Introduction to DevOps and the Practical Use Cases at Credit OK
PDF
Trunk-Based Development
PDF
Developer Productivity Engineering with Gradle
PDF
Agile Architecture
Cloud-Native Microservices
How Rust Views Tradeoffs
Cloud Native Microservices - Building Blocks for Digital Innovation
How to get started with Site Reliability Engineering
Agile Experiences
Git essential training & sharing self
Andrea Di Persio
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Adtech scala-performance-tuning-150323223738-conversion-gate01
Adtech x Scala x Performance tuning
From Commit to Customer in a fully automated way | DevOps | Third Bridge Group
Ci tips and_tricks_linards_liepins
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Trunk Based Development in the Enterprise - Its Relevance and Economics
Gluster the ugly parts with Jeff Darcy
Microservices
Introduction to DevOps and the Practical Use Cases at Credit OK
Trunk-Based Development
Developer Productivity Engineering with Gradle
Agile Architecture
Ad

More from Diego Pacheco (17)

PDF
Naming Things Book : Simple Book Review!
PDF
Continuous Discovery Habits Book Review.pdf
PDF
Encryption Deep Dive
PDF
Sec 101
PDF
Management: Doing the non-obvious! III
PDF
Management doing the non-obvious II
PDF
Testing in production
PDF
Nine lies about work
PDF
Management: doing the nonobvious!
PDF
AI and the Future
PDF
Kanban 2020
PDF
Hardening
PDF
Sidecars
PDF
SRE 101
PDF
Making sense of streaming
PDF
SOA.2020
PDF
Understand the system
Naming Things Book : Simple Book Review!
Continuous Discovery Habits Book Review.pdf
Encryption Deep Dive
Sec 101
Management: Doing the non-obvious! III
Management doing the non-obvious II
Testing in production
Nine lies about work
Management: doing the nonobvious!
AI and the Future
Kanban 2020
Hardening
Sidecars
SRE 101
Making sense of streaming
SOA.2020
Understand the system

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Machine learning based COVID-19 study performance prediction
PDF
cuic standard and advanced reporting.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Big Data Technologies - Introduction.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPT
Teaching material agriculture food technology
PPTX
A Presentation on Artificial Intelligence
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Monthly Chronicles - July 2025
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine learning based COVID-19 study performance prediction
cuic standard and advanced reporting.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Modernizing your data center with Dell and AMD
Encapsulation_ Review paper, used for researhc scholars
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Chapter 3 Spatial Domain Image Processing.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Big Data Technologies - Introduction.pptx
20250228 LYD VKU AI Blended-Learning.pptx
MYSQL Presentation for SQL database connectivity
Teaching material agriculture food technology
A Presentation on Artificial Intelligence

Reflections on SCM

  • 2. @diego_pacheco ❏ Cat's Father ❏ Head of Software Architecture ❏ Agile Coach ❏ SOA/Microservices Expert ❏ DevOps Practitioner ❏ Speaker ❏ Author diegopacheco http://diego-pacheco.blogspot.com.br/ About me... https://diegopacheco.github.io/
  • 3. Every company works with Branches
  • 4. Git Made branches much less painful...
  • 5. But do we think about the implications? ❏ How much they affect CI/CD ? ❏ How much they affect Refactoring? ❏ How much they create bottlenecks? ❏ How much they hide architectural complexity? ❏ They optimized for Local, remote, colarotation or what?
  • 6. Back do Lean/Agile/DevOps Principles ❏ Increase Feedback into the system ❏ Reduce Feedback cycles ❏ Reduce Batch size (lower delta, lower risk) ❏ Increase deployment frequence ❏ Experiment often … it’s branches aligned with that?
  • 7. Branch by Abstraction ❏ Long lived Branches ❏ Easily can live for 2 weeks (1 Sprint) or even much longer ❏ Benefits: Easily to Pause or Cancel ❏ How to: ❏ Introduce Abstraction, Wrote a second implementation ❏ Enable to all, remove old, on/off switch
  • 8. Branch per Release ❏ Team pushes to prod or regular schedule (Sprint, Monthly) ❏ Also will need to push bug-fix releases in between. ❏ Stable place since devs are still committing on Trunk ❏ CI/CD Teams don't use this technique.
  • 9. Release form Trunk ❏ Teams with high release cadence release from Trunk. ❏ No Slow down in releases ❏ Branches can be created retroactively
  • 10. CI/CD ❏ XP technique ❏ CI by definition is single integration Source.
  • 11. Trunk Based Development ❏ How CI/CD High Performance DevOps teams Work! ❏ Incompatible with GitFlow ❏ Works best for fast interactions/releases and SR engineers.
  • 13. GitFlow: Commit Races ❏ Lots of changes ❏ First to Commit win ❏ Also known as PR Races ❏ It happens !!!
  • 14. Issues with Branches ❏ Don’ t encourage Refactoring (Harder Merges) ❏ Shallow Review: Fast LGTM ❏ Batch size Problem (Anti-Lean) ❏ No Real CI happening ❏ Core Team Vs External Contributors
  • 15. Other alternatives to branches...
  • 16. The Issue with Release Trains / Calendars
  • 19. PRs, PP/Mob and Code Review ❏ PR can create “interruptions”. ❏ Branches are good for individuals and bad for teams. ❏ Pair Programing is Code Review (no need to submit a PR) ❏ PP/Mob help to share knowledge ❏ PP/Mob is much faster Feedback
  • 20. Branches and Architecture ❏ Good Modular Architecture dont require branches. ❏ Mobile Might require branches by nature. ❏ Isolation is the ultimate branch blast radius reducer. ❏ Code is Dynamic, Branches are static.
  • 21. Wrapping Thoughts ❏ Branches and PRs are cheap and the norm today. ❏ Most of companies see CI/CD as tools and not as principles. ❏ It's common to see people that don't want increase deployment frequency. ❏ Good Architecture require less or no branching. ❏ High Frequency releases and gitflow don't match. ❏ Lower Delta, Lower Risk, Release Often, Get more feedback.