SlideShare a Scribd company logo
Feature Branching considered Evil
Thierry de Pauw, @tdpauw
Milan | November 29 - 30, 2018
@tdpauw thinkinglabs.io
A tale of 2 teams
@tdpauw thinkinglabs.io
“Like all powerful tools, there are many ways you can use them
(DVCS), and not all of them are good.”
-- On DVCS, continuous integration, and feature branches, Jez Humble
@tdpauw thinkinglabs.io
-- 2016 State of DevOps Report
@tdpauw thinkinglabs.io
Some definitions ...
@tdpauw thinkinglabs.io
Mainline is the line of development
which is the reference from which the
builds of your system are created that feed
into your deployment pipeline.
-- Jez Humble
@tdpauw thinkinglabs.io
Feature Branching is a practice where
people do not merge their code into
mainline until the feature they are working
on is "done" (but not “done done”).
-- Jez Humble
@tdpauw thinkinglabs.io
Continuous Integration is a practice
where members of a team integrate their
work frequently - usually each person
integrates at least daily - leading to multiple
integrations per day. Each integration is
verified by an automated build […].
-- Martin Fowler
@tdpauw thinkinglabs.io
The goal of an Organisation is
to sustainably minimise the lead time
to create positive business impact.
@tdpauw thinkinglabs.io
Why long-running branches ?
@tdpauw thinkinglabs.io
We can work in isolation
which makes us more productive.
@tdpauw thinkinglabs.io
"Developing in isolation can help an individual go faster but it does
not help a team go faster. Merge time and rework cannot be
estimated and will vary wildly, and the team can only go as fast as
the slowest merge."
-- Steve Smith
@tdpauw thinkinglabs.io
If a refactoring goes nowhere
we can just delete it.
@tdpauw thinkinglabs.io
“A spike solution is a very simple program to explore potential
solutions. Build the spike to only address the problem under
examination and ignore all other concerns. Most spikes are not
good enough to keep, so expect to throw it away.”
-- extremeprogramming.org, Don Wells
@tdpauw thinkinglabs.io
We can control the quality of
what goes into production.
@tdpauw thinkinglabs.io
"The objective is to eliminate unfit release candidates as early in the
process as we can ...
You are effectively prevented from releasing into production builds
that are not thoroughly tested and found to be fit for their intended
purpose."
-- Continuous Delivery,
Jez Humble and Dave Farley
@tdpauw thinkinglabs.io
We can control which features
get into production.
@tdpauw thinkinglabs.io
"Feature Branching is a poor man's modular architecture, instead
of building systems with the ability to easy swap in and out features
at runtime/deploy-time they couple themselves to the source control
providing this mechanism through manual merging."
-- Dan Bodart
@tdpauw thinkinglabs.io
Why is this a problem ?
@tdpauw thinkinglabs.io
Feature Branching delays feedback.
=> Continuous Isolation
@tdpauw thinkinglabs.io
Feature Branching
hinders integration of features.
Promiscuous Integration ???
@tdpauw thinkinglabs.io
Feature Branching hides work
for the rest of the team.
frequently merging back to mainline
= communicating with your team
@tdpauw thinkinglabs.io
Feature Branching works
against refactoring.
@tdpauw thinkinglabs.io
Feature Branching increases risk.
@tdpauw thinkinglabs.io
Feature Branching creates
cognitive overload.
@tdpauw thinkinglabs.io
How can we avoid this ?
@tdpauw thinkinglabs.io
Continuous Integration
Your application is always in a
releasable state on main line.
Trunk Based Development
@tdpauw thinkinglabs.io
always commit on Green.
decoupled code base.
lots of fast tests.
Break large changes into a set of
small incremental changes.
@tdpauw thinkinglabs.io
Hide unfinished new functionality.
@tdpauw thinkinglabs.io
Use Branch by Abstraction when
performing large refactorings.
@tdpauw thinkinglabs.io
@tdpauw thinkinglabs.io
Feature Toggles to decouple
feature release from code deployment.
@tdpauw thinkinglabs.io
Feature Toggles done badly are evil too !
@tdpauw thinkinglabs.io
Benefits
@tdpauw thinkinglabs.io
=> more frequent builds
=> more frequent deployments
=> reduced Time to Market
More frequent commits to mainline
@tdpauw thinkinglabs.io
=> more experiments
=> uncover more unmet needs
More frequent deployments
@tdpauw thinkinglabs.io
=> uncovers more problems earlier
=> fix problems immediately
=> build quality in
=> better Stability & Quality
More frequent builds
@tdpauw thinkinglabs.io
Where is the evilness ?
@tdpauw thinkinglabs.io
… and slow builds
@tdpauw thinkinglabs.io
"Trunk-based development requires a big mindset shift. Engineers
thought trunk-based development would never work, but once they
started, they could not imagine ever going back."
-- Gary Gruver,
Directory of Engineering for HP's LaserJet Firmware division
Lead Developer at fintech startup PaxFamilia
CI/CD advocate
Founder of ThinkingLabs
Hello, I am Thierry de Pauw
is shy, introvert, but opinionated
has a fantastic imposter syndrome
is just a kid standing on the shoulders of giants
likes dark chocolate
dark means > 50% cacao, prefers 70% and more
slides: http://thinkinglabs.io/talks/feature-branching-considered-evil@tdpauw thinkinglabs.io
@tdpauw thinkinglabs.io
Resources
SCM Patterns (ch 4 Mainline; ch 5 Active Development Line), Stephen Berczuk and Brad Appleton
Growing Object Oriented Software guided by Tests, p172 Keyhole Surgery for Software, Steve Freeman and Nat Pryce
Continuous Delivery (ch 14 Advanced Version Control), Jez Humble and Dave Farley
The Role of Continuous Delivery in IT and Organizational Performance, Nicole Forsgren and Jez Humble
The State of DevOps Report 2016, Alanna Brown, Nicole Forsgren, Jez Humble, Nigel Kersten and Gene Kim
DevOps Handbook (ch 11 Enable and Practice CI), Gene Kim, Jez Humble, Patrick Debois and John Willis
Accelerate (ch 4 Technical Practices), Nicole Forsgren, Jez Humbe and Gene Kim
Measuring Continuous Delivery (ch 7 The Mainline Throughput indicator), Steve Smith
trunkbaseddevelopment.com
ThoughtWorks Technology Radar on GitFlow
Continuous Integration on a dollar a day, James Shore
On DVCS and Continuous Delivery, Jez Humble
Why software development methodologies suck, Jez Humble
Don't Feature Branch, Dave Farley
Feature Branch, Martin Fowler
Version Control Stragies series, Steve Smith
@tdpauw thinkinglabs.io
More Resources
More Feature Branches means less Continuous Integration, InfoQ interview with Steve Smith
The Death of Continuous Integration, Steve Smith
Long-Running Branches Considered Harmfull, Jade Rubick
An e-mail conversation with Steve Smith on Trunk Based Development
Continuous Isolation, Paul Hammant
What is Trunk Based Development ?, Paul Hammant
Trunk Based Development, Jon Arild Tørresdal
You Are What You Eat, Dave Hounslow
Google's Scaled Trunk Based Development, Paul Hammant
Legacy App Rejuvenation, Paul Hammant
Why Google Stores Billions of Lines of Code in a Single Repository ?, Google
The history of “Taking Baby Steps”, Adrian Bolboaca
Baby Steps TDD approach, David Völkel
4 Simple Tricks to avoid Merge Conflicts, Robert Mißbach
From GitFlow to Trunk Based Development, Robert Mißbach
Short-lived branches, Corey Haines
@tdpauw thinkinglabs.io
Even More Resources
Introducing Branch by Abstraction, Paul Hammant
Branch by Abstraction, Martin Fowler
Make Large Scale Changes Incrementally with Branch by Abstraction, Jez Humble
branchbyabstraction.com
Feature Toggles, Pete Hodgson
#NoStaging - Pipeline Conf 2016, Dave Nolan
When Feature Flags go Wrong, Edith Harbaugh
Managing Feature Flag Debt with Split, Adil Aijaz
Continuous Delivery and Code Review from the Continuous Delivery Google Group
Theory X and Theory Y from Wikipedia
Continuous Review, Paul Hammant
Non-Continuous Review, Paul Hammant
Code Review: Why are we doing it ?, Sandro Mancuso
Code Reviews in Trunk Based Development, Robert Mißbach
A conversation in the SoCraTes Slack #codereview channel on … Code Reviews and Trunk Based Development
A reply on Twitter by Michiel Rook regarding When code reviews would not be required

More Related Content

PDF
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
PDF
Leadership Without Management: Scaling Organizations by Scaling Engineers
PDF
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
PPSX
7 Wastes of Software Development
PDF
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
PDF
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
PDF
Debugging (Docker) containers in production
ODP
Jenkins CI in Action
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
Leadership Without Management: Scaling Organizations by Scaling Engineers
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
7 Wastes of Software Development
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
Debugging (Docker) containers in production
Jenkins CI in Action

What's hot (19)

PDF
Principles of Technology Leadership
PPTX
Devops In The Enterprise: How Swarming Can Fix The Problem Of Becoming A 3rd-...
PPTX
Building an Awesome Engineering Culture
PDF
The Seven Wastes of Software Development
PPTX
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
PDF
Phoenix project
PPTX
DevOps
PPTX
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...
PDF
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
PDF
Teaching Elephants to Dance, Burr Sutter
PDF
DevOps Theory vs. Practice: A Song of Ice and Tire Fire
PDF
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right Modules
PPTX
Product Design in Agile Environments: Making it Work at ProductCamp Pittsburgh
PDF
Codemotion Berlin 2015 recap
PDF
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
PDF
01 (IDNOG01) Keynote 1 by Barry Greene
PDF
Icinga Camp San Diego 2016 - Unrealized Role of Monitoring
PDF
I got 99 problems but tech aint one
PPTX
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
Principles of Technology Leadership
Devops In The Enterprise: How Swarming Can Fix The Problem Of Becoming A 3rd-...
Building an Awesome Engineering Culture
The Seven Wastes of Software Development
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Phoenix project
DevOps
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
Teaching Elephants to Dance, Burr Sutter
DevOps Theory vs. Practice: A Song of Ice and Tire Fire
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right Modules
Product Design in Agile Environments: Making it Work at ProductCamp Pittsburgh
Codemotion Berlin 2015 recap
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
01 (IDNOG01) Keynote 1 by Barry Greene
Icinga Camp San Diego 2016 - Unrealized Role of Monitoring
I got 99 problems but tech aint one
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
Ad

Similar to Thierry de Pauw - Feature Branching considered Evil - Codemotion Milan 2018 (20)

PPTX
Devops at scale is a hard problem challenges, insights and lessons learned
PPTX
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
PDF
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
PDF
What business benefits from DevOps 2014
PDF
Identify Development Pains and Resolve Them with Idea Flow
PDF
DevOps for Defenders in the Enterprise
PDF
Real World Lessons Using Lean UX (Workshop)
KEY
Open Source Compliance at Twitter
PPTX
30 days or less: New Features to Production
PDF
Open Source Craft at Twitter
PDF
DevOps The Cultural revolution
PPTX
Winnipeg ISACA Security is Dead, Rugged DevOps
PDF
Ten lessons I painfully learnt while moving from software developer to entrep...
PDF
Jr devsurvivalguide
PPTX
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...
PDF
Binary crosswords
PDF
DevSecOps and the CI/CD Pipeline
PDF
Community building lessons from Ansible
PPTX
CILIP Conference 2019 - Digital innovation - Andy Tattersall
PPTX
Technology has all the right answers - but we have to start thinking about wh...
Devops at scale is a hard problem challenges, insights and lessons learned
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
What business benefits from DevOps 2014
Identify Development Pains and Resolve Them with Idea Flow
DevOps for Defenders in the Enterprise
Real World Lessons Using Lean UX (Workshop)
Open Source Compliance at Twitter
30 days or less: New Features to Production
Open Source Craft at Twitter
DevOps The Cultural revolution
Winnipeg ISACA Security is Dead, Rugged DevOps
Ten lessons I painfully learnt while moving from software developer to entrep...
Jr devsurvivalguide
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...
Binary crosswords
DevSecOps and the CI/CD Pipeline
Community building lessons from Ansible
CILIP Conference 2019 - Digital innovation - Andy Tattersall
Technology has all the right answers - but we have to start thinking about wh...
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
A Presentation on Artificial Intelligence
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Approach and Philosophy of On baking technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
KodekX | Application Modernization Development
The Rise and Fall of 3GPP – Time for a Sabbatical?
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Network Security Unit 5.pdf for BCA BBA.
A Presentation on Artificial Intelligence
Spectral efficient network and resource selection model in 5G networks
NewMind AI Weekly Chronicles - August'25 Week I
Unlocking AI with Model Context Protocol (MCP)
Approach and Philosophy of On baking technology
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Empathic Computing: Creating Shared Understanding
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation theory and applications.pdf
Big Data Technologies - Introduction.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
KodekX | Application Modernization Development

Thierry de Pauw - Feature Branching considered Evil - Codemotion Milan 2018

  • 1. Feature Branching considered Evil Thierry de Pauw, @tdpauw Milan | November 29 - 30, 2018
  • 3. @tdpauw thinkinglabs.io “Like all powerful tools, there are many ways you can use them (DVCS), and not all of them are good.” -- On DVCS, continuous integration, and feature branches, Jez Humble
  • 4. @tdpauw thinkinglabs.io -- 2016 State of DevOps Report
  • 6. @tdpauw thinkinglabs.io Mainline is the line of development which is the reference from which the builds of your system are created that feed into your deployment pipeline. -- Jez Humble
  • 7. @tdpauw thinkinglabs.io Feature Branching is a practice where people do not merge their code into mainline until the feature they are working on is "done" (but not “done done”). -- Jez Humble
  • 8. @tdpauw thinkinglabs.io Continuous Integration is a practice where members of a team integrate their work frequently - usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build […]. -- Martin Fowler
  • 9. @tdpauw thinkinglabs.io The goal of an Organisation is to sustainably minimise the lead time to create positive business impact.
  • 11. @tdpauw thinkinglabs.io We can work in isolation which makes us more productive.
  • 12. @tdpauw thinkinglabs.io "Developing in isolation can help an individual go faster but it does not help a team go faster. Merge time and rework cannot be estimated and will vary wildly, and the team can only go as fast as the slowest merge." -- Steve Smith
  • 13. @tdpauw thinkinglabs.io If a refactoring goes nowhere we can just delete it.
  • 14. @tdpauw thinkinglabs.io “A spike solution is a very simple program to explore potential solutions. Build the spike to only address the problem under examination and ignore all other concerns. Most spikes are not good enough to keep, so expect to throw it away.” -- extremeprogramming.org, Don Wells
  • 15. @tdpauw thinkinglabs.io We can control the quality of what goes into production.
  • 16. @tdpauw thinkinglabs.io "The objective is to eliminate unfit release candidates as early in the process as we can ... You are effectively prevented from releasing into production builds that are not thoroughly tested and found to be fit for their intended purpose." -- Continuous Delivery, Jez Humble and Dave Farley
  • 17. @tdpauw thinkinglabs.io We can control which features get into production.
  • 18. @tdpauw thinkinglabs.io "Feature Branching is a poor man's modular architecture, instead of building systems with the ability to easy swap in and out features at runtime/deploy-time they couple themselves to the source control providing this mechanism through manual merging." -- Dan Bodart
  • 19. @tdpauw thinkinglabs.io Why is this a problem ?
  • 20. @tdpauw thinkinglabs.io Feature Branching delays feedback. => Continuous Isolation
  • 21. @tdpauw thinkinglabs.io Feature Branching hinders integration of features. Promiscuous Integration ???
  • 22. @tdpauw thinkinglabs.io Feature Branching hides work for the rest of the team. frequently merging back to mainline = communicating with your team
  • 23. @tdpauw thinkinglabs.io Feature Branching works against refactoring.
  • 25. @tdpauw thinkinglabs.io Feature Branching creates cognitive overload.
  • 27. @tdpauw thinkinglabs.io Continuous Integration Your application is always in a releasable state on main line. Trunk Based Development
  • 28. @tdpauw thinkinglabs.io always commit on Green. decoupled code base. lots of fast tests. Break large changes into a set of small incremental changes.
  • 30. @tdpauw thinkinglabs.io Use Branch by Abstraction when performing large refactorings.
  • 32. @tdpauw thinkinglabs.io Feature Toggles to decouple feature release from code deployment.
  • 33. @tdpauw thinkinglabs.io Feature Toggles done badly are evil too !
  • 35. @tdpauw thinkinglabs.io => more frequent builds => more frequent deployments => reduced Time to Market More frequent commits to mainline
  • 36. @tdpauw thinkinglabs.io => more experiments => uncover more unmet needs More frequent deployments
  • 37. @tdpauw thinkinglabs.io => uncovers more problems earlier => fix problems immediately => build quality in => better Stability & Quality More frequent builds
  • 40. @tdpauw thinkinglabs.io "Trunk-based development requires a big mindset shift. Engineers thought trunk-based development would never work, but once they started, they could not imagine ever going back." -- Gary Gruver, Directory of Engineering for HP's LaserJet Firmware division
  • 41. Lead Developer at fintech startup PaxFamilia CI/CD advocate Founder of ThinkingLabs Hello, I am Thierry de Pauw is shy, introvert, but opinionated has a fantastic imposter syndrome is just a kid standing on the shoulders of giants likes dark chocolate dark means > 50% cacao, prefers 70% and more slides: http://thinkinglabs.io/talks/feature-branching-considered-evil@tdpauw thinkinglabs.io
  • 42. @tdpauw thinkinglabs.io Resources SCM Patterns (ch 4 Mainline; ch 5 Active Development Line), Stephen Berczuk and Brad Appleton Growing Object Oriented Software guided by Tests, p172 Keyhole Surgery for Software, Steve Freeman and Nat Pryce Continuous Delivery (ch 14 Advanced Version Control), Jez Humble and Dave Farley The Role of Continuous Delivery in IT and Organizational Performance, Nicole Forsgren and Jez Humble The State of DevOps Report 2016, Alanna Brown, Nicole Forsgren, Jez Humble, Nigel Kersten and Gene Kim DevOps Handbook (ch 11 Enable and Practice CI), Gene Kim, Jez Humble, Patrick Debois and John Willis Accelerate (ch 4 Technical Practices), Nicole Forsgren, Jez Humbe and Gene Kim Measuring Continuous Delivery (ch 7 The Mainline Throughput indicator), Steve Smith trunkbaseddevelopment.com ThoughtWorks Technology Radar on GitFlow Continuous Integration on a dollar a day, James Shore On DVCS and Continuous Delivery, Jez Humble Why software development methodologies suck, Jez Humble Don't Feature Branch, Dave Farley Feature Branch, Martin Fowler Version Control Stragies series, Steve Smith
  • 43. @tdpauw thinkinglabs.io More Resources More Feature Branches means less Continuous Integration, InfoQ interview with Steve Smith The Death of Continuous Integration, Steve Smith Long-Running Branches Considered Harmfull, Jade Rubick An e-mail conversation with Steve Smith on Trunk Based Development Continuous Isolation, Paul Hammant What is Trunk Based Development ?, Paul Hammant Trunk Based Development, Jon Arild Tørresdal You Are What You Eat, Dave Hounslow Google's Scaled Trunk Based Development, Paul Hammant Legacy App Rejuvenation, Paul Hammant Why Google Stores Billions of Lines of Code in a Single Repository ?, Google The history of “Taking Baby Steps”, Adrian Bolboaca Baby Steps TDD approach, David Völkel 4 Simple Tricks to avoid Merge Conflicts, Robert Mißbach From GitFlow to Trunk Based Development, Robert Mißbach Short-lived branches, Corey Haines
  • 44. @tdpauw thinkinglabs.io Even More Resources Introducing Branch by Abstraction, Paul Hammant Branch by Abstraction, Martin Fowler Make Large Scale Changes Incrementally with Branch by Abstraction, Jez Humble branchbyabstraction.com Feature Toggles, Pete Hodgson #NoStaging - Pipeline Conf 2016, Dave Nolan When Feature Flags go Wrong, Edith Harbaugh Managing Feature Flag Debt with Split, Adil Aijaz Continuous Delivery and Code Review from the Continuous Delivery Google Group Theory X and Theory Y from Wikipedia Continuous Review, Paul Hammant Non-Continuous Review, Paul Hammant Code Review: Why are we doing it ?, Sandro Mancuso Code Reviews in Trunk Based Development, Robert Mißbach A conversation in the SoCraTes Slack #codereview channel on … Code Reviews and Trunk Based Development A reply on Twitter by Michiel Rook regarding When code reviews would not be required